HTTP 和 HTTPS

http 和 https 的基本概念

http: 是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。

https:是以安全为目标的 HTTP 通道,即 HTTP 下 加入 SSL 层进行加密。其作用是:建立一个信息安全通道,来确保数据的传输,确保网站的真实性。

传送门:笔记图片-O(∩_∩)

http 和 https 的区别及优缺点?

  • http 是超文本传输协议,信息是明文传输,HTTPS 协议要比 http 协议安全,https 是具有安全性的 ssl 加密传输协议,可防止数据在传输过程中被窃取、改变,确保数据的完整性(当然这种安全性并非绝对的,对于更深入的 Web 安全问题,此处暂且不表)。

  • http 协议的默认端口为 80,https 的默认端口为 443。

  • http 的连接很简单,是无状态的。https 握手阶段比较费时,会使页面加载时间延长 50%,增加 10%~20%的耗电

  • https 缓存不如 http 高效,会增加数据开销。

  • Https 协议需要 ca 证书,费用较高,功能越强大的证书费用越高。

  • SSL 证书需要绑定 IP,不能再同一个 IP 上绑定多个域名,IPV4 资源支持不了这种消耗。

https 协议的工作原理

  1. 客户端在使用 HTTPS 方式与 Web 服务器通信时有以下几个步骤:

  2. 客户端使用 https url 访问服务器,则要求 web 服务器建立 ssl 链接。

  3. web 服务器接收到客户端的请求之后,会将网站的证书(证书中包含了公钥),传输给客户端。

  4. 客户端和 web 服务器端开始协商 SSL 链接的安全等级,也就是加密等级。 客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送给网站。

  5. web 服务器通过自己的私钥解密出会话密钥。

  6. web 服务器通过会话密钥加密与客户端之间的通信

传送门:解读HTTP1\HTTP2\HTTP3

GET 和 POST 的请求的区别

  • 应用场景

    • 一般GET请求用于对服务器资源不会产生影响的场景,比如说请求一个网页的资源。
    • 而POST操作,一般用于对服务器资源产生影响下的场景,比如注册用户这一类的场景;
  • 是否缓存

    • 浏览器一般对GET请求缓存,但很少对POST请求进行缓存
  • 发送的报文格式:

    • GET
      • 报文中实体部分为空
    • POST
      • 报文实体部分一般为向服务器发送的数据
  • 安全性:GET请求可以将请求的参数放到URL中向服务器发送,这样的做法相对POST请求来说不太安全,因为请求的URL会保留在梨树记录中

  • 请求长度:浏览器由于对URL有长度的限制,所以会影响GET请求发送数据时的长度。这个限制是各个浏览器规定的,不是一个标准规范;

  • 参数类型:POST的参数传递支持更多的数据类型