输入网址到页面呈现的所经历的过程

当我们在浏览器地址栏上输入要访问的URL后,浏览器会分析出URL上面的域名。进入DNS解析过程:

第1步,浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不好,如果缓存时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有可能会有一部分用户无法访问网站。如果时间设置太短,会导致用户每次访问网站都要重新解析一次域名。

第2步,如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也会有一个域名解析的过程,在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,你可以将任何域名解析到任何能够访问的IP地址。如果你在这里指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以黑客就有可能通过修改你的域名解析来把特定的域名解析到它指定的IP地址上,导致这些域名被劫持。这导致早期的Windows版本中出现过很严重的问题,而且对于一般没有太多电脑知识的用户来说,出现问题后很难发现,即使发现也很难自己解决,所以Windows 7中将hosts文件设置成了只读的,防止这个文件被轻易修改。在Linux中这个配置文件是/etc/named.conf,修改这个文件可以达到同样的目的,当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的时间同样是受这个域名的失效时间和缓存的空间大小控制的。

上图为以下步骤解析的过程。

第3步, 如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。

第4步,如果LDNS仍然没有命中,就直接跳到Root Server 域名服务器请求解析。

第5步,根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)地址。

第6步,此时LDNS再发送请求给gTLD(上一步返回的)。

第7步,接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器。

第8步,LDNS发送请求给Name Server,Name Server根据映射关系表找到目标ip,返回给LDNS。

第9步,LDNS缓存这个域名和对应的ip。

第10步,LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束。

之后浏览器根据查询到的IP地址与Web服务器进行通信,而通信的协议就是HTTP协议。

原文:

https://zhidao.baidu.com/question/437513187.html

https://blog.csdn.net/qq_38218238/article/details/82425974

https://blog.csdn.net/aliujiujiang/article/details/81088317

原文地址:https://www.cnblogs.com/xjy20170907/p/11613845.html

时间: 2024-11-01 16:28:07

输入网址到页面呈现的所经历的过程的相关文章

在浏览器输入网址到页面加载完毕中间到底发生了什么?(Browser-->Server)

最近在学习韩老师的php视频,中间有讲到发送请求到服务器返回内容,以前对这个理解并不深刻,虽然以前也知道一部分,这次听了之后收获良多:所以我就画了个流程图,从浏览器输入网址到服务器返回信息,浏览器渲染,呈现页面的具体过程. 今天是国庆节,明天才会出去玩,所以今天还是得学习,学习根本不能停啊,哈哈! 中间有错误的欢迎各位,不吝赐教,谢谢! 下面这个是韩老师画的图,内容也比较相似,所以我也放在上面,以便以后回顾: 其中有涉及到,http的状态码,我这个好多也确实记不住,所以为了以后需要的时候来看,我

浏览器从输入url到页面呈现发生了什么?

