HTTP 协议的基本格式和 fiddler 的用法

本文介绍了HTTP协议的基本格式,包括请求方法(POST,GET)、状态码分类、以及如何使用Fiddler抓包工具观察HTTP请求和响应。还讨论了GET和POST的区别,以及HTTP如何通过Content-Type和Content-Length解决粘包问题。
摘要由CSDN通过智能技术生成

一.HTTP协议的基本格式

HTTP (超文本传输协议)是应用广泛的应用层协议,常用于网页和后台服务器交互,app和后台服务器的交互.我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的,是通过请求-响应来完成信息的交互.

通过抓包工具才能清晰看出HTTP协议中具体的格式,下面使用fiddler 抓包工具来观察HTTP协议的基本格式

二.使用抓包工具fiddler观察格式

1.先用fiddler抓个包观察

其中左侧窗口显示了所有的HTTP请求/响应,可以选其中一个查看详情 右上方显示的是HTTP请求报文内容,右下方是HTTP的响应报文内容,两者都可以点击Raw标签页看到详细的数据格式.如果数据量过大找不到想要的信息,可以使用 ctrl + a 全选左侧的抓包结果, delete 键清除所有被选中的结果.  然后再重新抓想要的数据.

2.查看HTTP请求

其中首行的方法(HTTP1.1)有POST、GET、HEAD、PUT、OPTIONS、DELETE、TRACE、CONNECT,常用的就是 POST 和 GET 方法.有些包中会有Referer,意思就是当前这个页面是从哪个网站跳转过来的。

GET 一般用于获取数据, POST 一般用于提交数据.

GET 的 body 一般为空, 需要传递的数据通过 query string 传递, POST query string 一般

为空 , 需要传递的数据通过 body 传递
GET 请求一般是幂等的 , POST 请求一般是不幂等的 . ( 如果多次请求得到的结果一样 , 就视为请
求是幂等的 ).
GET 可以被缓存 , POST 不能被缓存 . ( 这一点也是承接幂等性 ).
3.查看HTTP响应

首行是协议名和协议版本,状态码和状态码描述,常见的状态码有

1xx 类状态码属于提示信息,是协议处理中的一种中间状态

2xx 类状态码表示服务器成功处理了客户端的请求

3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。

4xx 类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。

5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。

响应头:

Content-Type:段用于服务器回应时,告诉客户端,

本次数据是什么格式。

响应中的 Content-Type 常见取值有以下几种 :
text/html : body 数据格式是 HTML
text/css : body 数据格式是 CSS
application/javascript : body 数据格式是 JavaScript
application/json : body 数据格式是 JSON
Content-Length :服务器在返回数据时,会有  Content-Length 字段,表明本次回应的数据长度。
HTTP 基于 TCP 传输协议进行通信,使用了 TCP 传输协议,会存在一个“粘包”的问题, HTTP 协议通过设置回车符、换行符作为 HTTP header 的边界,通过 Content-Length 字段作为 HTTP body 的边界,这两个方式都是为了解决“粘包”的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值