HTTP实战之Wireshark抓包分析( 二 )
使用Wireshark抓包 , 看看是否与上面讲解的模式一样 。 如下图:
在这个报文里 , 第??“GET / HTTP/1.1”就是请求? , ?后?的“Host” , “Connection”等等都属于 header , 报?的最后是?个空??结束 , 没有body 。
文章插图
1.1 请求?
使用WireShark抓包分析
文章插图
了解了 HTTP 报?的基本结构后 , 我们来看看请求报??的起始?也就是请求?(request line) , 它简要地描述了客户端想要如何操作服务器端的资源 。
请求?(或起始行)由三部分构成:
(1)请求方法:如 GET/POST , 表示对资源的操作 。
(2)请求?标:通常是?个 URI , 标记了请求?法要操作的资源 。
(3)版本号:报?使?的 HTTP 协议版本 。
文章插图
这三个部分通常使?空格(space)来分隔 , 最后要? CRLF 换?表示结束 。 SP表示空格 。 请求行格式如下图所示:
文章插图
? Wireshark 抓包的数据来举例 , 如下图所示:
文章插图
在这个请求?? , “GET”是请求?法 , “/”是请求?标 , “HTTP/1.1”是版本号 , 把这三部分连起来 , 客户端意思就是“服务器你好 , 我想获取?站根?录下的默认?件 , 我?的协议版本号是 1.1 , 请不要? 1.0 或者 2.0回复我 。 ”
别看请求?就?? , 貌似很简单 , 其实这??的“讲究”是?常多的 , 尤其是前?的请求?法和请求?标 , 组合起来变化多端 , 后?还会详细介绍 。
1.2 状态?
使用WireShark抓包分析
文章插图
看完了请求? , 我们再看响应报??的起始? , 在这?它不叫“响应?” , ?是叫“状态?”(status line) , 意思是服务器响应的状态 。 ?起请求?来说 , 状态?要简单?些 , 同样也是由三部分构成:
(1)版本号:表示报?使?的 HTTP 协议版本 。
(2)状态码:?个三位数 , ?代码的形式表示处理的结果 , ?如 200 是成功 , 500 是服务器错误 。
(3)原因:作为数字状态码补充 , 是更详细的解释?字 , 帮助?理解原因 。 这个原因是可以合理的自定义 。
文章插图
1XX 继续
文章插图
2XX 成功
文章插图
3XX 重定向注意:当301、302、303响应状态码返回时 , 几乎所有的游览器都会把POST改为GET , 并删除请求报文内的主体 , 之后请求会自动再次发送
301、302标准是禁止将POST改为GET方法 , 但实际使用时都会改变
304的请求附加条件是指采用GET方法的请求报文中包含If-Match、If-Modified-Since、IF-None-Match、IF-Range、If-Unmodified-Since中的任一首部
文章插图
4xx 客户端错误4XX 的响应结果表明客户端是发生错误的原因所在
文章插图
- SpringBoot2.x入门到项目实战课程系列(第二章)
- Go 实战项目推荐:Gin 实现的工单系统
- HLS实战之Wireshark抓包分析
- SpringBoot2.x入门到项目实战课程系列(第五章)
- 多视图几何三维重建实战系列之R-MVSNet
- 机器学习实战:GNN(图神经网络)加速器的FPGA解决方案
- 由多线程内存溢出产生的实战分析
- Django实战016:django中使用redis详解
- 苹果公司|阿里架构师八年打造,编程宝典,从初学—编程进阶—深入学习—实战四个阶段带你潇洒编程!
- 域名|我是如何通过网站一步一步赚到钱的? 附:实战做网站方法和技巧