前端笔记 — http与https

2020-06-13  本文已影响0人  codingZero

一. 定义

1.什么是HTTP?

HyperText Transfer Protocol,超文本传输协议,它是TCP/IP协议的一个应用层协议,用来定义客户端与服务端通讯的格式

2.什么是HTTPS?

HTTPS是HTTP的安全版,即在应用层HTTP与传输层TCP之间多了一层加密层TLS/SSL。普通的HTTP通信,会直接将明文数据给到TCP进行传输,而HTTPS会先将数据给到TLS/SSL进行加密,然后将加密后的数据给到TCP进行通信

二. HTTP与HTTPS的区别

  1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

三. HTTPS的工作原理

  1. 客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
  2. Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
  3. 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
  4. 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
  5. Web服务器利用自己的私钥解密出会话密钥。
  6. Web服务器利用会话密钥加密与客户端之间的通信。

四. HTTPS的优缺点

1.优点:
2.缺点

五. SSL/TLS的协议的基本过程

  1. 客户端向服务器端索要并验证公钥。
  2. 双方协商生成"对话密钥"。
  3. 双方采用"对话密钥"进行加密通信。

上面过程的前两步,又被称为“握手阶段”

六. 握手阶段的详细过程

“握手阶段”涉及四次通讯,且每次通信都是明文的

1. 客户端发出请求(ClientHello)

客户端向服务器发出加密通信的请求,并向服务器提供以下信息

2. 服务器响应(SeverHello)

服务器收到客户端请求后,向客户端发出回应,回应包含以下内容

3. 客户端回应

客户端收到服务器回应后,首先验证证书的真实性与有效性。如果证书没有问题,客户端就会从证书中取出服务器的公钥,然后向服务器发送以下信息

4. 服务器的最后回应

服务器收到客户端的第三个随机数pre-master key之后,计算生成本次会话所用的“会话密钥”,然后向客户端发送下面信息

上一篇下一篇

猜你喜欢

热点阅读