1. 在浏览器地址栏中输入网址

  2. 浏览器获取这个网址之后,会先去缓存中看看有没有要访问的资源,从浏览器缓存-系统缓存-路由缓存中查看,如果有就不再进行hhtp请求,直接从缓存中加载资源。否则进行步骤3。(缓存就是把之前访问过的web资源,例如css、js、图片等资源保存在本机的内存或磁盘中)

  3. 浏览器拿到域名自动去向DNS(域名系统)服务器发起请求,查询用户输入的域名对应的ip地址 (域名的设定是为了方便人类记忆,而机器识别的是ip地址)

  4. 浏览器拿到ip地址后,通过ip地址和端口号和服务器建立tcp连接。(建立tcp连接需要经过三次“握手”,是可靠连接,能确认数据最终是否送达到目标)
    在浏览器中输入网址到看到网页内容经历了哪些过程
    上图就是三次“握手”过程。
    发送端首先发送一个带SYN标志的数据包到服务器。服务器接收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后发送端在回传一个带ACK标志的数据包代表“握手”结束。

  5. 三次“握手”建立连接成功之后,浏览器开始向服务器发起http请求,并通过http协议将请求信息包装成请求报文(包含请求行、请求头、空行、请求体),然后通过socket发送到服务器

  6. 当服务器接收到客户端浏览器发送过来的请求报文时候,按照 HTTP 协议将请求报文解析出来

  7. 然后服务器拿着请求报文中的请求信息(例如请求路径url),做相应的业务逻辑处理操作

  8. 当业务逻辑处理操作完成之后,服务器将发送给浏览器的数据按照http协议包装成响应报文(响应行、响应头、空行、响应体)

  9. 然后服务器将响应报文发送给浏览器

  10. 浏览器接收到响应报文后,按照HTTP协议将响应报文解析出来

  11. 浏览器拿到响应报文中响应体的数据开始渲染html、css,执行javaScript

  12. 如果在解析的过程(从上到下)中,发现有外链的标签(link、css、img)

  13. 浏览器会自动对该标签指向的 路径地址 发起新的请求,同上。

相关文章:

  • 2021-04-16
  • 2021-10-28
  • 2021-11-06
  • 2021-07-31
  • 2022-12-23
  • 2021-07-01
  • 2021-10-20
  • 2022-12-23
猜你喜欢
  • 2021-09-07
  • 2021-10-02
  • 2021-06-27
  • 2022-12-23
  • 2022-12-23
  • 2022-02-23
  • 2021-08-26
相关资源
相似解决方案