浏览器中输入URL后会发生什么(面试)

大致分为以下几步:

  1. URL 解析
  2. 查找本地缓存
  3. DNS 查询
  4. TCP 连接
  5. 发送HTTP请求
  6. 构建响应数据
  7. 浏览器接受响应
  8. 断开TCP连接
  9. 浏览器解析渲染页面

1.URL解析

判断浏览器输入的是搜索内容还是URL,生成http请求信息。 由于安全隐患,会使用 HSTS 强制客户端使用 HTTPS 访问页面(大部分浏览器的策略)。

一个完整的url包含方案、用户名、密码、主机名、端口、路径、参数、查询和片段

例如:http://admin:password@192.168.1.1/html/index.html?test&bmg

2.查找本地缓存

如果能找到缓存则直接返回页面,如果没有缓存则需要发送网络请求页面。

3.DNS查询

4.TCP连接

建立连接

 TCP建立连接和断开连接(三次握手、四次挥手)以及相关几个问题

5.发送HTTP请求

 6.构建响应数据

Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组

后端从在固定的端口接收到TCP报文开始,这一部分对应于编程语言中的socket。它会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用。这一部分工作一般是由Web服务器去进行,我使用过的Web服务器有Tomcat, Jetty和Netty等等。

7.浏览器接受响应

网络进程接收到响应数据后进行解析, 首先查看 Response header,根据不同状态码做不同的事(比如上面提到的重定向)。

8.断开TCP连接

9.浏览器解析渲染页面

  1. 解析HTML,构建DOM树
  2. 解析CSS,生成CSS规则树
  3. 合并DOM树和CSS规则,生成render树
  4. 布局render树(Layout/reflow),负责各元素尺寸、位置的计算
  5. 绘制render树(paint),绘制页面像素信息
  6. 浏览器会将各层的信息发送给GPU,GPU会将各层合成(composite),显示在屏幕上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值