HTTP和HTTPS(一)

一.什么是HTTP

HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议.

超文本是一种包含了链接、图像、音频、视频等多种形式的信息载体,它不仅仅是简单的文本内容。超文本通过链接将不同的信息片段连接在一起,使得用户可以通过点击链接轻松地从一个文档跳转到另一个文档,或者从一个位置跳转到同一文档中的另一个位置。例如,网页就是一种典型的超文本,其中的文字可能包含指向其他网页的链接,还可能有图片、视频等多媒体元素,这些元素共同构成了丰富的超文本内容,为用户提供了更加多样化和便捷的信息获取方式。

HTTP 诞生与1991年。目前已经发展为最主流使用的一种应用层协议。HTTP 往往是基于传输层的 TCP 协议实现的。 (HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于 UDP实现)目前我们主要使用的还是 HTTP1.1 和 HTTP2.0 。 我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的。
在这里插入图片描述

当我们在浏览器中输入一个 搜狗搜索的 “网址” (URL) 时, 浏览器就给搜狗的服务器发送了一个 HTTP 请求, 搜狗的服务器返回了一个 HTTP 响应。这个响应结果被浏览器解析之后, 就展示成我们看到的页面内容. (这个过程中浏览器可能会给服务器发送多个 HTTP 请求, 服务器会对应返回多个响应, 这些响应里就包含了页面 HTML, CSS, JavaScript, 图片, 字体等信息)。

二.理解应用层协议

我们已经学过 TCP/IP , 已经知道目前数据能从客户端进程经过路径选择跨网络传送到服务器端进程
[ IP+Port ]。可是,仅仅把数据从A点传送到B点就完了吗?

这就好比,在淘宝上买了一部手机,卖家[ 客户端 ]把手机通过顺丰[ 传送+路径选择 ] 送到买家 [
服务器 ] 手里就完了吗?
当然不是,买家还要使用这款产品,还要在使用之后,给卖家打分评论。

所以,我们把数据从A端传送到B端, TCP/IP 解决的是顺丰的功能,而两端还要对数据进行加工处理或者使用,所以我们还需要一层协议,不关心通信细节,关心应用细节!这层协议叫做应用层协议。而应用是有不同的场景的,所以应用层协议是有不同种类的,其中经典协议之一的HTTP就是其中的佼佼者.

再回到我们刚刚说的买手机的例子,顺丰相当于 TCP/IP 的功能,那么买回来的手机都附带了说明
书【产品介绍,使用介绍,注意事项等】,而该说明书指导用户该如何使用手机【虽然我们都不
看,但是父母辈有部分是有看说明书的习惯的:)】,此时的说明书可以理解为用户层协议

三.理解HTTP的工作过程

当我们在浏览器中输入一个 “网址”, 此时浏览器就会给对应的服务器发送一个 HTTP 请求. 对方服务器收到这个请求之后, 经过计算处理, 就会返回一个 HTTP 响应。
在这里插入图片描述
事实上, 当我们访问一个网站的时候, 可能涉及不止一次的 HTTP 请求/响应 的交互过程。

四.HTTP的协议格式

HTTP 是一个文本格式的协议. 可以通过 Chrome 开发者工具或者 Fiddler 抓包, 分析 HTTP 请求/响应

1.抓包工具的使用

以 Fiddler 为例. ( 下载地址
在这里插入图片描述
随便点开一个是这个样子的。

左侧窗口显示了所有的 HTTP请求/响应, 可以选中某个请求查看详情.
右侧上方显示了 HTTP 请求的报文内容. (切换到 Raw 标签页可以看到详细的数据格式)

在这里插入图片描述

右侧下方显示了 HTTP 响应的报文内容. (切换到 Raw 标签页可以看到详细的数据格式)
请求和响应的详细数据, 可以通过右下角的 View in Notepad 通过记事本打开.

在这里插入图片描述

可以使用 ctrl + a 全选左侧的抓包结果, delete 键清除所有被选中的结果.

2.抓包工具的原理

浏览器访问 sogou.com 时, 就会把 HTTP 请求先发给 Fiddler, Fiddler 再把请求转发给 sogou 的服务器。当 sogou 服务器返回数据时, Fiddler 拿到返回数据, 再把数据交给浏览器。因此 Fiddler 对于浏览器和 sogou 服务器之间交互的数据细节, 都是非常清楚的。
在这里插入图片描述

代理就可以简单理解为一个跑腿小弟. 你想买罐冰阔落, 又不想自己下楼去超市, 那么就可以把钱给
你的跑腿小弟, 跑腿小弟来到超市把钱给超市老板, 再把冰阔落拿回来交到你手上。这个过程中, 这
个跑腿小弟对于 “你” 和 “超市老板” 之间的交易细节, 是非常清楚的。

3.抓包结果

HTTP请求
在这里插入图片描述

首行: [方法] + [url] + [版本]
Header: 请求的属性, 冒号分割的键值对

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值