HTTP协议抓包分析
抓包样例
请求报文(Get方式)
Accept: image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: keep-alive
Cookie: BIDUPSID=86EB8E64C82B00A190A99B27721DD6FB; PSTM=1583326697; BAIDUID=3C6696AD786FB8ACBEADE59269FB8AF3:FG=1; __yjs_duid=1_b9632a33e0ba1cf807e61827a5245dd91620648208234; BDSFRCVID=LzkOJeC62lf8zI6H4Ph6KpNQFgdz-_TTH6f3fF5yza8svabC2-q_EG0PKM8g0KuMedpZogKKBgOTHl8F_2uxOjjg8UtVJeC6EG0Ptf8g0f5; H_BDCLCKID_SF=tRk8oDDafCvDqTrP-trf5DCShUFs-6FJB2Q-XPoO3KtaVPo-y5JjKUu7jR7j-5c-yHcqbxbgy4op8P3y0bb2DUA1y4vpK-6eJgTxoUJ2X-jZsI3qqtnW3ftebPRi3tb9QgbQVpQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0hD0wD6LhejPVKgTa54cbb4o2WbCQaMjz8pcN2b5oQTOL0p5NBPcBJgrn_fnMbKTqoxQC0qOUWJDkXpJvQnJjt2JxaqRC5br5Mh5jDh3MBn_4QNJCe4ROQm7y0hvc0J3cShn1eMjrDRLbXU6BK5vPbNcZ0l8K3l02V-bIe-t2XjQhDHt8Jj_tfR3aQ5rtKRTffjrnhPF3KxQbXP6-hnjy3b4Db-o4WnT8MMc2jl725TF8WRjqQl3Ry6r42-39LPO2hpRjyxv4bPCyj-oxJpOJX56kKK3pHR7WSqOvbURvL4-g3-7QqU5dtjTO2bc_5KnlfMQ_bf--QfbQ0hOhqP-jBRIEoKtKfCLbhK-rMtjohR0yqxby26nN2bR9aJ5nJD_BM4jKKMn1jh8VDPRjWqol55rl-fO_QpP-HJ713lO6MtII04Pq0pc-yjvnKl0MLUOtbb0xynoDefIUWfnMBMnG52Onan4y3fAKftnOM46JehL3346-35543bRTLnLy5KJtMDFRj6L2D5JQeaRf-b-X2R5jBR88Kb7VbpRuMUnkbfJBDxvhqnTAJe-JbnPKW-JFVqQTbbCVBp07yajhJ-5lJ65E3CnbbJjDEI_zKqnpQT8ryPFOK5Oibmj-0PJuab3vOpoTXpO1h5kzBN5thURB2DkO-4bCWJ5TMl5jDh3Mb6ksDMDtqtJHKbDtoK-XtMK; BDSFRCVID_BFESS=LzkOJeC62lf8zI6H4Ph6KpNQFgdz-_TTH6f3fF5yza8svabC2-q_EG0PKM8g0KuMedpZogKKBgOTHl8F_2uxOjjg8UtVJeC6EG0Ptf8g0f5; H_BDCLCKID_SF_BFESS=tRk8oDDafCvDqTrP-trf5DCShUFs-6FJB2Q-XPoO3KtaVPo-y5JjKUu7jR7j-5c-yHcqbxbgy4op8P3y0bb2DUA1y4vpK-6eJgTxoUJ2X-jZsI3qqtnW3ftebPRi3tb9QgbQVpQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0hD0wD6LhejPVKgTa54cbb4o2WbCQaMjz8pcN2b5oQTOL0p5NBPcBJgrn_fnMbKTqoxQC0qOUWJDkXpJvQnJjt2JxaqRC5br5Mh5jDh3MBn_4QNJCe4ROQm7y0hvc0J3cShn1eMjrDRLbXU6BK5vPbNcZ0l8K3l02V-bIe-t2XjQhDHt8Jj_tfR3aQ5rtKRTffjrnhPF3KxQbXP6-hnjy3b4Db-o4WnT8MMc2jl725TF8WRjqQl3Ry6r42-39LPO2hpRjyxv4bPCyj-oxJpOJX56kKK3pHR7WSqOvbURvL4-g3-7QqU5dtjTO2bc_5KnlfMQ_bf--QfbQ0hOhqP-jBRIEoKtKfCLbhK-rMtjohR0yqxby26nN2bR9aJ5nJD_BM4jKKMn1jh8VDPRjWqol55rl-fO_QpP-HJ713lO6MtII04Pq0pc-yjvnKl0MLUOtbb0xynoDefIUWfnMBMnG52Onan4y3fAKftnOM46JehL3346-35543bRTLnLy5KJtMDFRj6L2D5JQeaRf-b-X2R5jBR88Kb7VbpRuMUnkbfJBDxvhqnTAJe-JbnPKW-JFVqQTbbCVBp07yajhJ-5lJ65E3CnbbJjDEI_zKqnpQT8ryPFOK5Oibmj-0PJuab3vOpoTXpO1h5kzBN5thURB2DkO-4bCWJ5TMl5jDh3Mb6ksDMDtqtJHKbDtoK-XtMK; MCITY=-145%3A; BDUSS=xnSUZhYTU4dGs1VTZRVGdrMGh0cnJIMEozT1llSlJlM05sSnpIVnVDYjBFanRpRVFBQUFBJCQAAAAAAAAAAAEAAACcbKRRvPKwrjk0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSFE2L0hRNiOU; BDUSS_BFESS=xnSUZhYTU4dGs1VTZRVGdrMGh0cnJIMEozT1llSlJlM05sSnpIVnVDYjBFanRpRVFBQUFBJCQAAAAAAAAAAAEAAACcbKRRvPKwrjk0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSFE2L0hRNiOU; BAIDUID_BFESS=3C6696AD786FB8ACBEADE59269FB8AF3:FG=1; delPer=0; PSINO=6; BDRCVFR[OEHfjv-pq1f]=K7PavkeTFPTUAN8ULuEQhPEUi4WU6; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=35838_34429_35106_31253_35766_35866_34584_35246_35949_35975_35319_26350_35882_35879_35939; BA_HECTOR=21ah8g8k2k81808gkq1h1jrb30r
Host: sp1.baidu.com
Referer: https://www.baidu.com/s?wd=csdn&rsv_spt=1&rsv_iqid=0xd09efcf50019f8e9&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=7&rsv_sug1=5&rsv_sug7=100&rsv_sug2=0&rsv_btype=i&prefixsug=csdn&rsp=5&inputT=13230&rsv_sug4=16846
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="98", "Microsoft Edge";v="98"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56
请求报文(Post方式)
POST /web_test/demo2.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 9561-10041
Referer: http://localhost:8080/web_test/demo1.html
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 19
DNT: 1
Connection: Keep-Alive
Cache-Control: no-cachename=bbb&name=woman
响应报文
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"151-1484111223984"
Last-Modified: Wed, 11 Jan 2017 05:07:03 GMT
Content-Type: text/html
Content-Length: 151
Date: Wed, 11 Jan 2017 05:14:00 GMT<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Success</h1>
</body>
</html>
分析
请求部分
请求报文结构:
请求行 :
- 请求方式
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
其中GET和POST请求方式最常用,两者的区别如下:
GET:请求的参数会显示到地址栏;通常是有大小的限制;没有请求体
POST:请求的参数不会显示到地址栏(在请求体中);POST没有大小的限制。有请求体(内容为请求参数);只有表单设置method=”post”才是POST请求,否者默认为GET请求。
- 请求路径
格式:协议://网络主机:端口/路径
如:http://192.168.0.116:8080/index.jsp
- 版本号
协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
请求头:
http请求头,通过setDateHeader方法和setIntHeadr方法专门来设置包含日期和整数值的应答头,前者避免了把Java时间转换为GMT时间字符串的麻烦,后者则避免了把整数转换为字符串的麻烦。请求头的格式一般都是一个key对应一个value的,也有一个key对应多个value的情况。常见的请求头如下:
Host:该头域主要用于初始化被请求资源的网络主机和端口号,所以在发送请求时是必须有的,在HTTP/1.1请求中必须包含主机头域,否则会报400错误。
Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。
Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Referer:用于告诉服务器该网页来源于哪个页面的链接。有时也被用作防盗链, 即下载时判断来源地址是不是在网站域名之内, 否则就不能下载或显示。
User-Agent :主要用于标识客户端浏览器类型。
Connection:该头域的值有Keep-Alive和Close两个,当一个网页打开完成后,客户端和服务器之间就会建立用于传输HTTP数据的TCP连接,且不会关闭(HTTP 1.1默认进行持久连接),如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的TCP连接,此时的Connection的值就为Keep-Alive。客户端和服务器也可以选择随时关闭连接后,则请求头中为Connection的值就为close。
Cookie:在用户第一次访问该服务器时,服务器会创建一个标识数据,并发送到用户浏览器并保存到本地,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上,Web 服务器就可以使用这些信息来识别不同的用户,从而无需重复验证
Content-Type:用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。
请求体:
只有POST请求方式才有请求体,而且请求体是POST方式请求参数。
响应部分
响应报文结构
响应行:
格式:版本号 状态码 状态码描述
如:HTTP/1.1 200 OK
状态码:
类别 | 类描述 | 常见码 | 描述 |
“1”开头 | 过程提示信息 | 101 | 当在切换到新的协议更有好处时,服务器将通知客户端采用不同的协议来完成这个请求,并自动切换到Upgrade 消息头中定义的协议。 |
“2”开头 | 成功提示信息 | 200 | 请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。 |
202 | 服务器已接受请求,但尚未处理,最终该请求可能会也可能不会被执行 | ||
“3”开头 | 重定向 | 301 | 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一 |
303 | 对应当前请求的响应可以在另一个 URL 上被找到,而且客户端应当采用 GET 的方式访问那个资源 | ||
305 | 被请求的资源必须通过指定的代理才能被访问 | ||
“4”开头 | 客户端请求错误 | 400 | 客户端的请求有语法错误 |
401 | 请求未经授权,请求必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息 | ||
403 | 服务器已经接收到请求,但请求的服务被拒绝 | ||
404 | 请求的资源不存在 | ||
“5”开头 | 服务器端错误 | 500 | 服务器出现错误,导致了无法完成对请求的处理 |
503 | 由于临时的服务器维护或者过载,服务器当前无法处理请求,稍后可能恢复 | ||
504 | 作为网关或者代理工作的服务器尝试执行请求时,上游服务器响应超时 |
响应头
响应头用于附加一些服务器需要传递但不能放在状态栏中的响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。其格式也跟请求头一样,由字段key和对应的value所组成。常见的响应头有下面几个:
Allow:表明服务器支持哪些请求方式,如POST、GET、PUT等
Location:提示用户重定向后的路径,应当到哪里去提取请求的文档。Location响应报头域常用在更换域名的时候。
Refresh:表示浏览器会在多少时间之后刷新文档,以秒计。Refresh只会定时执行一次刷新的任务,而不是每隔多少秒都刷新一次。因此,连续刷新要求每次都发送一个Refresh头,而发送204状态代码则可以阻止浏览器继续刷新 。
Server:跟请求头中的User-Agent一样,表明了服务器用来处理请求的软件信息。
Set-Cookie:用来设置和页面关联的Cookie。在Servlet中通过HttpServletResponse提供的专用方法addCookie设置。
WWW-Authenticate:如上面的请求未授权状态码401所描述,当收到401响应消息后,需要发送Authorization报头域请求服务器对其进行验证,随后的服务端响应报头就包含该报头域。
响应体
响应体是Web服务器发送到客户端的实际内容。可以是转换后的网页代码,也可以是Word、Excel或PDF等其他类型的文档。
HTTP协议抓包分析相关推荐
- ICMP协议抓包分析-wireshark
ICMP协议抓包分析-wireshark ICMP- (Internet Control Message Protocol,网际报文协议)是Internet协议族的核心协议之一,也可称为是网际控制报文 ...
- TCP协议抓包分析 -- wireshark
TCP协议抓包分析 – wireshark TCP- (Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于IP的传输层协议.它的主要目的就是为数据 ...
- UDP协议抓包分析 -- wireshark
UDP协议抓包分析 – wireshark UDP是User Datagram Protocol用户数据报协议的简称.他是OSI七层模型中一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务 ...
- ARP协议抓包分析 -- wireshark
ARP协议抓包分析 – wireshark ARP- Address Resolution Protocol协议,即地址解析协议.该协议功能就是将IP地址解析成MAC地址. 在发送数据的时候,只知道目 ...
- TCP/IP协议抓包分析
目录 一.TCP/IP协议在协议中分层的位置 二.TCP三次握手流程 三.打开wireshark抓包 四.TCP三次握手分析 1.TCP第一次握手 五.四次挥手流程 六.四次挥手抓包分析 一.TCP/ ...
- 抓包oracle密码,Oracle TNS 协议抓包分析
TNS 协议传输可以使用 TCP/IP 协议.使用 SSL 的 TCP/IP 协议.命名管道和 IPC 协议传输,其中 TCP/IP 协议传输是使 用明文传送. 这里只分析基于 TCP/IP 协议上的 ...
- PPTP协议抓包分析及PPTP穿越NAT
目录 1.PPTP协议概述 2.链接控制 3.报文流程 3.1.PPTP建立拓扑 3.2.详细报文解释 4.PPTP穿越NAT原理报文分析 4.1.控制连接 4.2.数据连接 1.PPTP协议概述 P ...
- Wireshark数据抓包分析——网络协议篇
Wireshark数据抓包分析--网络协议篇 Wireshark是目前最受欢迎的抓包工具.它可以运行在Windows.Linux及MAC OS X操作系统中,并提供了友好的图形界面.同时,Wiresh ...
- Wireshark抓包分析之ICMP协议包
Wireshark抓包分析之ICMP协议包 一. Wireshark简介:(前身为Ethereal,2006年改名为wireshark) Wireshark 是一个网络封包分析软件.网络封包分析软件的 ...
- Wireshark数据抓包分析(网络协议篇)1.2安装Wireshark
Wireshark数据抓包分析(网络协议篇)1.2安装Wireshark Wireshark(前称Ethereal)是一个网络包分析工具.该工具主要是用来捕获网络包,并显示包的详细情况.本节将分别介绍 ...
最新文章
- 清华大学-刘知远:自然语言理解难在哪儿?
- linux安装完怎么分区,Linux系统安装模式下硬盘分区怎么做?
- js获取ip地址_(原创)Node.JS实战31:大名鼎鼎的Express!
- 卡巴斯基发现新型恶意软件StoneDrill,或与 Shamoon有关
- PHP openssl加密扩展使用总结
- jbpm6 mysql_JBPM6把默认的H2数据库替换成mySql
- 计算机学win7画图,win7自带画图工具
- 基于微信会议室预约小程序毕业设计设计与实现 开题报告参考
- 浅谈HTTP中GET和POST请求方式的区别
- 【十大IDE】 解决你不懂英文的痛苦
- UESTC - 59 数据大搜索
- angular使用echarts词云图wordCloud
- 土豆的31种做法,别告诉我你只知道酸辣土豆丝----小V美味馆
- iOS Xcode中UIButton文字换行
- 网易云信Web IM入门(一)
- Hello World for RRDtool
- 华为云计算机系统是什么,你了解什么是华为云电脑吗,它有什么用
- 第一章 初到贵地 Win32异界类型
- iOS app集成使用 Facebook 深度链接
- 【OpenCV技能树】——OpenCV基础