HTTP、HTTPS的请求过程

HTTP 请求的过程:

  1. 建立连接:客户端通过TCP三次握手与服务器建立连接。
  2. 发送请求:客户端向服务器发送一个HTTP请求报文,报文包括请求方法、URL、协议版本、请求头部和请求体等信息。
  3. 服务器处理请求:服务器接受并解析客户端发送的请求报文,并调用相应的资源进行处理。
  4. 服务器返回响应:服务器向客户端返回一个HTTP响应报文,报文包括状态行、响应头部和响应体等信息。
  5. 客户端接收响应:客户端接收到服务器返回的响应报文,并对报文进行解析处理,根据需要显示响应结果或做其他操作。
  6. 断开连接:当所有的数据都传输完毕后,客户端和服务器之间的TCP连接被关闭。

需要注意的是,HTTP是无状态的协议,也就是说每次请求都是独立的,服务器不会保存任何关于客户端的信息。如果需要保持客户端状态,可以使用Cookie技术来实现。

HTTPS请求的基本过程:

  1. 客户端向服务器发送一个HTTPS请求。
  2. 服务器将自己的公钥以数字证书的形式发送给客户端。
  3. 客户端收到数字证书后,会使用内置的CA证书来验证服务器的身份,并且提取出服务器的公钥。
  4. 客户端生成一个随机数,并使用服务器的公钥对该随机数进行加密。这样,只有服务器才能解密该随机数。
  5. 客户端将加密后的随机数发送给服务器。
  6. 服务器使用自己的私钥对加密后的随机数进行解密,得到客户端发送的随机数。
  7. 服务器使用客户端发送的随机数和服务器自己生成的随机数共同生成一个密钥,用来加密后续的HTTP通信。
  8. 服务器使用生成的密钥对HTTP响应内容进行加密,并返回加密后的HTTP响应给客户端。
  9. 客户端使用先前生成的随机数和服务器生成的密钥对HTTP响应进行解密,并得到最终的HTTP响应。

通过以上步骤,HTTPS协议提供了一种安全保护机制,使得客户端和服务器之间的通信不会被窃听、篡改或伪造。

猜你喜欢

转载自blog.csdn.net/w418856/article/details/130085982