从URL到页面经历了什么?(1) | 青训营笔记

78 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

因为我们需要浏览器来承载网页的页面,我们首先将URL输入到浏览器的地址栏中,告诉浏览器我们想要访问的网页地址。 当浏览器的地址栏中输入内容后,浏览器会对地址栏中的内容进行判断。判断基于对网址规则的匹配:如果输入的内容为网址URL,则直接呈现对应页面的内容;若输入的内容为普通的字符串,则将调用默认的搜索引擎对输入的内容进行搜索。

如果地址栏中输入的内容为网址URL,浏览器将会生成URL后调用网络进程处理。在网络进程中,收到URL后,不会首先发出网络请求,而是会先在本地中查询是否存在缓存。网络进程使用URL作为key,如果本地没有网页缓存,则会发起网络请求去服务器中获取资源。如果本地存在缓存内容,网络进程会判断本地的缓存内容是否已经过期。如果本地缓存仍未过期,则会使用本地缓存直接渲染目标页面。如果本地缓存过期了,网络进程会携带If-Modified-Since,If-None-Match等标识向服务器发送新的请求。服务器接收到新的请求后,会判断从页面上一次发送到现在这个请求为止,是否存在资源更新。如果服务器中的资源没有更新,则服务器会返回304状态码。网络进程接收到304状态码后,判断为仍然可以使用缓存,会使用本地的缓存继续渲染页面。如果服务器中的内容在时间范围内产生了更新,则网络进程会按照页面的内容继续请求新的内容。

即网络进程先判断本地缓存,如果无法命中缓存或本地缓存过期后服务器资源有更新,网络进程才会向目标站点发送新的资源请求。