HTTP/HTTPS 协议

HTTP 协议

HTTP 协议称为超文本传输协议
HTTP 协议和 TCP/IP 协议族内的其他众多协议相同,都是用于客户端和服务器之间的通信,HTTP 协议是属于应用层

HTTP 协议版本:

  1. HTTP 0.9:第一个版本的 HTTP 协议,只允许发送 GET 请求,并且不支持请求头,导致只支持纯文本传输这一种内容。
  2. HTTP 1.0:第二个版本,相比于第一个版本,请求与响应支持头域,传输内容不仅仅为文本,支持 GET、HEAD、POST 多种请求方式,支持长连接(但默认还是短链接)。
  3. HTTP 1.1:第三个版本,也是目前主流的版本,引入关键性能优化:keepalive 连接(默认使用)、chunked 编码传输等等。
  4. HTTP 2.0:HTTP 2.0 是下一代 HTTP 协议,目前使用还很少,数据通过二进制传输,主要特点:多路复用(建立连接后可以一次发送多个 HTTP 请求)、HEAD 压缩、支持 Server Push(服务器端推流)。

HTTP 协议是无状态的,每次请求都会被认为是从全新的客户端发起的,如果需要保存用户信息,则需要使用 cookie、session 等技术。

HTTP 协议十分优秀,但是它也有不安全的一面:

  • 使用明文通信,内容不加密。
  • 不验证通信方的身份。
  • 无法验证报文的完成性。

正是因为如此,HTTPS 协议应运而生。


Https 协议

HTTPS 协议本质上就是 HTTP 协议,只是在其基础上添加了加密认证机制,提供数据安全和完整性,这个协议就是 SSL 安全套接字协议,非对称加密(公钥和私钥)。

HTTPS 请求流程:

  1. 客户端向服务器发起请求。
  2. 服务器会发送一份网站的安全证书到客户端,证书包含了公钥和认证信息。
  3. 客户端将信息通过服务器给予的公钥进行加密处理,发送给服务器。
  4. 服务器用过私钥对客户端数据进行解密,获取信息。

目前大部分网站都是通过 HTTPS 协议传输用户信息,就算在传输过程中被人拦截,也无法解密信息,保证了信息的安全。

既然 HTTPS 是安全的,为什么不将所有请求都使用 HTTPS 呢?

虽然 HTTPS 相比于 HTTP 是安全的,但是 HTTPS 在加密和解密信息时是需要消耗性能的,一些并不重要的信息直接通过 HTTP 传输即可,更大程度上满足信息传输又保证信息安全。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 设计师:不想当程序汪的第N天 返回首页