从输入url到页面加载完成发生了什么
发布日期:2021-05-07 09:36:53 浏览次数:17 分类:精选文章

本文共 1192 字,大约阅读时间需要 3 分钟。

1、浏览器地址栏输入URL并按下回车

当你在浏览器地址栏输入URL并按回车时,实际上启动了一系列复杂的网络通信和数据处理流程。常见的URL格式为http://www.baidu.com,其中包含协议名、域名和端口号。协议名如httphttps决定了数据传输的方式,域名www.baidu.com则指向特定的服务器地址,端口号默认情况下通常隐藏。URL还可能包含路径、查询参数或片段等信息。

2、浏览器查找当前URL是否存在缓存并比较缓存是否过期

浏览器缓存机制通过cache-controlexpires头部字段判断是否需要重新请求资源。cache-control中的max-age指定了缓存时间间隔,expires则提供了绝对时间。浏览器优先考虑cache-control信息。如果资源未过期且未被修改,浏览器会使用缓存内容。

在缓存验证方面,last-modifiedetag字段起关键作用。last-modified记录资源最后更新时间,浏览器通过if-modified-since头部字段发送请求,服务器比较时间判断是否需要返回新资源或返回304状态码。

3、DNS解析URL对应的IP

输入URL后,浏览器首先通过DNS解析获取服务器IP地址。解析过程从域名开始,逐步向上查询根域、顶级域,直到找到对应的IP地址。浏览器检查本地缓存和hosts文件,如果找不到IP地址则递归查询DNS服务器,最终得到服务器的网络位置。

4、根据IP建立TCP连接(三次握手)

DNS解析完成后,浏览器通过TCP协议建立连接。TCP连接的三次握手过程如下:

  • 客户端发送SYN包,等待服务器确认。
  • 服务器返回SYN-ACK包,客户端发送ACK包,完成三次握手,建立连接。
  • 5、HTTP发起请求

    HTTP请求由请求起始行、请求头部和请求主体组成。起始行包括方法、路径和版本号,头部包含用户代理信息、内容编码方式、语言等。主体则根据请求类型,如GET或POST,包含必要数据。

    6、服务器处理请求,浏览器接收HTTP响应

    服务器接收请求后,通过处理HTTP报文生成响应。响应包括状态码、响应头和响应报文。状态码分为信息性、成功、重定向、客户端错误和服务器错误五大类。浏览器接收响应后,渲染页面并展示结果。

    7、渲染页面,构建DOM树

    页面渲染通过解析HTML、CSS并构建DOM和CSSOM树,生成渲染树。浏览器根据渲染树计算节点位置并绘制页面。重排和重绘机制确保页面动态更新,优化性能。

    8、关闭TCP连接(四次挥手)

    连接关闭通过四次挥手完成:浏览器发送FIN,服务器发送ACK,并在第三次挥手发送FIN,浏览器返回ACK,完成断开。

    以上流程完整描述了从输入URL到页面呈现的网络通信过程,涵盖了浏览器缓存、DNS解析、TCP连接、HTTP请求、服务器响应、渲染以及连接关闭等关键环节。

    上一篇:JS常用事件及触发方法
    下一篇:浅谈跨域

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年04月15日 17时43分35秒