从浏览器地址栏输入 URL 到显示网页,这个过程是怎么实现的?
回答·51
最热
最新
- DNS解析,将域名地址解析为ip地址 浏览器DNS缓存 系统DNS缓存 路由器DNS缓存 运营商DNS缓存 再找不到就递归搜索该网址 如果找到了,就会 TCP连接:TCP三次握手 第一次握手,由浏览器发起,告诉服务器,我要发送请求了 第二次握手,由服务器发起,告诉浏览器我准备接受了,你发送吧 第三次握手,由浏览器发送,告诉服务器,我马上发送了,准备接受吧 发送请求报文 发送HTTP协议的通信内容,即请求报 接受响应 响应报文 渲染页面 遇见HTML标记,浏览器调用HTML解析器解析成Token,并构建成dom树 遇见style/link标记,浏览器调用css解析器 遇见script标记,调用javascript解析器,处理script代码(绑定时间,修改dom树/css dom树) 根据渲染树计算布局,计算每个节点的几何信息(布局) 将各个节点颜色绘制到屏幕上(渲染) 注意: 这5个步骤不一定按照顺序执行,如果dom树或cssdom树被修改了,可能会执行多次布局和渲染 往往实际页面中,这些步骤都会执行多次。 断开连接:TCP的四次挥手 第一次挥手,浏览器发起,发送给服务器,我东西发送完了(请求报文),你准备关闭吧 第二次挥手,服务器发起,告诉浏览器,我东西接收完了(请求报文),我准备关闭了,你也准备吧 第三次挥手,服务器发起,告诉浏览器,我东西发送完了(响应报文),你准备关闭吧 第四次挥手,浏览器发起,告诉服务器,我东西接收完了, 我准备关闭了,你也准备吧
- 涉及到的点不少,大概如下: dns 解析,三次握手,四次挥手,dom 树加载,css 树加载,render 树,绘制,缓存 (非第一次访问页面) 每一步具体表现,可以自行查阅
- 通过解析后的URL可以直接准确的指向服务器所在当前目录的数据,然后服务器再把数据反馈给当前节点已网页的形式展现出来
- a. 输入域名地址 b. 发送至DNS服务器并获得域名对应的web服务器IP地址 c. 与WEB服务器建立TCP链接 d. 服务器的永久重定向响应(从http://example.com到http://www.example.com) e. 浏览器跟踪重定向地址 f. 服务器处理请求 g. 服务器返回一个HTTP响应 h. 浏览器显示HTML i. 浏览器发送请求获取的资源(如图片、音频、视频、css、js等等) j. 浏览器发送异步请求
- 从输入URL到渲染出整个页面的过程包括三个部分: 1、DNS解析URL的过程 2、浏览器发送请求与服务器交互的过程 3、浏览器对接收到的html页面渲染的过程 一、DNS解析URL的过程 DNS解析的过程就是寻找哪个服务器上有请求的资源。因为ip地址不容易记忆,一般会使用URL域名(如www.baidu.com)作为网址。DNS解析就是将域名翻译成IP地址的过程。 具体过程: 1)浏览器缓存:浏览器会按照一定的频率 缓存DNS记录 2)操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,就会取操作系统中找 3)路由缓存:路由器也有DNS缓存 4)ISP的DNS服务器:ISP有专门的DNS服务器应对DNS查询请求 5)根服务器:ISP的DNS服务器找不到之后,就要向根服务器发出请求,进行递归查询 二、浏览器与服务器交互过程 1)首先浏览器利用tcp协议通过三次握手与服务器建立连接 http请求包括header和body。header中包括请求的方式(get和post)、请求的协议 (http、https、ftp)、请求的地址ip、缓存cookie。body中有请求的内容。 2)浏览器根据解析到的IP地址和端口号发起http的get请求. 3)服务器接收到http请求之后,开始搜索html页面,并使用http返回响应报文 4)若状态码为200显示响应成功,浏览器接收到返回的html页面之后,开始进行页面的渲染 三、浏览器页面渲染过程 1)浏览器根据深度遍历的方式把html节点遍历成dom 树 2)将css解析成CSS DOM树 3)将dom树和CSS DOM树构造成render树 4)JS根据得到的render树 计算所有节点在屏幕中的位置,进行布局(回流) 5)遍历render树并调用硬件API绘制所有节点(重绘) 构造render渲染树的过程 从DOM树的根节点开始遍历每个可见的节点。 对于每个可见的节点,找到CSS树中的对应的规则,并且应用他们。 根据每个可见的节点及其对应的样式,组合生成渲染树。
- 1.浏览器会根据这个URL去查找其对应的IP 2.进行TCP连接,HTTP包的传输是依靠TCP的传输,建立三次握手,建立TCP连接. a.客户端发起请求到服务器,等待服务器响应,第一次握手 b.服务器接受到客户端信息,并给发送结果至客户端,第二次握手 c.客户端,收到结果,并发送服务器确认,第三次握手 3.浏览器给这个IP的服务器,发送http请求 4.服务器收到浏览器请求后,向客户机发送HTTP响应报文 5.浏览器解析渲染页面
- 第一步,解析域名,查找dns服务器获取对应ip地址 第二步,向服务端发送tcp三次握手,握手成功开始通信 第三步,浏览器发送http请求,服务器处理并返回报文 第四步,浏览器下载并解析html文件,按照顺序渲染页面 第五步,tcp四次挥手,释放连接
- 你给我钱,我给你的东西,就这样实现的
- 首先,进行域名解析,找出IP地址 之后,浏览器和http服务器进行三次握手连接 之后,握手成功之后,浏览器把请求信息发送服务器,服务器把响应资源返回给浏览器 之后,浏览器加载资源,继续请求资源中所需的js,css,图片等额外资源,形成结构树,渲染树,计算布局, 最后,将资源渲染呈现给用户。
- 解析 url 到 dns 服务器 dns 返回 ip 到浏览器 跟随当前协议将 ip 发送至网络中 经过局域网到达服务器 进入服务器的 mvc 架构,control 层 model 和数据进行交互,调用 model model 和数据库交互,将结果通过 view 层返回至浏览器中 浏览器根据请求回来的 html、css、js 进行渲染 在渲染的过程中,浏览器根据 dom 生成 dom 树,根据 css 生成 css 树 将 dom 树和 css 树整合,在页面进行渲染 浏览器执行 js 脚本 展现页面