1. HTTP1.0、HTTP1.1的区别⭐⭐⭐⭐

  2. 什么是长连接?⭐⭐⭐⭐⭐

  3. HTTP2.0有哪些改动?⭐⭐⭐

  4. HTTPS的加密原理⭐⭐⭐⭐⭐

  5. 什么是对称加密?什么是非对称加密?两者区别?⭐⭐⭐⭐

  6. 对称加密有哪些?非对称加密有哪些?⭐⭐⭐⭐

  7. 数字证书用来干嘛的?⭐⭐⭐⭐⭐

  8. HTTPS为什么比HTTP更安全⭐⭐⭐⭐⭐

  9. HTTPS和HTTP的区别⭐⭐⭐⭐⭐

  10. HTTPS的通信建立过程⭐⭐⭐⭐⭐

=========================================================================================================

  • 本专栏适合于C/C++已经入门的学生或人士,有一定的编程基础。
  • 本专栏适合于互联网C++软件开发、嵌入式软件求职的学生或人士。
  • 本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅。这才是一份面试题总结的正确打开方式。这样才方便背诵
  • 针对于非科班同学,建议学习本人专刊文章《蒋豆芽的秋招打怪之旅》,该专刊文章对每一个知识点进行了详细解析。
  • 如专栏内容有错漏,欢迎在评论区指出或私聊我更改,一起学习,共同进步。
  • 相信大家都有着高尚的灵魂,请尊重我的知识产权,未经允许严禁各类机构和个人转载、传阅本专栏的内容。

=========================================================================================================

  1. HTTP1.0、HTTP1.1的区别⭐⭐⭐⭐

    1. 长连接(Persistent Connection):HTTP1.1支持长连接和请求的流水线处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。
    2. 节约带宽:HTTP1.0中存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能。HTTP1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,客户端接收到100才开始把请求body发送到服务器;如果返回401,客户端就可以不用发送请求body了,节约了带宽。
    3. HOST域:在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname),HTTP1.0没有host域。HTTP1.1的请求消息和响应消息都支持host域,且请求消息中如果没有host域会报告一个错误(400 Bad Request)。
    4. 缓存处理:在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
  2. 什么是长连接?⭐⭐⭐⭐⭐

    HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。长连接的好处是效率高,缺点是占用资源。

  3. HTTP2.0有哪些改动?⭐⭐⭐

    1. 多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。
    2. 二进制分帧:在应用层(HTTP/2)和传输层(TCP or UDP)之间增加一个二进制分帧层。将所有传输的信息分割为更小的消息和帧(frame),并对它们采用二进制格式的编码 ,其中 HTTP1.x 的首部信息会被封装到 HEADER frame,而相应的 Request Body 则封装到 DATA frame 里面。二进制分帧的好处是二进制码鲁棒性高,增强通信的稳定性。
    3. 首部压缩:http1.x的header由于cookie和user agent很容易膨胀,而且每次都要重复发送。http2.0使用encoder来减少需要传输的header大小
    4. 服务端推送:http2.0能通过push的方式将客户端需要的内容预先推送过去
  4. HTTPS的加密原理⭐⭐⭐⭐⭐

    HTTPS采用对称密钥加密和非对称密钥加密的方式,两者混合加密。两者都有各自的优点。对称密钥加密处理速度快,但密钥无法安全发送给对方非对称密钥加密处理速度慢,但密钥能够安全交换。但如果我们将两种加密方式一起使用,则两种加密方式就能互补。

    也就是说,利用非对称密钥加密方式安全地交换在稍后的对称密钥加密中要使用的密钥,在确保密钥安全前提下,使用对称密钥加密方式进行通信。 图片说明

  5. 什么是对称加密?什么是非对称加密?两者区别?⭐⭐⭐⭐

    1. 对称密钥加密:加密与解密使用同一个密钥

      也就是说在加密的同时,也会把密钥发送给对方。在发送密钥过程中可能会造成密钥被窃取

    2. 非对称密钥加密

      非对称密钥有两把密钥,一把叫私有密钥,另一把叫公有密钥,私有密钥不让任何人知道,公有密钥随意发送。

      也就是说,发送密文时,使用对方的公有密钥进行加密,对方接受到信息后,使用私有密钥进行解密。在不使用私有密钥情况下很难还原信息。

  6. 对称加密有哪些?非对称加密有哪些?⭐⭐⭐⭐

    一种是对称密钥加密例如:DES、AES-GCM、ChaCha20-Poly1305等,一种是非对称密钥加密,例如:RSA、DSA、ECDSA、 DH、ECDHE

  7. 数字证书用来干嘛的?⭐⭐⭐⭐⭐

    服务器会给客户端发出数字证书来证明自己的身份。客户端在接受到服务端发来的SSL证书时,会对证书的真伪进行校验。证书中包含的具体内容有:

    1. 证书的发布机构CA
    2. 证书的有效期
    3. 公钥
    4. 证书所有者
    5. 签名

    这样我们通过数字证书,就可以安全交换对称秘钥了,既解决了公钥获取问题,又解决了黑客冒充问题,一箭双雕。

  8. HTTPS为什么比HTTP更安全⭐⭐⭐⭐⭐

    图片说明 在HTTP基础上我们通过加密后,又衍生出了新的通信协议——HTTPS。HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。

  9. HTTPS和HTTP的区别⭐⭐⭐⭐⭐

    1. http是是明文传输,https则是具有安全性的tls加密传输协议。
    2. https除了三次握手以外,还要进行ssl握手,协商加密使用对称密钥
    3. https需要服务端申请证书,浏览器端安装根证书
    4. 端口也不一样,前者是80,后者是443
  10. HTTPS的通信建立过程⭐⭐⭐⭐⭐

    图片说明

    1. 在使用HTTPS是需要保证服务端配置正确了对应的安全证书

    2. 客户端发送请求到服务端

    3. 服务端返回公钥和数字证书到客户端

    4. 客户端接收后会验证证书的安全性,如果通过,则会随机生成一个随机数,用公钥对其加密,发送到服务端

    5. 服务端接受到这个加密后的随机数后,会用私钥对其解密得到真正的随机数,随后用这个随机数当做对称加密密钥对需要发送的数据进行对称加密

    6. 客户端在接收到加密后的数据对称加密密钥与服务器通信。

    7. SSL加密建立

##豆芽点评 无。