从输入URL到展示出页面的过程

输入域名

在浏览器中输入网址以后,浏览器会根据历史记录、书签智能匹配补全域名或者url/

解析域名

当浏览器发起请求时,会经过以下流程,来解析该域名。

1.查看本地hosts文件,查找相关域名所对应的ip地址。

        如果找到了就直接使用该ip地址,如果没找到,则跳转2.

2.浏览器向本地DNS服务器发起DNS请求,查找其缓存记录。

        如果找到了,就返回结果。如果没找到,则跳转3.

3.浏览器向DNS根服务器发起请求,根 DNS 服务器没有记录具体的域名与 ip 地址的映射关系,而是返回域服务器的地址。跳转4。

4.本地DNS继续向域服务器发起请求,查找域名解析服务器的地址。跳转5.

5.本地DNS服务器向域名解析服务器发起请求,返回域名与ip的映射关系。跳转6.

6.本地DNS服务器将映射关系保存在缓存中,同时返回ip地址给用户电脑。

浏览器发起http请求

浏览器获取到域名对应的 ip 地址之后,便会以一个随机端口(1024< port < 65535)向服务端 web 程序 80 端口发起 TCP 连接请求。

浏览器与服务端经过 3 次 TCP 握手之后,建立 TCP 连接,然后浏览器发起一个 http 请求。一般的浏览器只能发起 GET 或者 POST 请求。

请求信格式包含四个部分:

  1. 请求行(请求方法 URI 协议/版本)
  2. 请求头(缓存、客户端身份信息等)
  3. 空行
  4. 消息体

TCP 三次握手的目的是:为了防止已经失效的连接请求报文发送到服务端,服务端因而产生不必要的响应开销

TCP 四次挥手的目的是:为确保收发双方数据传输的完整性。

服务器返回 http 响应

服务端返回 http 响应的格式包含四个部分:

  1. 响应行(状态行)(协议/版本号 状态码 状态说明)
  2. 响应头(响应头是服务器传递给客户端用于说明服务器的一些信息,以及将来继续访问该资源时的策略。)
  3. 空行
  4. 消息体(响应体是服务端返回给客户端的 HTML 文本内容,或者其他格式的数据,比如:视频流、图片或者音频数据。)

服务器在返回响应之前可能会经过重定向、反向代理服务器请求等过程。

以服务端响应消息体为 HTML 文本为例,浏览器解析 HTML 文本时,会”自上而下“加载,并在加载过程中进行解析渲染展现给用户。在解析过程中,如果遇到请求外部资源时,如图片、外链的 CSS 、 js 等,请求过程是异步的,并不会影响整个 HTML 文档的加载。

《浏览器从输入 Url 到展示出页面都经历了哪些过程》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值