最近在学习HTTP协议,确实挺久没更新了,在备考四级和蓝桥杯校内筛选,等过完这阵狂更,争取超过这个博主的数量 HER
首先解决第一个问题,HTTP协议干什么用?
HTTP是位于TCP/IP五层模型中应用层特别常见的应用层协议,有关TCP/IP模型的各层后续再更一篇博客详细介绍。
像你的电脑浏览器打卡一个网页,必定是要和服务器进行交互,怎么交互? 我们可以通过HTTP协议
同样的手机APP的使用也离不开和服务器进行交互,怎么交互?最常用的还是HTTP协议。

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

HTTP协议是最经典的一问一答模型的协议
那学习HTTP到底要学啥,学的是HTTP协议的报文格式,学明白了HTTP协议的报文格式,也就明白了请求里面是啥,响应里面又是啥。
想要学明白HTTP协议的报文格式,首先我们要使用一个所谓的‘抓包工具’来捕获到HTTP请求和响应的交互情况
什么是抓包工具?抓包工具也称为‘代理程序’,我们使用浏览器给服务器发送请求就会被这个抓包工具捕获到,通过这个代理程序,进一步就可以分析出请求和响应的结果如何。

我们作为程序员,就可以借助代理程序知道浏览器和服务器之间具体的交互细节
给自己挖个坑:代理之间还分为正向代理和反向代理,具体是啥以后有机会说~
安装过程不多赘述,推荐安装Fiddler classic版本
我们来看看他捕捉的效果如何,当我们在浏览器地址栏输入www.baidu.com并访问时,此时Fiddler马上就捕获了一大批的HTTP请求和响应

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

左侧:抓到的请求列表
电脑上每时每刻都会有应用程序通过http协议传输数据,都能被fiddler抓到,也就是为什么上面的动图中我在还没有输入网址时候就已经开始捕获到一些请求了
右侧:双击左侧的某个你想关注的请求详细,就会在右侧窗口显示出请求的具体情况
怎么样查看HTTP请求的内容呢?
注意:到这个了么?
这是因为响应太大了,点击这里解压缩,下面响应格式的一些乱码也可以正常显示出来了
至此,我们就通过了fiddler捕获到了一个完整的客户端和服务器通过HTTP协议进行交互的完整情况。

1.首行:

2.请求头:header

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

一个HTTP请求的header可以有若干的,使用空行作为每个header的结束标记
4.正文body(有的请求有,有的请求没有)

总结:

1.首行

2.响应报头header
按行组织的键值对,里面的每一行都是一个键值对,通过 : 来分割键和值
3.空行

作为header的结束标记
4.正文body

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