前言:
大家好,我是良辰丫,今天我们一起来学习http协议,http协议是应用层的协议,应用层是最接近程序员的,那么,http协议到底是什么呢?我们往下看.💞💞

🧑个人主页:良辰针不戳
📖所属专栏:javaEE初阶
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
💌作者能力有限,可能也会出错,欢迎大家指正。
💞愿与君为伴,共探Java汪洋大海。

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协议.

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