从 输入网址(URL)到页面展示的过程

面试时经常会被问到一个很常见的题目:在浏览器中输入URL到整个页面显示在用户面前时这个过程中到底发生了什么。

下面,根据我的知识,简单的记录一下。

总体来说可以认为分为以下几个过程:

  1. DNS解析

  2. TCP连接

  3. 发送HTTP请求

  4. 服务器处理请求并返回HTTP报文

  5. 浏览器解析渲染页面

  6. 连接结束

 

(1)DNS解析也就是域名解析。原理是根据用户输入的网址去寻找对应的IP地址。因为互联网中每一台计算机的唯一标示是他的IP地址,我们现在常用的网址并不是一个网站真正意义上的地址,只不过是为了方便记忆。域名解析就是将网址转换成IP地址。

(2)建立TCP连接。HTTP协议是使用TCP协议作为其传输层协议的,在拿到服务器的IP地址后,浏览器客户端会与服务器建立TCP连接。该过程包括三次握手(断开连接时包括四次挥手)。

(3)浏览器发送HTTP请求

浏览器构建http请求报文,并通过TCP协议传送到服务器的指定端口。http请求报文一共包括三个部分:

  • 请求行:指定http请求的方法、url、http协议版本等
  • 请求头:描述浏览器的相关信息,语言、编码等。
  • 请求正文:当发送POST, PUT等请求时,通常需要向服务器传递数据。这些数据就储存在请求正文中。

(4)服务器处理HTTP请求并返回HTTP报文

HTTP响应报文也是由三部分组成: 状态码, 响应报头和响应报文。

状态码
状态码是由3位数组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息–表示请求已接收,继续处理。

2xx:成功–表示请求已被成功接收、理解、接受。

3xx:重定向–要完成请求必须进行更进一步的操作。

4xx:客户端错误–请求有语法错误或请求无法实现。

5xx:服务器端错误–服务器未能实现合法的请求。
(5)浏览器解析渲染页面

浏览器接受到http服务器发送过来的响应报文,并开始解析html文档,渲染页面。具体的渲染过程包括:构建DOM树、构建渲染树、定位页面元素、绘制页面元素等。

(6)断开TCP连接

客户端与服务器四次挥手,断开tcp连接。

 

参考链接:

https://blog.csdn.net/zcw4237256/article/details/78461623

https://blog.csdn.net/qq_32657025/article/details/79672419

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值