HTTP和HTTPS请求

  字节跳动面试必问HTTPHTTPS请求相关的问题,这里就准备一下吧。

  • HTTP和HTTPS的请求过程的区别:HTTPS基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护

  • HTTP的请求过程:

  HTTP连接分持续连接和非持续连接两种方式,这次主要介绍常用的持续连接HTTP请求。假设服务器向客户传送一个Web页面,该页面包含一个HTML基本网页和10JPEG图形,共10个对象:

  1. 客户端在默认端口号80发起一个到服务器的TCP连接
  2. CP连接建立后,客户端经套接字向服务器发送一个HTTP请求报文
  3. 服务器经套接字接受该请求报文后,在一个HTTP响应报文中封装对象,并通过其套接字向客户发送相应报文
  4. 客户端接受响应报文,该报文指出封装对象是一个HTML文件,提取文件检查可得到10JPEG文件的应用;
  5. 客户端以流水线方式经套接字向依次向服务器发送10HTTP请求报文;
  6. 服务器经套接字依次发出这些请求的响应报文;
  7. 服务器进程通知TCP断开连接,TCP连接关闭。(连接超时而未使用,HTTP服务器就关闭该连接)
  •  HTTPS的请求过程只描述加密过程

  1. 客户端发送请求到服务端;
  2. 服务器返回证书和公钥;
  3. 客户端验证证书和公钥的有效性,如果有效,则生成对称密钥并使用公钥加密发送到服务端;
  4. 服务端使用私钥解密报文,并使用收到的对称密钥加密报文,发送到客户端;
  5. 客户端使用对称密钥解密报文;

  • HTTP状态码(来自百度百科的截图,挺全的):

 

 

 

 

posted @ 2020-04-28 11:48  Ericosmos  阅读(111)  评论(0)    收藏  举报