浅析HTTP协议的请求消息Request
我们知道,客户端访问服务器要先发送一个HTTP请求到服务器,那么这个请求消息包括了那几部分呢,格式是什么呢?
客户端发送到服务器的HTTP请求消息包含了四个部分,分别是:请求行(request line)、请求头部(header)、空行和请求数。下面我们来看两个例子:
Get请求例子:
GET /562f25980001b1b106000338.jpg HTTP/1.1
Host www.zdaye.com
User-Agent Mozilla/5.0 (Windows NT 10.0 WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept image/webp,image/*,*/*q=0.8
Referer http//www.zdaye.com/
Accept-Encoding gzip, deflate, sdch
Accept-Language zh-CN,zhq=0.8
第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.GET说明请求类型为GET,/562f25980001b1b106000338.jpg为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。
第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息。从第二行起为请求头部,HOST将指出请求的目的地。User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础。该信息由你的浏览器来定义,并且在每个请求中自动发送等等。
第三部分:空行,请求头部后面的空行是必须的。即使第四部分的请求数据为空,也必须有空行。
第四部分:请求数据也叫主体,可以添加任意的其他数据。这个例子的请求数据为空。
POST请求例子:
POST / HTTP1.1
Hostwww.zdaye.comm
User-AgentMozilla/4.0 (compatible MSIE 6.0 Windows NT 5.1 SV1 .NET CLR 2.0.50727 .NET CLR 3.0.04506.648 .NET CLR 3.5.21022)
Content-Typeapplication/x-www-form-urlencoded
Content-Length40
Connection Keep-Alive
name=Professional20Ajaxpublisher=Wiley
第一部分:请求行,第一行指明了是post请求,以及http1.1版本。
第二部分:请求头部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:请求数据,第八行。
站大爷代理IP平台专业提供HTTP代理、HTTPs代理IP和Socks5代理IP服务,欢迎广大顾客朋友前来咨询。