Wireshark抓包:详解Http协议--请求消息

本文详细介绍了TCP和UDP协议的区别,包括连接机制、可靠性与速度,并探讨了应用层中的HTTP协议,强调其作为可靠协议的角色。通过实例展示了HTTP请求的方法,如GET和POST,以及请求头中的关键字段。同时,提供了Wireshark抓包分析HTTP流量的实操步骤。
摘要由CSDN通过智能技术生成

目录

  • 一、TCP协议和UDP协议的区别

  • 二、应用层

    • HTTP协议

  • 三、实操

  • 四、HTTP请求方法

  • 五、HTTP协议--请求头

    • 1.get请求

    • 2.post请求

一、TCP协议和UDP协议的区别

80fe7a4c39cf2000df3b382ad25e3014.png
TCP协议和UDP协议的区别

1.TCP是面向连接的,所以有TCP三次握手和四次挥手的过程。UDP是无连接的协议,因为没建立任何的连接,所以没有握手和挥手的过程。

2.TCP有可靠的连接机制,所以TCP是一个可靠协议。UDP没有连接和确认机制,所以UDP协议会丢包,会出错,所以它是一个不可靠的协议。

3.TCP协议:数据量很大,防止它丢包,正确重传。(如果数据量很大,那么传输的时间会很长。中间网络中断了,要保证它能够重传。)对数据准确性很关心。UDP:数据量小。

4.速度:TCP协议速度很慢,传输效率很低。UDP:速度很快,传输效率很高。

二、应用层

定义了各种应用协议,来规范数据格式。让主机比较方便识别这个数据,以及比较方便进行操作。

定义好了的应用协议:HTTP协议、FTP协议、DNS协议、TFTP、SMTP等等。

HTTP协议

HTTP超文本传输协议。

  • HTTP协议是基于TCP协议,默认是80端口(当然自己去改端口也是可以的)。---可靠的协议。

  • 功能:用来规定客户端和服务端之间的数据传输格式。

  • 特点:基于请求与响应模式的、无状态、无连接的应用层协议。

200a12f4d7686556ffb2ebca262cb9bd.png
图片来自网络

三、实操

打开Wireshark抓包,访问一个基于http协议的网站:http://testingpai.com/。

客户端是我的电脑,向这个网站的服务器发起了一个连接请求。

网站的服务器返回这个页面(也就是网站的首页)。

c4f2f8ac4e150731aa96f95076cf8f6b.png

输入http过滤。

前面是一些格式,真正做页面请求的可能是从这个报文开始的:

a4594a4269697feb676ccd23097ad488.png

右键这个请求--追踪流--HTTP流,就可以过滤出一个完整的连接请求。

追踪流之后显示出一个完整的HTTP请求:
2791bac21f590b2e627d5ec2143969d9.png

粉色代表客户端发的请求,紫色代表响应部分。

四、HTTP请求方法

b0b55ea9db0cb07c10df4c805a2459fd.png

提交登录的用户名和密码,可能就是post请求。

获取这样一个页面资源,这种其实就是用的get请求。

五、HTTP协议--请求头

d8c70755335ddf1bb141cde10bb62db8.png

请求消息包括四个部分:请求行,请求头部,空一行表示请求头部结束了,请求体。

1.get请求

get请求的请求消息部分:
GET / HTTP/1.1   ----请求行:请求方法 + URL(统一资源定位符) + HTTP的版本信息:1.0--老版本,1.1-最常用,2.0--正在推广。
Host: testingpai.com  --主机
Connection: keep-alive
Cache-Control: max-age=0
DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.47  --主机客户端信息
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: Hm_lvt_2af76595fe2d5bc77bc33596fc4ff210=1652673509; Hm_lpvt_2af76595fe2d5bc77bc33596fc4ff210=1652677001

例如:GET /teams HTTP/1.1

/teams就是URL(统一资源定位符):告诉你我这个资源在哪里。我是在服务器的哪个路径下面去找到的你的这个页面。

有些服务器有反爬虫的机制。如果请求头部信息里没有User-Agent,我就认为你不是一个正常的机器给我发过来的请求,可能是个爬虫,是一个攻击,所以可能不会给你返回一个正常的页面。

所以,一般请求头部信息里都会带上User-Agent。

get请求里没有数据正文的,所以没有Content-Length这个字段。

跟开发去确认需求,该请求要包括哪些头部字段。get请求一般没有请求体。 get请求在url里面带参数。

2.post请求

695bb8ccd7c66d1cd909df90d2fa80a3.png

公众号 清菡软件测试 首发,更多原创文章:清菡软件测试 180+ 原创文章,欢迎关注、交流,禁止第三方擅自转载。如有转载,请标明出处。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清菡软件测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值