HTTP是什么?
超文本传输协议(Hypertext Transfer Protocol,简称HTTP协议)是OSI七层模型中的应用层协议,也是互联网上因公用最为广泛的一种网络协议。
我们知道,在Web开发中,要想开发一个完整的网页必要同时具有前端和后端。一般Web的客户端 / 用户端就是浏览器(PC或移动设备),进行网页资源的请求,服务器(后端)响应之后返回数据,再进行后续操作。
简单理解为客户端就是面向程序员的操作,比如程序员在使用数据库时,程序员先发出一个数据请求,数据库服务器收到请求后才会返回程序员想要的数据。可见,客户端和服务器之间,是基于网络来进行通信的~而HTTP协议,就是最常用的网络通信协议,用于明确通信时床底的数据信息应该以何种规则进行转换和解析。
HTTP功能
- 便捷性:当客户端向服务器端发送请求时,只需请求路径和请求方法,就可以通过浏览器或其他方式将该请求发送成功。
- 灵活性: HTTP 协议允许客户端和服务器端传输任意类型任意格式的数据对象。
HTTP工作过程
当我们通过浏览器(也就是客户端)访问一个网址时,浏览器会给对应的服务器发送一个HTTP请求,对应服务器搜狐到这个请求后,经过处理就会返回一个HTTP响应。其工作过程如下图所示。
抓包工具Fiddler
但是HTTP的交互过程在我们访问网页时是观察不到的,所以为了我们更好的分析与学习HTTP请求 / 响应的细节,这里介绍一个HTTP调试抓包工具Fiddler。
下载安装
官网下载
选择经典版,后续安装直接Next即可。
界面功能
- 左侧窗口显示了所有HTTP请求 / 响应,可以选中其中某条在右侧查看详细信息;
- 右上方显示了HTTP请求的报文内容,点击Raw标签页可以查看详细的数据格式;
- 右下方显示了HTTP响应的报文内容,点击Raw标签页可以查看详细的数据格式;
- 请求过多,不易查找的情况下可以使用
ctrl + a
选中左侧所有的抓包内容,delete 全部删除后重新抓包即可。
由于现在很多网站时HTTPS,所以需要按照下面的操作设置一下。
将下图HTTPS中的复选框全部勾上,首次勾选时会弹出一个对话框提示安装一个证书,选择确定安装即可。
注意事项
Fiddler很好安装,即装即用。如果发现抓不到对应操作的包,很有可能是和浏览器装的一些其他代理软件产生了冲突,把这些插件什么的都关掉过着卸掉即可。
抓包工具原理
客户端想要访问一个网址时,会先将HTTP请求发送给Fiddler,Fiddler再将该请求转发给对应网址的服务器;同样的当该服务器返回HTTP响应时,也是先将响应发送给Fiddler,再由Fiddler返回给客户端。由此我们就可以通过Fiddler工具可视化客户端与服务器之间的交互细节,更有助于我们深入理解HTTP协议。
Fiddler的具体使用在后文协议格式时介绍。