前言:
大家好,我是良辰丫,今天我们一起来学习http协议,http协议是应用层的协议,应用层是最接近程序员的,那么,http协议到底是什么呢?我们往下看.💞💞
🧑个人主页:良辰针不戳
📖所属专栏:javaEE初阶
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
💌作者能力有限,可能也会出错,欢迎大家指正。
💞愿与君为伴,共探Java汪洋大海。
目录
- 1. 简述http协议
- 2. http工作过程
- 3. 抓包工具深入了解http协议
- 3.1 简述抓包工具
- 3.2 下载抓包工具fiddler
- 3.3 第一次使用fiddler
- 4. 使用fiddler抓包
- 4.1 fiddler工具页面介绍
- 4.1.1 抓到包的列表
- 4.1.2 包的详情
- 4.1.3 包的详细数据
- 4.2 定位自己需要的包
- 4.3 抓包数据分析
- 4.3.1 http请求
- 4.3.2 http响应
1. 简述http协议
- 所谓
HTTP协议
(全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议.- http是我们应用非常广泛的协议,只要上网,一般都需要用到这个协议.
- http协议有很多版本,但是我们经常使用的还是1.1版本.
- http是一个双向协议,往往有问有答.
2. http工作过程
- 当我们在浏览器发送一个请求的时候,这个时候就会用到http协议,其实我们发送的就是一个http请求,服务器也会给我们返回http响应.
- 在这里我们发送一次请求,可能有许多次http请求与响应的交互过程.
在http协议通过网络交互的过程中,我们了解到一些关键字.
- 客户端:就是发送请求的一方(我们在浏览器查询事件的时候我们就是客户端)
- 服务器:返回响应的一方(我们向百度发送请求后,百度会给我们返回一个响应,百度可以理解为服务器)
- 请求:客户端向服务器发送的数据.
- 响应:服务器向客户端.
3. 抓包工具深入了解http协议
- 大家可能看了上面的描述对http有了一定的认识,但是不深,还是有点稀里糊涂的,没关系,我们可以通过抓包工具进一步学习http协议的报文格式.
- 谷歌浏览器自带抓包工具,但是网速比较慢,使用起来也不方便,不建议大家使用.
3.1 简述抓包工具
上面是抓包工具呢?什么又是抓包呢?越来越糊涂了.
所谓抓包
就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等(百度给出的概念)抓包工具
,顾名思义就是一个工具,它相当于一个代理(一个中介),通过这个代理你可以清楚的看到网络传输的数据请求.
3.2 下载抓包工具fiddler
抓包工具有很多,我们在这里主要研究http,因此我们简单的下载一个http的抓包工具即可.
1. 进fiddler官网
- 直接在浏览器搜索fiddler即可,记住一定要进官网.
- 怎么辨别官网呢?右下角会有官网网站显示,比如fiddler,页面上会显示与fiddler相关的东西.
2. 点进去下载经典版
经典版是免费的版本,有这一款
3. 填写相关信息进行下载
3.3 第一次使用fiddler
在我们第一次使用的时候需要配置一些东西.
- 点击Tools,选择https,把响应的对号勾上.
- 在我们第一次使用的时候会弹出一个弹框,一定要选择"是",这表示安装根证书,也就是抓包的权限.
如果没有选择"是",需要卸载重新安装.
抓不到包的原因可能有哪些?
- https相关设置没有选上.
- 没有安装根证书,没有抓包权限.
- fiddler是一个代理,可能会与别的软件起冲突,这种情况也是最麻烦的.
4. 使用fiddler抓包
4.1 fiddler工具页面介绍
4.1.1 抓到包的列表
fiddler左边是抓到包的列表,列表的内容是不断的变化,这是很正常的,因为只要你的电脑与网络进行一次交互,就会进行http抓包.
4.1.2 包的详情
- 双击左侧的某个包就会进入该包的详情页.
- 右边上方是http的请求报文.
- 右边下方是http响应的报文.
4.1.3 包的详细数据
- raw翻译为原生的,也就是http最原始的请求数据.
- 点击右下角的view in notepad就会以记事本的形式打开数据,可以更清楚的看到数据.
4.2 定位自己需要的包
我们抓包后,如何快速定位自己发的包呢?
- 黑色的包表示普通数据;蓝色的包响应是html.
- 看域名,根据域名定位,像百度,www.baidu.com
- 看响应的数据长度,一般是找长的.
4.3 抓包数据分析
4.3.1 http请求
- 首行
GET https://mbd.baidu.com/newspage/api/getpcvoicelist?callback=JSONP_0& HTTP/1.1- 请求报头header
从首行结束开始到空行结束,空行是header的结束标记.- 正文
header结束后,下面的内容就是正文,有时候没有正文.
4.3.2 http响应
- 首行
HTTP/1.1 200 OK- 响应报头header
从首行结束开始到空行结束,空行是header的结束标记.- 正文
空行后面的内容.
一般来说,在上网的时候,页面显示的内容,哪怕是一个简单的页面,都是服务器作为响应返回来的结果.
后序:
这篇文章,我们的主要任务是认识http协议,然后会使用抓包工具即可,后序我们会更详细的深入探索http协议.