利用Fiddler初识HTTP协议(一)

最近在学习HTTP协议,确实挺久没更新了,在备考四级和蓝桥杯校内筛选,等过完这阵狂更,争取超过这个博主的数量 HER

介绍HTTP协议作用

首先解决第一个问题,HTTP协议干什么用?
HTTP是位于TCP/IP五层模型中应用层特别常见的应用层协议,有关TCP/IP模型的各层后续再更一篇博客详细介绍。
像你的电脑浏览器打卡一个网页,必定是要和服务器进行交互,怎么交互? 我们可以通过HTTP协议
同样的手机APP的使用也离不开和服务器进行交互,怎么交互?最常用的还是HTTP协议。

利用Fiddler初识HTTP协议(一)_第1张图片

像上图这样,在浏览器地址栏,输入一串url后按下enter,我们这样就算像服务器发送发送了一个请求。
同时服务器返回一个响应,并通过浏览器渲染出来就看到了百度搜索这个界面

利用Fiddler初识HTTP协议(一)_第2张图片

HTTP协议是最经典的一问一答模型的协议

那学习HTTP到底要学啥,学的是HTTP协议的报文格式,学明白了HTTP协议的报文格式,也就明白了请求里面是啥,响应里面又是啥。

通过Fiddler捕捉交互

想要学明白HTTP协议的报文格式,首先我们要使用一个所谓的‘抓包工具’来捕获到HTTP请求和响应的交互情况

什么是抓包工具?抓包工具也称为‘代理程序’,我们使用浏览器给服务器发送请求就会被这个抓包工具捕获到,通过这个代理程序,进一步就可以分析出请求和响应的结果如何。

利用Fiddler初识HTTP协议(一)_第3张图片

我们作为程序员,就可以借助代理程序知道浏览器和服务器之间具体的交互细节

给自己挖个坑:代理之间还分为正向代理和反向代理,具体是啥以后有机会说~

安装过程不多赘述,推荐安装Fiddler classic版本

我们来看看他捕捉的效果如何,当我们在浏览器地址栏输入www.baidu.com并访问时,此时Fiddler马上就捕获了一大批的HTTP请求和响应

利用Fiddler初识HTTP协议(一)_第4张图片

接下来继续介绍Fiddler如何使用:

利用Fiddler初识HTTP协议(一)_第5张图片

左侧:抓到的请求列表

电脑上每时每刻都会有应用程序通过http协议传输数据,都能被fiddler抓到,也就是为什么上面的动图中我在还没有输入网址时候就已经开始捕获到一些请求了

利用Fiddler初识HTTP协议(一)_第6张图片

右侧:双击左侧的某个你想关注的请求详细,就会在右侧窗口显示出请求的具体情况
利用Fiddler初识HTTP协议(一)_第7张图片

怎么样查看HTTP请求的内容呢?
利用Fiddler初识HTTP协议(一)_第8张图片

注意:到这个了么?

image-20221110162520787

这是因为响应太大了,点击这里解压缩,下面响应格式的一些乱码也可以正常显示出来了

至此,我们就通过了fiddler捕获到了一个完整的客户端和服务器通过HTTP协议进行交互的完整情况。

HTTP协议格式

HTTP请求

利用Fiddler初识HTTP协议(一)_第9张图片

1.首行:image-20221110164209523

利用Fiddler初识HTTP协议(一)_第10张图片

2.请求头:header

利用Fiddler初识HTTP协议(一)_第11张图片

按行组织的键值对,里面的每一行都是一个键值对,通过 : 来分割键和值

3.空行

利用Fiddler初识HTTP协议(一)_第12张图片

一个HTTP请求的header可以有若干的,使用空行作为每个header的结束标记
4.正文body(有的请求有,有的请求没有)
利用Fiddler初识HTTP协议(一)_第13张图片

总结:利用Fiddler初识HTTP协议(一)_第14张图片

HTTP响应

利用Fiddler初识HTTP协议(一)_第15张图片

1.首行

利用Fiddler初识HTTP协议(一)_第16张图片

2.响应报头header利用Fiddler初识HTTP协议(一)_第17张图片

按行组织的键值对,里面的每一行都是一个键值对,通过 : 来分割键和值

3.空行

利用Fiddler初识HTTP协议(一)_第18张图片

作为header的结束标记

4.正文body
image-20221110165925623

正文可以是json数据,也可以是html,也可以是css/JS,也可以是图片…

总结:

利用Fiddler初识HTTP协议(一)_第19张图片

你可能感兴趣的:(JAVA,EE,fiddler,http)