总流程
从浏览器输入URL到页面展示的过程包括 URL解析、检查浏览器缓存、DNS解析、建立TCP连接、发送HTTP请求、服务器处理请求、接收响应、下载资源、页面渲染和执行JavaScript等步骤。这些步骤涉及到网络通信、服务器处理、资源下载和页面渲染等过程,最终将页面呈现给用户。
- URL解析:浏览器首先解析输入的URL,将其拆分为协议(如HTTP)、域名、路径等组成部分。
- 检查浏览器缓存:在解析URL之后,浏览器会检查是否有与该URL相关的缓存资源,包括内存缓存和磁盘缓存。
- DNS解析:浏览器将解析得到的域名发送给DNS服务器,以获取对应的IP地址。如果DNS缓存中存在对应的IP地址,则直接返回,否则进行递归查询,直到获取到IP地址。
- 建立TCP连接:使用获取到的IP地址,浏览器与服务器之间建立TCP连接。这是通过三次握手来确保连接的可靠性和完整性。
- 发送HTTP请求:建立TCP连接后,浏览器向服务器发送HTTP请求,请求包括请求方法(GET、POST等)、请求头(包含用户代理、Cookie等信息)以及请求体(对于POST请求)。
- 服务器处理请求:服务器接收到请求后,根据请求的资源路径和方法进行相应的处理。这可能涉及到查询数据库、生成动态内容等操作。
- 接收响应:服务器将处理结果封装为HTTP响应,包括响应状态码、响应头和响应体。响应状态码表示请求的处理结果(如200表示成功,404表示未找到资源等)。
- 浏览器缓存更新:如果服务器响应中包含缓存相关的HTTP响应头(如
Cache-Control
、ETag
等),浏览器会根据这些响应头更新缓存。它可能会将响应缓存到内存缓存或磁盘缓存中,以便将来使用。 - 下载资源:浏览器接收到响应后,根据响应头中的Content-Type确定响应体的类型,如果是HTML页面,则开始下载页面的HTML代码。同时,浏览器会解析HTML代码,并发送进一步的请求下载HTML中引用的资源,如CSS、JavaScript、图片等。
- 页面渲染:浏览器根据下载的HTML、CSS和JavaScript等资源,进行页面的渲染。渲染过程包括解析HTML结构、构建DOM树、计算样式、布局和绘制等步骤,最终将页面展示给用户。
- 执行JavaScript:在页面渲染过程中,如果遇到JavaScript代码,浏览器会解析并执行这些代码。JavaScript的执行可能会修改DOM结构、样式或触发网络请求等操作。
About 72 min