HTTP协议详细图解(请求报文格式,响应报文格式,get和post的区别,状态码详解)

什么是Http协议?

Http协议是“超文本传输协议”(不仅可以传输文本,也可以传输图片,音频,视频等),属于应用层协议,并且它是一种无状态协议,这就表示,服务器不会保存任何关于客户端状态信息,也就是说服务器处理的每个请求都是独立的。其次它默认使用的是80端口进行通信,而且,HTTP协议定义了客户端和服务器之间请求和响应的格式,支持多种请求方法,和响应状态码。

HTTP报文格式

HTTP的工作原理:

是一种“一问一答”结构模型的协议。客户端(通常是Web浏览器)向服务器发送一个HTTP请求,请求包含请求的方法、URL、协议版本、请求头部和请求数据。服务器接收到请求后,会以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

如何查看 HTTP 请求和响应的格式

可以通过 Fiddler 工具 对发出的请求和响应进行抓包,查看请求和响应的协议格式,这种抓包工具也是程序员分析调试程序的重要手段,下面先讲解一下如何使用 Fiddler 工具:

Fiddler 工具下载链接:Fiddler Classic | Original Web Capturing Tool for Windows (telerik.com)

下面介绍 Fiddler 工具的界面:

1️⃣、打开 Fiddler 工具,可以看到以下页面

在这里插入图片描述

❗**注意:**打开 Fiddler 后,还需要手动开启 HTTPS 功能,并且安装证书,这样才能够抓到HTTPS的协议包,否则只能抓HTTP的。开启步骤如下图:

在这里插入图片描述

勾选上之后,会出来一个弹框,是一个全英文的,意思是问你是否确定安装证书,选择确定完成了,这里因为我的已经安装了,所以不会出来这个弹框。

2️⃣、抓包案例

以打开爱奇艺网站为例,查看fiddler抓到的请求

可以看到在下图的 fiddler上,有很多域名为 /iqiyi 的包,这些都是访问爱奇艺网站时发起的请求,一个网页在打开时,不只是和服务器进行一次交互操作,而是多次交互,这些大部分请求都不用管,主要是看蓝色字体的请求,这里的不同颜色的请求都是代表了不同的含义:

蓝色的:得到的响应是 html(网页)

黑色的:获取到一些普通的数据,具体数据是啥,不知道,要看人家程序员是咋写的

灰色的:直接忽略

绿色的:

在这里插入图片描述

3️⃣、点击这个蓝色请求,查看请求的原始数据

在这里插入图片描述

在这里插入图片描述

可以看出,HTTP协议是一个文本式的协议,协议里的内容都是字符串,和TCP、UDP、IP这些二进制格式的协议完全不同

4️⃣、查看响应

查看响应的步骤和查看请求的步骤一样,可以看到里面还包含了一些乱码,HTTP 响应也是文本的,直接查看,往往能看到二进制的数据(乱码的数据),通过 Raw 标签查看文本格式,通过 View in Notepad 标签在记事本打开。

在这里插入图片描述

通过解压缩就可以将 body(正文) 中的乱码翻译成文本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值