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-cache

name=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等其他类型的文档。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Wireshark是一款网络工具,可以用来分析网络数据。下面是Wireshark分析HTTP协议的步骤: 1. 打开Wireshark软件,选择需要的网络接口,点击“开始”按钮开始。 2. 在浏览器中访问一个网站,例如www.baidu.com。 3. 停止,可以看到Wireshark捕获到了很多数据。 4. 在过滤器中输入“http”,可以过滤出HTTP协议的数据。 5. 选中一个HTTP数据,可以在下方的详细信息中查看HTTP协议的各个字段,例如请求头、响应头、请求体、响应体等。 6. 可以通过Wireshark的统计功能,查看HTTP协议的各种统计信息,例如请求数量、响应时间、数据流量等。 下面是一个示例HTTP数据的详细信息: ```http Frame 1: 1514 bytes on wire (12112 bits), 1514 bytes captured (12112 bits) Ethernet II, Src: IntelCor_36:9d:7f (00:25:90:36:9d:7f), Dst: Cisco_0c:20:00 (00:0c:20:00:00:00) Internet Protocol Version 4, Src: 192.168.1.100, Dst: 202.108.22.5 Transmission Control Protocol, Src Port: 50360, Dst Port: 80, Seq: 1, Ack: 1, Len: 1460 Hypertext Transfer Protocol GET / HTTP/1.1\r\n Host: www.baidu.com\r\n Connection: keep-alive\r\n Cache-Control: max-age=0\r\n Upgrade-Insecure-Requests: 1\r\n User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299\r\n Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n Accept-Encoding: gzip, deflate\r\n Accept-Language: en-US,en;q=0.9\r\n \r\n ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值