HTTP协议格式及Fiddler的使用

发布于:2024-04-17 ⋅ 阅读:(26) ⋅ 点赞:(0)

通常我们使用网址访问某个页面,就是通过HTTP协议来完成的。当我们在输入框输入网站,并按下回车后,客户端就会向服务器发起HTTP请求,服务器收到该HTTP请求后,就会作出HTTP响应。

下面我输入一个网址,按下回车,向目标服务器发起HTTP请求:

百度的服务器就会对这个HTTP请求,返回一个响应,我就能访问到百度页面了:

如何能够看到HTTP请求和响应的格式呢?这就得用到抓包工具Fiddler

打开Fiddler软件,看到以下界面,列表页就可以看到 当前所发出的HTTP请求,双击一个请求,详情页就会显示这个请求的详情。

一打开fiddler,就能抓到许多包,因此,要查看我们向百度发起的HTTP请求,就需要先把当前抓到的请求给删除,点击请求,Ctrl + A 全选,删除。接着,就输入百度网址,回车,发起请求。

在列表中找到请求,双击,就可以看到该请求的详情。

HTTP的格式就分为 HTTP请求HTTP响应。在详情页就可以看到HTTP请求和HTTP响应。

下面就分别看一下HTTP请求和响应的格式,要想看到HTTP请求和响应的格式,就要点击Raw

1.HTTP请求

HTTP请求格式:

(1)首行:包括 GET、URL、HTTP/1.1

GET是 HTTP请求的 方法类型,常用的请求的方法类型一般有 GET、POST、PUT、DELETE

URL是唯一资源定位符,描述了一个资源在网络上的位置。

HTTP/1.1描述了当前协议的版本号。

(2)请求头(Header):请求的相关属性 会在Header中描述出来。Header的数据格式是键值对的形式,形如"key: value"。

(3)空行:Header的结束标志是空行,Header的最后一项下方会有一行是空的,称之为"空行"。

(4)正文(Body):有些请求没有body,比如,此时的请求就没有body部分,因此上图中body部分为空。

2. HTTP响应

HTTP响应格式:

(1)首行:HTTP响应的首行与请求的首行不同,响应的首行包括 协议版本号,状态码,状态码描述

状态码 说明了 当前请求的响应状态是200,状态码描述 说明了 响应的状态是OK的。

常见的状态码有:2xx,3xx,4xx,5xx

2xx:以2开头的状态码,一般都表示 成功。

3xx:以3开头的状态码,一般表示 重定向,说明此响应要跳转到其它页面。

4xx:常见的有403,表示 该页面用户无权限访问(forbidden);404,表示 页面没找到(Not found),可能是用户输入的url有误。

(2)响应头(Header):与请求头类似,也是"键值对"结构,描述了 响应的相关属性。

(3)空行:响应头的结束标志。

(4)正文(body): 这里响应的正文不为空,说明body中响应的有数据。