企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**URL从输入到页面展示的过程** > 在探讨浏览器解析html之前,先了解url从输入到最后页面渲染的过程是一个很有必要的步骤,它可以帮助我们把握整体流程,让我们在了解HTML解析细节之前知道它处于整个请求周期中的哪一阶段,这对我们构建完善知识图谱很有帮助。 首先,我们假设输入的url的请求为最简单的Http请求,以GET请求为例,大致分以下几个步骤: 1. 用户在浏览器的地址栏输入访问的URL地址。浏览器会先根据这个URL查看浏览器缓存-系统缓存-路由器缓存,若缓存中有,直接跳到第6步操作,若没有,则按照下面的步骤进行操作。 2. 浏览器根据输入的URL地址解析出主机名。 3. 浏览器将主机名转换成服务器ip地址。浏览器先查找本地DNS缓存列表,看缓存里面是否存在这个ip,如果有则进入第4步,如果缓存中不存在这个ip地址,就再向浏览器默认的DNS服务器发送查询请求,同时缓存当前这个ip到DNS缓存列表中。更详细步骤参考[DNS查找域名的过程](http://www.cnblogs.com/xsilence/p/6035559.html)。 4. 拿到ip地址后,浏览器再从URL中解析出端口号。 5. 拿到ip和端口后,浏览器会建立一条与目标Web服务器的TCP连接,也就是传说中的三次握手。传送门:[完整的tcp链接](http://www.cnblogs.com/xsilence/p/6034361.html)。 6. 浏览器向服务器发送一条HTTP请求报文。 7. 服务器向浏览器返回一条HTTP响应报文。 8. 关闭连接 浏览器解析文档。 9. 如果文档中有资源则重复6、7、8动作,直至资源全部加载完毕。 以上步骤简述了浏览器从输入url到最后页面呈现的大致过程,但这并不很具体,比如浏览器请求报文类型是什么,会遇到哪些错误场景、浏览器又是如何解析响应报文等等都没具体描述。 > 实际上在http请求方式不同、有无代理、有无负载均衡等不同场景下访问服务器的细节流程也会有一些差别,但这并不影响我们对整个访问环节的理解,有兴趣的同学可网上自行详细了解,在此不做详述。