Q:说一下 http 和 https

A:https 的 SSL 加密 是在传输层实现的。

http 和 https 的基本概念

  • http:超文本传输协议, 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请示和应答的标准(TCP),用于从万维网传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
  • https:是以安全为目标的 HTTP 通道,就是 HTTP 的安全版,即在 HTTP 下加入 SSL 层, HTTPS 的安全基础是 SSL,因此加密 的详细内容就需要 SSL。

HTTPS 协议的主要作用是建立一个信息安全通道,来确保数据的转输,确保网站的真实性。

http 和 https 的区别

  • http 传输的数据都是明文没有加密的,网景公司设置 SSL 协议来对 HTTP 协议传输的数据进行加密处理,就是说 HTTPS 协议是由 HTTP 和 SSL 协议构建的可进行加密传输和身份谁的网络协议,比 HTTP 协议的安全性更高。
  • 主要区别:

    • HTTPS 需要 ca 证书,费用较高
    • HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。使用不的连接方式,端口也不同。一般来说 HTTP 端口为 80,HTTPS 端口为 443。
    • HTTP 连接很简单,是无状态的;HTTPS 协议是由 SSL + HTTP 构建的可进行加密传输,身份认证的网络协议,比 HTTP 安全

      https 协议的工作原理

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

    1. 客户端使用 HTTPS 的 URL 访问服务器,则要求 WEB 服务器建立 SSL 连接
    2. WEB 服务器接收到客户端的请求后, 会将网站的证书(证书中包含了公钥)传输给客户端
    3. 客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送给网站
    4. WEB 服务器通过自己的私钥解密出会话密钥
    5. WEB 服务器通过会话密钥加密与客户端之间的通信

      https 协议的优点

  • 使用 HTTPS 协议可以认证用户和服务器,确保数据发送到正确的客户端和服务器

  • HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、 身份认证的网络 协议,要比 HTTP 协议安全,可以防止数据在传输过程中不被窃取、改变、确保数据的完整性
  • HTTPS 是现行架构中最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
  • Google 曾在 2014 年 8 月份调整搜索引擎算法,并称“比起同等 HTTP 网站,采用 HTTPS 加密的网站在搜索结果中的排名将会更高”

    https 协议的缺点

  • HTTPS 握手阶段比较费时,会使页面加载时间延长 50%,增加 10% ~ 20% 的耗电

  • HTTPS 缓存不如 HTTP 高效,会增加数据开销
  • SSL 证书需要钱,功能越强大的证书费用越高
  • SSL 证书需要绑定 IP,不能在同一个 IP 上绑定多个域名,ipv4 资源支持不了这种消耗

    Q:TCP 三次握手,一句话概括

    A:客户端和服务端都需要直到各自可收发,因些需要三次握手。

客户端发起请求连接服务端确认,也发起连接客户端确认,每次握手的作用:

  1. 服务端确认自己可以接收客户端发送的报文段
  2. 客户端确认:服务端收到自己发送的报文段
    并且确认:自己可以接收服务端发送的报文段
  3. 服务端可以确认:客户端收到自己发送的报文段

    Q:TCP 和 UDP 的区别

    A:

  4. TCP 是面向连接的,UDP是无连接的即发送数据前不需要先建立连接

  5. TCP 提供可行的服务,通过 TCP 连接传送的数据,无差错,不丢失,不重复,且按序到达。适合大数据量的交换;
    UDP 尽最大努力交付,即不保证可靠交付。
  6. TCP 是面向字节流,UDP 面向报文,并且网络出现拥塞不会舍不得发送速率降低(因此会出现丢包,对实时的应用比如 IP 电话和视频会议等)
  7. TCP 只能是 1对1的;UDP 支持 1对1,1对多
  8. TCP 的首部较大 20 字节;UDP 只有 8 字节
  9. TCP 是面向连接的可靠性传输,而 UDP是不可靠的