简述http请求完整流程

简述一次完整的HTTP请求流程

一、域名解析

  一般我们访问的url都是域名,例如:https://www.baidu.com,需要将其解析为服务器IP才能进行访问。

  1. 搜索浏览器自身的DNS缓存;
  2. 搜索操作系统自身的DNS缓存;
  3. 读取hosts文件;
  4. 如果以上都没有查找到要访问的url,就向DNS服务器发起一个DNS解析请求;

二、建立连接

  TCP三次握手建立连接。

  1. 客户端向服务器发送请求报文(sequence),告诉服务器,我想跟你建立连接;
  2. 服务器听到连接请求报文后,如果同意建立连接,则向客户端发送确认(发送确认acknowledge和sequence);
  3. 客户端接收到之后,发送确认(向服务器发送确认acknowledge);

  此时,客户端与服务器确认可以互相传送消息。

三、发起HTTP请求

四、服务器响应请求返回结果

五、浏览器得到HTML标签

六、浏览器解析HTML中的js/css等资源

七、浏览器对页面进行渲染

八、断开连接

  四次挥手断开连接。

  假设服务器和客户端正在聊天,此时,某一方不想聊了,但是咱们是文明人,总得征求对方的意见吧~

  1. 客户端说:我不想跟你聊天儿了。
  2. 服务器说:好,不聊可以,但是,你得让我把话说完啊。
  3. 服务器说:… …巴拉巴拉… … 好了,我想说的都说完了,我也不想跟你聊了。
  4. 客户端:那我们分道扬镳,江湖再见吧!

   原理就是这样的~

你可能感兴趣的:(Java基础)