HTTP和HTTPS请求
字节跳动面试必问HTTP和HTTPS请求相关的问题,这里就准备一下吧。
-
HTTP和HTTPS的请求过程的区别:HTTPS基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护
-
HTTP的请求过程:
HTTP连接分持续连接和非持续连接两种方式,这次主要介绍常用的持续连接HTTP请求。假设服务器向客户传送一个Web页面,该页面包含一个HTML基本网页和10个JPEG图形,共10个对象:
- 客户端在默认端口号80发起一个到服务器的TCP连接;
- CP连接建立后,客户端经套接字向服务器发送一个HTTP请求报文;
- 服务器经套接字接受该请求报文后,在一个HTTP响应报文中封装对象,并通过其套接字向客户发送相应报文;
- 客户端接受响应报文,该报文指出封装对象是一个HTML文件,提取文件检查可得到10个JPEG文件的应用;
- 客户端以流水线方式经套接字向依次向服务器发送10个HTTP请求报文;
- 服务器经套接字依次发出这些请求的响应报文;
- 服务器进程通知TCP断开连接,TCP连接关闭。(连接超时而未使用,HTTP服务器就关闭该连接)
-
HTTPS的请求过程(只描述加密过程):
- 客户端发送请求到服务端;
- 服务器返回证书和公钥;
- 客户端验证证书和公钥的有效性,如果有效,则生成对称密钥并使用公钥加密发送到服务端;
- 服务端使用私钥解密报文,并使用收到的对称密钥加密报文,发送到客户端;
- 客户端使用对称密钥解密报文;

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


浙公网安备 33010602011771号