HTTP,Fiddler
1.HTTP是什么
HTTP也叫超文本传输协议,是一种应用层协议,它是非常典型的应用层协议。
我们打开一个网站,等待一会就可以看见画面,这个过程中就是通过HTTP协议来通信的。
2.HTTP协议与客户端和服务器
HTTP协议的模型:属于一次请求 一次响应的协议。
例子:打开一个网站。
浏览器就相当于一个客户端
客户端给服务器发送HTTP请求(输入的网址),服务器根据请求找到网址的html资源,然后把这个资源响应返回给客户端(HTTP响应)。
3.HTTP协议的报文格式
1.抓包工具
抓包工具可以获取到HTTP协议的格式,它相当于一个中间人,在客户端和服务器的中间,客户端发送的HTTP请求,和服务器发送的HTTP响应都发给中间人,中间人再发给两边。这样的话,使用抓包工具就可以分析出请求和响应的结果。
抓包工具推荐使用 fiddler。
简单且功能强。
下载地址点击这里
下载完了以后,我们在windows中点开它,它长这样。
左半部分是各种应用程序在通过HTTP传输数据,被fiddler抓包抓到。
双击你想要查看的HTTP请求,然后右上角点击RAW 显示的内容是HTTP请求的原始样子,右下角的RAW是HTTP响应的数据内容。
你所看到的请求和响应中的内容就是HTTP的报文格式。
=========================================
我这里的抓包比较多,有的人的抓包可能比较少,是因为fiddler默认只抓取HTTP协议的请求,但是很多网站用的是HTTPS(多了加密层),所以我们需要手动设置一下,让它可以抓取HTTPS请求。
点击Tools➡Options➡HTTPS 然后把全部都打勾,出现让你安装根证书 什么的 全部点yes。
抓包工具的使用 就是为了让我们可以看到请求和响应的HTTP报文格式,我们已经完成了工具的使用。
2.HTTP报文格式
以打开百度网站为例子。
1.HTTP请求的报文格式
由四部分组成。
1.首行
我们的GET是一个方法 然后中间的网站是一个URL,后面的HTTP/1.1是版本号,所以首行就是由 方法,URL,版本号组成。
2.请求报文头(header)
请求报文头使用键值对,键和值之间使用: 一行一个键值对
3.空行
使用空行来标记请求报文头的结束。
4.正文 body
正文部分一般是用户输入的内容 ,因为我们啥都还没输入,所以没有。
2.HTTP响应的报文格式
还是以百度网站为例子。
1.首行
HTTP/1.1 版本号;200 状态码;OK 状态码的描述
首行由版本号,状态码,状态码描述构成。
2.响应报文头(header)
和请求报文头一样 都是键值对,一行一个键值对。
3.空行
作为响应报头文的结束。
4.正文
正文数据可以是json,css,html,js,图片。
4.末语
如果本文章对你有帮助,麻烦点赞收藏一波!这对我很有帮助