从输入URL到页面加载完成期间经历了什么?

总体分几个过程

在这里插入图片描述

  • DNS解析
  • TCP连接
  • 发送HTTP请求
  • 服务器处理请求并返回HTTP报文
  • 浏览器解析渲染页面
  • 连接结束

参考文献:https://segmentfault.com/a/1190000006879700

DNS解析

www.google.com只是为了方便人们记忆,它真正意义上的地址是它的IP地址,每个计算机都有一个独一无二的IP地址,把一个网址转换到IP地址,这个过程就是DNS解析。

DNS解析是一个递归查询的过程

在这里插入图片描述
上述图片是查找www.google.com的IP地址过程。

首先在本地域名服务器hosts中查询IP地址,如果没有找到的情况下,本地域名服务器会向根域名服务器发送一个请求,如果根域名服务器也不存在该域名时,本地域名会向com顶级域名服务器发送一个请求,依次类推下去。直到最后本地域名服务器得到google的IP地址并把它缓存到本地,供下次查询使用。

从上述过程中,可以看出网址的解析是一个从右向左的过程: com -> google.com -> www.google.com。但是你是否发现少了点什么,根域名服务器的解析过程呢?事实上,真正的网址是www.google.com.,并不是我多打了一个.,这个.对应的就是根域名服务器,默认情况下所有的网址的最后一位都是.,既然是默认情况下,为了方便用户,通常都会省略,浏览器在请求DNS的时候会自动加上,

所有网址真正的解析过程为: . -> .com -> google.com. -> www.google.com.。

本地域名服务器中查询IP地址===》根域名服务器查询===》com顶级域名查询===》google.com域名服务器

等于以下查询过程:
. -> .com -> google.com. -> www.google.com.

DNS 优化

将查询到的IP地址进行缓存,方便下次查询

DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存

DNS负载均衡

DNS返回的IP地址是否每次都不一样,每次请求的资源不一定位于同一台机器上面。

所以为了解决高性能和储存满足亿万请求,需要成千上百台服务器,大型的网站甚至更多

DNS可以返回一个合适的机器的IP给用户,例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过程就是DNS负载均衡

TCP连接

拿到IP地址后,浏览器就知道该向哪个服务器发送请求了,这就用到了传输层的TCP协议,TCP是一种面向有连接的传输层协议,建立连接需要进行三次握手才能互相传输数据,在TCP连接建立完成之后就可以发送HTTP请求了

https://blog.csdn.net/qq_42253147/article/details/94389689

发送HTTP请求

HTTP报文是包裹在TCP报文中发送的,服务器端收到TCP报文时会解包提取出HTTP报文。但是这个过程中存在一定的风险,HTTP报文是明文,如果中间被截取的话会存在一些信息泄露的风险。那么在进入TCP报文之前对HTTP做一次加密就可以解决这个问题了。

HTTPS协议的本质就是HTTP + SSL(or TLS)。在HTTP报文进入TCP报文之前,先使用SSL对HTTP报文进行加密。从网络的层级结构看它位于HTTP协议与TCP协议之间。
在这里插入图片描述

  • HTTP请求报文是由三部分组成: 请求行, 请求报头和请求正文。
    在这里插入图片描述
post和get的区别

1、GET是从服务器上获取数据,POST是向服务器传送数据。

2、在客户端, GET方式在通过URL提交数据,数据在URL中可以看到,不安全;POST方式,数据放置在HTML HEADER内提交,安全

3、对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。

4、GET方式提交的数据最多只能有1024字节,而POST则没有此限制

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

HTTP响应报文也是由三部分组成: 状态码, 响应报头和响应报文
在这里插入图片描述

  • 状态码
    在这里插入图片描述

浏览器解析渲染页面

浏览器是一个边解析边渲染的过程,首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值