从输入url到页面加载发生了什么?

10 篇文章 0 订阅
5 篇文章 0 订阅

一般会经历以下几个过程:

1、首先,在浏览器地址栏中输入url

2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。

3、在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址。

4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手。

5、握手成功后,浏览器向服务器发送http请求,请求数据包。

6、服务器处理收到的请求,将数据返回至浏览器

7、浏览器收到HTTP响应

8、读取页面内容,浏览器渲染,解析html源码

9、生成Dom树、解析css样式、js交互

10、客户端和服务器交互

11、ajax查询

12、连接结束(四次挥手)


注释:

步骤2的具体过程是:

  • 浏览器缓存:浏览器会记录DNS一段时间,因此,只是第一个地方解析DNS请求;
  • 操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使系统调用操作系统,获取操作系统的记录(保存最近的DNS查询缓存);
  • 路由器缓存:如果上述两个步骤均不能成功获取DNS记录,继续搜索路由器缓存;
  • ISP缓存:若上述均失败,继续向ISP搜索。

步骤4的过程是:

.md的生成上图的文本部分:

```sequence
客户端->服务端:第一次握手(客户端具有发送信息的能力):SYN=1(请求建立连接),seq=n(序列号)
服务端->客户端:第二次握手(服务端具有接受信息和发送信息的能力):SYN=1(同意建立连接),ack=n+1(确认收到信息),seq=x(服务端序列号)
客户端->服务端:第三次握手(客户端具有接受信息能力):SYN=0(开发发送信息),ack=x+1(确认),seq=n+1
```

步骤12的过程是:

.md的生成上图的文本部分:

```sequence
客户端->服务端:第一次挥手(发完了)
服务端->客户端:第二次挥手(知道发完了)
客户端->服务端:第三次挥手(收完了)
服务端->客户端:第四次挥手(知道收完了)
```

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值