当浏览器地址栏中输入www.baidu.com到页面呈现的具体过程: 1.域名解析(DNS解析)(网络层) 先从缓存中找域名对应的ip地址,没有再向域名服务器发送请求. -->浏览器的DNS缓存(以Chrome浏览器为例查看dns缓存,在地址栏中输入chrome://net-internals/#dns 查看浏览器内的dns缓存.) -->操作系统的DNS缓存(window系统调出cmd窗口,在窗口处输入命令ipconfig /displaydns 来进行查看系统内的dns缓存.) -->

从浏览器地址栏输入url到页面呈现

举个栗子,从浏览器地址栏输入https://www.baidu.com 到页面呈现百度页面呈现 1.从DNS中得到链接ip地址 ①从浏览器DNS缓存 ②从系统DNS缓存中去,本机系统hosts文件中如果有映射,就返回映射的ip地址 ③从局域网路由器中DNS缓存获取映射地址 ④从DNS服务器缓存获取映射地址 ⑤服务器中查找,com->baidu->www 2.TCP连接,三次握手 ①浏览器发起,询问服务器是否支持响应 ②服务器发起,回复浏览器已准备,可以响应,正在等待 ③浏览器接收到后,发起确认

从输入 URL 到页面加载显示完成的过程

前言:"一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?" 这个问题我想大多数人都不会陌生,好像是前端面试题经常会出现的,在此我也好好梳理梳理了一番,总结成这篇文章,希望能对和我一样在前端道路上奋进的小白们有所帮助,一起学习,交流. 我把这个问题拆解成两个过程: 1. 用户输入 url ---> 客户端(浏览器)拿到服务端的数据 2. 浏览器拿到数据 ---> 呈现页面(也就是浏览器工作过程) 搞清楚这两个过程后,我们也算是完整的回答了前言部分所提的问题

从输入URL到页面呈现经历了哪些?DOM文档加载的步骤?

DNS解析 建立TCP连接 发送http请求 服务器接受请求并返回信息 浏览器处理返回信息 渲染页面 断开链接 DOM解析过程: 解析HTML结构. 加载外部脚本和样式表文件. 解析并执行脚本代码. DOM树构建完成.//DOMContentLoaded 对应jq的ready事件. 加载图片等外部文件. 页面加载完毕.//load 对应jq的load事件. 原文地址:https://www.cnblogs.com/fourthCities/p/8316239.html

从输入网址到页面显示经历了什么

一,解析域名转换成对应的公网的IP地址 二,根据公网IP通过互联网路由到对应的服务器上 三,建立可靠的TCP数据连接: 四,服务器对该URL中的请求进行处理分发,逐步返回一个完整的html: 五,浏览器或者客户端对该HTML进行渲染: 具体内容: 一,解析域名转换成对应的公网的IP地址 1,使用DNS服务,将域名解析为Ip地址: a,递归查询 b,迭代查询 从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询 2,解析顺序 a,浏览器缓存 当用户通过浏览器访问某

当用户输入网址到页面展现,发生了什么?

当我们输入地址的时候,浏览器就开始在匹配可能的url,在书签.历史记录等地方查找,然后给出提示,让用户可以补全url地址. 当网址完全输入,按下回车键时,浏览器做的第一件事就是DNS解析.浏览器会先去本地的hosts文件中看看有没有和这个域名对应的ip,如果有就打开这个ip,没有的话浏览器会发送DNS请求到DNS服务器,这个过程先去本地的DNS服务器查找,有则返回,没有的话本地DNS服务器继续向根DNS服务器发送请求,然后将获取到的ip返回,并且本地的DNS服务器还将这个对应关系保存在缓存中,方

从浏览器输入网址到页面显示的全过程

[前言]从全局来讲,当键入一个url时,肯定是需要从服务器请求某个页面或某条数据然后显示到用户自己的电脑屏幕上.这个过程中其实包括:DNS对url域名的解析(在url中解析出服务器所在的IP地址,有的url也包括端口),计算机网络中的五层协议层传输,代理服务器的响应.缓存或者负载均衡.最终html/css/js文件的解析与展现.从后端到前端,这只是概括,接下来将展开分析. 持续更新,逐步完善.主要从TCP协议族.DNS.三次握手.服务器缓存和代理.负载均衡.四次挥手.html显示和渲染.流行的服

输入网址到页面显示中间发生了什么

敲击回车后 1.DNS解析查找对应IP地址,首先是从本地缓存中搜索,没找到的话再从dns服务器开始查找,网址从右到左寻找 2.判断程序使用的协议,如果是HTTP协议,就发送http请求 3.建立TCP连接,提供可靠的字节流服务,三次握手 4.确定对方IP地址,同一子网下通过广播的方式传输数据包(子网掩码确定IP是否同一子网),不同子网下通过网关转发,利用ARP协议(地址解析协议)解析出MAC地址 5.将数据封装成帧,通过确认MAC地址传输 6.光纤等方式,通过高低电频传输01电信号 7.服务器收