HTTP报文格式及WireShark抓包分析
HTTP报⽂格式及WireShark抓包分析
HTTP请求报⽂格式
在这个请求格式之中空⾏是必不可少的⼀⾏。空⾏之后是请求实体。⼀个具体的HTTP请求报⽂格式如下:
GET /su?wd=www.&action=opensearch&ie=UTF-8 HTTP/1.1
Host: suggestion.baidu
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=WFMRW5qRVBQRDhxNDN0UEpSMlJzZWhJTklITGY3eUVmLTFFeX5iNzY3RDQ1MHRjQV 请求格式之中的⽅法是指GET,PSOT,HEAD等⽅法。
get⽅法是获取URL指定资源。使⽤GET ⽅法时,可以将请求参数和对应的值附加在 URI 后⾯,利⽤⼀个问号(“?”)将资源的URI和请求参数隔开,参数之间使⽤与符号(“&”)
隔开。⼀般适合于请求信息⽐较短的场合。使⽤URL请求也会把信息暴露出来。
post请求⼀般是客户端提交给服务器的表单数据。当然,如果是上传⽂件,也应当使⽤post请求。post请求还可以较get请求更好的隐藏信息。
head⽅法与get⽤法相同,但没有响应实体。
URI是Uniform Resource Identifiers的缩写,它是URL的⼀种扩展,我们在HTTP协议中使⽤的URI其实都是URL。
版本是指HTTP协议的版本,例如上⾯访问百度时的HTTP协议版本就是HTTP1.1。
Host是指接受请求的服务器地址,⼀般可以是IP地址,域名的形式。
Connection是连接属性,这⾥和百度建⽴的是“长连接”。
User-Agent是指发出请求的应⽤程序。实际使⽤的是Chrome浏览器。
Accept-Encoding表⽰客户端可以接受的压缩格式。
Accept-Language表⽰客户端接受的语⾔类型。
Cookie常⽤来表⽰请求者的⾝份。
HTTP响应报⽂格式
当客户端发出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连接apple id服务器时出错
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类。
1XX:信息提⽰。表⽰请求已被服务器接受,但需要继续处理,范围为100~101。
2XX:请求成功。服务器成功处理了请求。范围为200~206。
3XX:客户端重定向。重定向状态码⽤于告诉客户端浏览器,它们访问的资源已被移动,并告诉客户端新的资源位置。客户端收到重定向会重新对新资源发起请求。范围为
300~305。
4XX:客户端信息错误。客户端可能发送了服务器⽆法处理的东西,⽐如请求的格式错误,或者请求了⼀个不存在的资源。范围为400~415。
5XX:服务器出错。客户端发送了有效的请求,但是服务器⾃⾝出现错误,⽐如Web程序运⾏出错。范围是500~505。
常见的⼀些状态码如下:
200:请求成功
404:请求资源不存在
400:请求不能被服务器解读
500:服务器内部错误
Server:服务器所使⽤的Web服务器名称。攻击者可以通过查看该头信息,来探测Web服务器名称。所以⼀般服务器端会对该头信息进⾏修改。就⾏百度的这个⼀样。
Cache-Control指定客户端对⽹页的缓存策略。
请求信息和相应信息可以通过wireshark来抓包获取,具体⽅法如下。
wireshark可以在⽹上下载,随便哪个版本都可以。下载安装好以后,打开软件。我的可以看到如下界⾯:
界⾯中显⽰波动变化的就是你访问⽹络的⽅式,⽐如我的就是WLAN。这个根据⾃⼰的情况⾃⾏选择。
双击你选择的那个。然后会弹出如下界⾯:
在应⽤显⽰过滤器这⾥输⼊http,然后在你的浏览器上打开⼀个⽹站,⽐如百度。然后你就能在下⾯的列表中到http连接。然后点击界⾯上的那个红⾊⽅块,停⽌抓取。如下:
然后任意选取⼀个,然后右键,按照下图所⽰操作:
然后就会弹出如下窗⼝,红⾊的部分就是请求格式,蓝⾊的就是响应格式。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。