[ASP.NET]HTTP请求

Web浏览器和网站之间的通信机制称为“超文本传输协议”(Hypertext Transfer Protocol)。HTTP处于TCP-IP协议的最顶层——应用层(application layer)。

HTTP是连接型协议,围绕几个基本命令构建,在开发ASP.NET文件时,最重要的就是GETPOST指令。HEAD和PUT指令在ASP.NET中不常用,但也是重要的HTTP指令。

GET指令用于通过请求获取信息,具体信息由“统一资源定位符”(Uniform Resource Identifier,URI)指定。HEAD命令用于通过请求获取标头(header)信息(即不返回消息主体),具体信息由URI指定。可以使用POST命令向服务器发送可能导致连带作用的请求,如发送需要服务器处理的信息。PUT命令也用于向服务器发送信息,但内容面向的是文档和记录,而POST一般用于发送与HTML页面请求有关的参数。在最初的请求界面时,一般需要先使用GET命令, 随后通过POST命令来实现与服务器后续的一系列交互。

1.1从浏览器发出的HTTP请求

为向浏览器发送请求,浏览器需要通过URI和其他信息(如标头信息和被请求文件的文件名)创建HTTP请求。请求中的标头信息包括浏览器所处的操作系统环境的详细信息,以及服务器可能要使用的其他信息。浏览器会向HTTP标头中指定的服务器发送请求。当服务器收到请求后,它会以文本流的形式返回被请求资源。浏览器对其进行解析并呈现内容部分

1.2在不使用浏览器的情况下生成请求
.NET开发环境除了作为构建Web应用程序的框架外,其中还包含能够以编码方式生成HTTP请求的类。WebRequest类包含一个名为GetResponse的成员,可以向统一资源定位符(URL
指定的地址发送请求。为了理解如何不使用浏览器的情况下直接请求Web服务器。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
//在不使用Web浏览器的情况下生成请求
namespace WebRequestApp {
    class Program {
        static void Main(string[] args)
        {
            WebRequest req = WebRequest.Create("http://www.baidu.com");
            WebResponse resp = req.GetResponse();
            StreamReader reader = new StreamReader(resp.GetResponseStream(),Encoding.ASCII);
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

大多数浏览器的基本职责是:
(1)对请求进行打包,并将这个包发送至通过URI指定的服务器;
(2)从服务器获得响应,并将其呈现为供人阅读的表单(form),响应以文本流的形式返回,通过HTML标签进行标记。

你可能感兴趣的:(网站)