HTTP实战之Wireshark抓包分析( 三 )
5xx 服务器错误作为前端进行ajax请求时 , 出现5xx错误 , 那最大的可能是服务端出现问题 。
文章插图
数据存储如下图所示:
文章插图
文章插图
使用Wireshark抓包 , 其响应报? , 状态?是:
HTTP/1.1 200 OK\r\n , 关于描述这块是可以自定义 。 可以参考文档 , 进行合理编辑 。
HTTP/1.1表示版本号 。
200 OK表示状态码 。
这里没有描述原因 。
\r\n是换行 。
HTTP/1.1 200 OK\r\n
服务端告诉客户端 , 意思就是:“浏览器你好 , 我已经处理完了你的请求 , 这个报?使?的协议版本号是 1.1 , 状态码是 200 , ?切 OK 。 ”
如果是出错了 , 如下:
HTTP/1.1 404 Not Found
服务端告诉客户端 , 意思就是:“抱歉啊浏览器 , 刚才你的请求收到了 , 但我没找到你要的资源 , 错误代码是 404 , 接下来的事情你就看着办吧 。 ”
1.3 头部字段
请求?或状态?再加上头部字段集合就构成了 HTTP 报??真正完整的请求头或响应头 , 可以看下 。
(1)请求头部字段相关 , 如下图所示:
文章插图
(2)响应头字段相关 , 如下图所示:
文章插图
看到这里 , 你会发现请求头和响应头的结构是基本?样的 , 唯?的区别是起始? 。
请求头和响应头的头部字段都是 key-value 的形式 , key 和 value 之间?“:”分隔 , 最后? CRLF 换?表示字段结束 。 如在“Host: 192.168.111.1”这??? key 就是“Host” , value 就是“192.168.111.1” 。
注意:HTTP 头字段?常灵活 , 不仅可以使?标准?的 Host、Connection 等已有头 , 也可以任意添加?定义头 , 这就给 HTTP 协议带来了?限的扩展可能 。
不过使?头字段需要注意下??点:
(1)字段名不区分??写 , 例如“Host”也可以写成“host” , 但?字??写的可读性更好 。
(2)字段名?不允许出现空格 , 可以使?连字符“-” , 但不能使?下划线“_” 。 例如 , “test-name”是合法的字段名 , ?“test name” , “test_name”是不正确的字段名;
(3)字段名后?必须紧接着“:” , 不能有空格 , ?“:”后的字段值前可以有多个空格
(4)字段的顺序是没有意义的 , 可以任意排列不影响语义 。
(5)字段原则上不能重复 , 除?这个字段本身的语义允许 , 例如 Set-Cookie 。
1.4 常用头字段
HTTP 协议规定了?常多的头部字段 , 实现各种各样的功能 , 但基本上可以分为四?类:
(1)通?字段:在请求头和响应头?都可以出现 。
(2)请求字段:仅能出现在请求头? , 进?步说明请求信息或者额外的附加条件 。
(3)响应字段:仅能出现在响应头? , 补充说明响应报?的信息 。
(4)实体字段:它实际上属于通?字段 , 但专?描述 body 的额外信息 。
对 HTTP 报?的解析和处理实际上主要就是对头字段的处理 , 理解了头字段也就理解了 HTTP 报? 。 主要讲?个最基本的头 , 看完了它们你就应该能够读懂?多数 HTTP 报?了 。
(5)User-Agent
【HTTP实战之Wireshark抓包分析】User-Agent是请求字段 , 只出现在请求头? 。 它使??个字符串来描述发起 HTTP 请求的客户端 , 服务器可以依据它来返回最合适此浏览器显示的?? 。
- SpringBoot2.x入门到项目实战课程系列(第二章)
- Go 实战项目推荐:Gin 实现的工单系统
- HLS实战之Wireshark抓包分析
- SpringBoot2.x入门到项目实战课程系列(第五章)
- 多视图几何三维重建实战系列之R-MVSNet
- 机器学习实战:GNN(图神经网络)加速器的FPGA解决方案
- 由多线程内存溢出产生的实战分析
- Django实战016:django中使用redis详解
- 苹果公司|阿里架构师八年打造,编程宝典,从初学—编程进阶—深入学习—实战四个阶段带你潇洒编程!
- 域名|我是如何通过网站一步一步赚到钱的? 附:实战做网站方法和技巧