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)浏览器渲染页面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」