从输入url到页面显示

  • 输入地址
浏览器首先从浏览器缓存,本地缓存,本地的hosts文件查询对应的ip;  
如果在本地没找到,接下来会发送一个DNS请求到本地DNS服务器,本地DNS查询它的缓存记录;  
如果没有,本地服务器向DNS根服务器查询(根服务器并没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS  
服务器,你可以到域服务器上去继续查询,并给出域服务器的地址);  
本地服务器继续向域服务器发出请求,域服务器返回一个解析服务器的地址,然后本地DNS服务器向解析服务器发出请  
求,就会收到一个域名和ip对应关系,将ip返回给用户,并把对应关系保存在缓存中
  • 建立TCP连接(三次握手)
第一次握手:客户端A将标志位SYN置为1,随机产生一个值为seq=J(J的取值范围为=1234567)的数据包到服务器,  
客户端A进入SYN_SENT状态,等待服务端B确认;
第二次握手:服务端B收到数据包后由标志位SYN=1知道客户端A请求建立连接,服务端B将标志位SYN和ACK都置为1,
ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端A以确认连接请求,服务端B进入SYN_RCVD状态.
第三次握手:客户端A收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,
并将该数据包发送给服务端B,服务端B检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端A和服
务端B进入ESTABLISHED状态,完成三次握手,随后客户端A与服务端B之间可以开始传输数据了.
  • 发送http请求

  • 服务器处理请求

后端从在固定的端口接收到TCP报文开始,它会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用。

服务器返回一个HTPP响应,包括状态行,响应头,响应正文

  • 浏览器显示HTML
浏览器在解析html文件时,会”自上而下“加载,并在加载过程中进行解析渲染。在解析过程中,如果遇到请求外部资源时,如图片、外链的CSS、iconfont等,请求过程是异步的,并不会影响html文档进行加载.
  解析过程中,浏览器首先会解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上.
  • 浏览器发送请求获取嵌入在 HTML 中的资源(图片、音频、视频、CSS、JS等)
浏览器从输入URL显示页面的过程大致可以分为以下几个步骤: 1. DNS解析:浏览器首先会解析URL中的域名部分,将其转换为对应的IP地址。它会先检查浏览器缓存中是否存在该域名的解析结果,如果没有,就会向本地操作系统或者网络中的DNS服务器发送查询请求,获取对应的IP地址。 2. 建立TCP连接:一旦获取到目标服务器的IP地址,浏览器会通过TCP/IP协议与服务器建立连接。这个过程中,浏览器会与服务器进行三次握手,确保双方能够正常通信。 3. 发送HTTP请求:建立TCP连接后,浏览器会发送HTTP请求给服务器。请求中包含了请求行(包括请求方法、URL路径和HTTP协议版本)、请求头(包含一些附加信息,如User-Agent、Cookie等)以及请求体(一般用于POST请求,传递数据)。 4. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行处理。处理过程可能包括查询数据库、读取文件等一系列操作,最终生成需要返回给浏览器的数据。 5. 接收响应并渲染页面:服务器处理完请求后,会将生成的响应数据封装成HTTP响应,并发送给浏览器。浏览器接收到响应后,会根据响应头中的信息判断响应的内容类型,然后对内容进行解析和渲染。对于HTML页面,浏览器会解析HTML结构、加载CSS和JavaScript文件,并根据这些文件渲染出最终的页面。 6. 关闭TCP连接:页面渲染完毕后,浏览器会关闭与服务器的TCP连接。如果页面中存在其他资源(如图片、样式表、脚本等),浏览器会继续发送相应的HTTP请求获取这些资源,并进行相应的渲染。 这就是浏览器从输入URL显示页面的基本过程。其中涉及到的具体细节和技术可以更加深入和复杂,但以上步骤概括了整个过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍_玖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值