版权声明:本文为博主原创文章,转载请注明博客地址: https://cloud.tencent.com/developer/article/1433327
在这个请求格式之中空行是必不可少的一行。空行之后是请求实体。一个具体的HTTP请求报文格式如下:
GET /su?wd=www.&action=opensearch&ie=UTF-8 HTTP/1.1
Host: suggestion.baidu.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: BAIDUID=C2208EC4A287F1C78E1868E06C12C32F:FG=1; BIDUPSID=B7762029AFC604941206D91099D1D897; PSTM=1545827421; BDUSS=WFMRW5qRVBQRDhxNDN0UEpSMlJzZWhJTklITGY3eUVmLTFFeX5iNzY3RDQ1MHRjQVFBQUFBJCQAAAAAAAAAAAEAAACOM48~1tzR9DEyMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPhaJFz4WiRcd; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1468_27209_21093_18559_28328_28131_26350_28266_27245; PSINO=7; delPer=0
请求格式之中的方法是指GET,PSOT,HEAD等方法。
URI是Uniform Resource Identifiers的缩写,它是URL的一种扩展,我们在HTTP协议中使用的URI其实都是URL。
版本是指HTTP协议的版本,例如上面访问百度时的HTTP协议版本就是HTTP1.1。
当客户端发出HTTP请求,服务端接收后,就会向客户端发送响应信息。响应报文的格式如下:
HTTP/1.1 200 OK
Date: Sat, 19 Jan 2019 07:34:02 GMT
Server: suggestion.baidu.zbb.df
Content-Length: 99
Content-Type: text/javascript; charset=UTF-8
Cache-Control: private
Expires: Sat, 19 Jan 2019 08:34:02 GMT
Content-Encoding: gzip
Connection: Keep-Alive
响应报文的第一行包含了一个非常重要的信息,那就是HTTP的状态码。比如上面的HTTP/1.1 200 OK,其中这个200就是服务器返回给客户端的状态码,200表示成功。HTTP协议中状态码由3位数字组成,第一位数字对状态进行了分类,有以下5类。
常见的一些状态码如下:
200:请求成功
404:请求资源不存在
400:请求不能被服务器解读
500:服务器内部错误
请求信息和相应信息可以通过wireshark来抓包获取,具体方法如下。
wireshark可以在网上下载,随便哪个版本都可以。下载安装好以后,打开软件。我的可以看到如下界面:
界面中显示波动变化的就是你访问网络的方式,比如我的就是WLAN。这个根据自己的情况自行选择。双击你选择的那个。然后会弹出如下界面:
在应用显示过滤器这里输入http,然后在你的浏览器上打开一个网站,比如百度。然后你就能在下面的列表中找到http连接。然后点击界面上的那个红色方块,停止抓取。如下:
然后任意选取一个,然后右键,按照下图所示操作:
然后就会弹出如下窗口,红色的部分就是请求格式,蓝色的就是响应格式。