Web - 浏览器输入一个URL的全过程

浏览器中输入URL后到底发生了什么?

1)查找浏览器缓存:如果查找到缓存中有URL对应的文件,则判断是否命中强缓存,如果命中直接读取使用即可,如果强缓存没有命中,判断协商缓存是否命中,但协商缓存不论是否命中都会发送请求,都会继续以下步骤

2)浏览器解析URL,生成HTTP请求信息

首先浏览器会在第一时间解析URL,浏览器通过 URL 确定了 web 服务器和文件名,将这些信息生成 HTTP 请求消息,生成 HTTP 也是通过解析 URL后才确定的。
生成的 HTTP 请求报文如下图:

3)DNS域名解析:将输入的URL解析成对应的IP地址

在转发 HTTP请求 信息之前,需要找到 Web 服务器的IP地址。
毕竟对方地址都不知道,就不能转发。前面有提到 URL 中存有服务器的位置,即网址域名。但域名不可以直接作为地址使用。需要把网址域名发送给 DNS 服务器。DNS 服务器中专门保存了 Web 服务器域名与 IP 的对应关系。本地 DNS会将网址域名对应的IP发送回给客户端。收到IP地址后应用层就将HTTP请求报文交付给运输层处理。

4)根据IP地址建立TCP连接:客户端与服务端进行TCP三次握手

得到IP地址之后,首先需要 TCP 建立连接,TCP 连接的建立,通常称为三次握手。
在双方建立了连接后,TCP 报文中的数据部分就是存放 HTTP 头部 + 数据,运输层组装好 TCP 报文之后,就需交给下面的网络层处理。
生成的 TCP 报文如下图:

5)发送HTTP请求:握手成功后,客户端向服务端发送http请求,请求数据(不考虑重定向)

6)服务器收到请求并返回数据(HTTP报文):客户端根据返回的结果进行渲染展示,同时判断是否需要将文件存入缓存

7)TCP断开连接:客户端与服务端进行TCP四次挥手,断开连接

8)浏览器渲染页面

posted @   李若盛开  阅读(746)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示