浏览器访问web服务器经过了哪些过程

一、URL输入

  1. 输入URL

URL,全称叫做统一资源定位符,用于定位互联网上的资源,俗称网址。

  1. 浏览器检查输入的内容是否是一个合法的URL连接

    • 合法:判断输入的URL是否完整。如果不完整,浏览器会对地址进行猜测,补全地址的前缀或者后缀。
    • 不合法:将输入内容作为搜索条件,使用用户设置的默认搜索引擎进行搜索。(现在大部分浏览器都会从历史记录、书签等地方开始查找我们输入的网址,并给出智能提示)
  2. 浏览器对用户输入的URL (网址) 进行解析,确定了web服务器和文件名

二、DNS解析

因为浏览器不能直接通过域名找到对应的服务器IP地址,所以需要进行DNS解析,查找到对应的IP地址进行访问。

img

用户在浏览器输入域名,操作系统会检查浏览器缓存和本地的 hosts 文件中,是否有这个网址记录

  1. 如果本地有的话就从记录中找到对应的 IP 地址,完成域名解析。
  2. 如果本地没有的话,使用TCP/IP参数中设置的DNS服务器进行查询,如果查询的域名包含在本地配置区域资源中,则返回解析结果,完成域名解析
  3. 如果本地配置区域资源中还是没有,则检查本地DNS服务器是否缓存有该网址记录,有的话就返回解析结果,完成域名解析
  4. 如果以上三个地方都没有的话,本地DNS服务器就会发送查询报文到根DNS服务器,根DNS服务器收到请求后,返沪顶级域DNS服务器地址,本地收到顶级域DNS服务器后,再发送查询报文到顶级域DNS服务器,顶级域DNS服务器收到请求后,返回权威DNS服务器地址,然后本地DNS服务器再发送查询报文到权威DNS服务器,权威DNS服务器收到请求后,返回最终的 IP 地址,完成域名解析。

三、建立TCP连接

  • 当浏览器获取到服务器IP地址后,浏览器会用一个随机的端口号向服务器80端口发起TCP连接请求。这个连接请求到达服务器段后,通过TCP三次握手,建立TCP连接。建立连接后就可以通过HTTP进行数据传输了。
  • 如果使用HTTPS,会在TCP域HTTP之间添加一层协议做为加密及认证的服务。HTTPS使用 SSL 和 TLS 协议,保障了信息的安全。
  • SSL 协议的作用:认证客户端和服务器,确保数据发送到正确的客户端和服务器。加密数据防止数据中途被窃取,维护数据完整性,确保数据再传输过程中不被改变。
  • TLS协议的作用:用于再两个通信应用程序之间提供保密性和数据完整性。TLS协议由两层组成:TLS记录协议,和TLS握手协议。

四、发送HTTP/HTTPS请求

  • 当浏览器到 web 服务器的连接建立后,浏览器会发送一个初始的 HTTP GET 请求,请求目标通常是一个 HTML 文件。
  • 浏览器能解析解析网址并生成HTTP消息,但是其本身不具备将消息发送到网络中的功能,因此需要浏览器委托操作系统向web服务器发送请求

五、服务器响应请求

服务器收到请求后,将发回一个 HTTP 响应报文,内容包括相关响应头和 HTML 正文。当浏览器收到服务器响应后,开始解析并渲染页面。

常见状态码描述及说明:

常见状态代码状态描述说明
200OK客户端请求成功
204No Content请求处理成功,但没有任何资源可以返回给客户端
206Partial Content对资源某一部分的请求
301Moved Permanently资源的URI 已更新,永久性重定向,请求的资源已经被分配了新的URI,以后应使用资源现在所指的URI。
302Found资源的URI已临时定位到其他位置, 临时性重定向
303See Other资源的URI已更新,你是否能临时按新的URI访问, 该状态码表示由于请求对应的资源存在着另一个URL,应使用GET方法定向获取请求的资源
304Not Modified资源已找到,但未符合条件请求
307Temporary Redirect临时重定向,与302有相同的含义
400Bad Request客户端请求有语法错误,不能被服务器所理解
401Unauthorized请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403Forbidden服务器收到请求,但是拒绝提供服务
404Not Found请求资源不存在,eg:输入了错误的URL
500Internal Server Error服务器发生不可预期的错误,貌似内部资源出故障了
503Server Unavailable服务器当前不能处理客户端的请求,一段时间后可能恢复正常

六、浏览器解析渲染页面

不同的浏览器引擎渲染过程都不太一样,我以谷歌浏览器为例来介绍一下渲染过程:

  • 首先,处理 HTML 标记并构建DOM 树
  • 第二步,处理 CSS 标记并构建 CSSOM 树。
  • 第三步,将 DOM 树与 CSSOM 树合并成一个渲染树。
  • 第四步,根据渲染树来布局,以计算每个节点的几何信息。
  • 第五步,将各个节点渲染到屏幕上。这样就完成了页面的渲染。

七、HTTP请求结束,断开TCP连接

  • 渲染完成之后就可以断开 TCP 连接了
  • 但是现在的浏览器页面为了优化请求的耗时,默认都会开启持久连接,也就是说,标签页关闭的时候 TCP 连接才会关闭,这个关闭的过程就是四次挥手。

八、总结

URL访问网站时的网络传输全过程:

  • 首先url输入,然后通过域名找到IP,先从本地hosts文件中查找,如果本地和指定DNS服务器中的缓存都没有的话, 就要请求DNS服务器从根域开始查询;得到 IP 后开始与目的主机进行三次握手来建立TCP连接;连接建立后进行HTTP访问,传输并获取网页内容;传输完后与目的主机四次挥手来断开TCP连接。
  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值