HTTP和HTTPS的区别(面试必考题)

一、HTTP和HTTPS的基本概念


HTTP(HyperText Transfer Protocol)超文本(文本、图片、视频、音频、css、js....)传输协议 ,它是基于请求/响应模式、应用层(TCP/IP协议)、无状态(没有记忆功能)的协议。HTTP 协议是以明文方式发送信息的,如果黑客截取了 Web 浏览器和服务器之间的传输报文,就可以直接获得其中的信息。

HTTP协议的通信过程(工作原理)?

第一步:客户端与服务器创建连接;

第二步:客户端发送请求给服务器;

第三步:服务接收处理请求并返回响应给客户端;

第四步:客户端与服务器自动断开连接;

HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer):以安全为目标的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基础是 SSL。SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。SSL 协议可分为两层:SSL 记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL 握手协议(SSL Handshake Protocol),它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

HTTPS协议的通信过程(工作原理)?​​​​​​​​​​​​

  • 首先客户端向服务端发起一个随机值,以及一个加密算法
  • 服务端收到后返回一个协商好的加密算法,以及另一个随机值
  • 服务端在发送一个公钥CA
  • 客户端收到以后先验证CA是否有效,如果无效则报错弹窗,有过有效则进行下一步操作
  • 客户端使用之前的两个随机值和一个预主密钥组成一个会话密钥,在通过服务端传来的公钥加密把会话密钥发送给服务端
  • 服务端收到后使用私钥解密,得到两个随机值和预主密钥,然后组装成会话密钥
  • 客户端在向服务端发起一条信息,这条信息使用会话秘钥加密,用来验证服务端时候能收到加密的信息
  • 服务端收到信息后返回一个会话秘钥加密的信息
  • 都收到以后SSL层连接建立成功

二、既然有了HTTP又为什么要有HTTPS?(HTTPS的设计目标)

(1) 数据保密性:保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么  。

(2) 数据完整性:及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收 。

(3) 身份校验安全性:保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方,通过身份校验来确保送对了地方  。

三、HTTP 与 HTTPS  的区别

1、HTTPS  协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(以前的网易官网是http,而网易邮箱是 https 。)

2、HTTP 是超文本传输协议,信息是明文传输HTTPS 则是具有安全性的 SSL 加密传输协议

3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

猜你喜欢

转载自blog.csdn.net/qq_48469083/article/details/121848871