【网络】HTTP

在上面的文章中,我们学习了网络的基础,和网络中一个伟大的标准 OSI 7层模型。通过上篇文章,我们可以知道网络模型最上层为应用层,那么这篇文章就让我们来一起看一下,我们开发过程中绕不开的一个非常著名的应用层协议, HTTP 协议 。

文章内容整理自 B 站 码上小白 up 主的教学视频,本文仅用作个人学习整理总结,欢迎大家多多去观看 up 的原视频 视频地址 ,谢谢大家。

一、HTTP 基础

HTTP 全称是超文本传输协议 HyperText Transfer Protocol,HTTP 最初设计就是为了传输超文本 (HTML),协议是指数据传输要遵循的规则 。

我们平时开发的时候,我们自己的电脑就是服务器,我们都会有一些想展示在浏览器前端界面上的资源,比如文本、图片、视频等等 。所以我们的服务器需要和浏览器进行通信,将我们要展示的资源传递给浏览器,同时浏览器接收到我们服务器发送过去的资源后,要进行解析和展示,HTTP 协议就是运行在这个浏览器和服务器通信过程上的协议。

【网络】HTTP_第1张图片

1.1 HTTP 通信过程

首先,我们都知道 HTTP 是运行在应用层上的协议,而其在数据传输层用的是 TCP 协议 。一次 HTTP 通信过程如下:

浏览器 和 服务器 间建立 TCP 连接,然后浏览器发送 GET 请求,服务器响应 html 资源给浏览器,最后断开 TCP 连接 。

【网络】HTTP_第2张图片

1.2 HTTP 协议报文结构

上面我们了解了一次 HTTP 通信过程,那么在这个过程中传输的 HTTP 报文结构是怎样的呢 ? 本节将介绍这个内容 :

1.2.1 请求报文

  • 请求行 : 包括请求方法(GET,POST),请求的目标资源 URI,以及使用的 HTTP 版本号
  • 请求头:key - value 形式
  • 空行
  • 消息体

【网络】HTTP_第3张图片

1.2.2 响应报文

  • 状态行:HTTP 版本号、状态码、原因(补充状态码的文字)
  • 响应头:key - value 格式
  • 空行:
  • 消息体:

【网络】HTTP_第4张图片

我们在浏览器输入网址后,浏览器将其装换为 HTTP 请求报文发给服务器 ,服务器按照协议约定解析报文,然后准备数据,再按照协议约定发送响应报文,浏览器解析报文,确认数据,呈现我们面前 。

二、HTTP 发展

【网络】HTTP_第5张图片

2.1 HTTP 0.9 ——

用于浏览器和服务器间数据传输的简单协议,其简单体现在:

  • 只能传输超文本数据
  • 只能执行 GET 请求

HTTP 0.9 的请求报文和响应报文如下:

【网络】HTTP_第6张图片

2.2 HTTP 1.0

  • 支持多数据格式

【网络】HTTP_第7张图片

HTTP 1.0 通过在请求和响应报文增加头信息来描述传输数据的元信息 —— Content-Type

【网络】HTTP_第8张图片

【网络】HTTP_第9张图片
【网络】HTTP_第10张图片

  • 缓存机制

【网络】HTTP_第11张图片

【网络】HTTP_第12张图片

2.3 HTTP 1.1

  • 持久连接的机制

【网络】HTTP_第13张图片

  • 管道机制

【网络】HTTP_第14张图片

【网络】HTTP_第15张图片

【网络】HTTP_第16张图片

三、HTTPS

网站中的弹窗广告,是因为网站被劫持然后被植入了恶意代码导致的。 HTTPS 可以加密数据传输,防止数据被篡改 。

【网络】HTTP_第17张图片

3.1 对称加密技术

使用相同秘钥和算法对数据进行加解密的技术 —— 秘钥泄漏会导致不安全

客户端请求秘钥, 服务器响应秘钥,服务器传给客户端用该秘钥加密的数据,客户端用相同秘钥进行解密。

3.2 非对称加密技术

使用不同的秘钥对数据进行加解密的技术,其使用一对秘钥对数据进行加解密,一个是公共传输的公钥,另一个是秘密存放的私钥。公钥加密的数据由私钥来解密,私钥加密的数据由公钥来解密。 —— 加解密速度较慢 。

【网络】HTTP_第18张图片

【网络】HTTP_第19张图片

客户端请求公钥,服务器响应公钥,客户端发送用公钥加密的请求,服务器用私钥加密数据,发送给客户端,客户端再用公钥解密 。

3.3 HTTPS 流程图

【网络】HTTP_第20张图片

3.4 数字证书

数字证书是由权威的、受信任的机构 CA 颁发的。

HTTP 最初设计是用于共享和传输,不考虑数据的安全性。 —— 也就是说 HTTP 不考虑中间人攻击 ,通过 HTTP 传输的数据会被窃取和篡改 。

HTTPS 即在 TCP 和 HTTP 间 再加一层安全协议 —— TLS , 即 HTTPS 是 HTTP 和 TLS 的结合体

【网络】HTTP_第21张图片

TLS —— 广泛采用的安全性协议 —— 其通过 记录协议 和 握手协议保证数据的安全传输

【网络】HTTP_第22张图片

你可能感兴趣的:(#,计算机网络,网络,http,服务器)