从输入URL到浏览页面的过程

之前我们已经讨论过浏览器的渲染原理,今天我们来讨论下更广泛的从输入URL到渲染出页面的过程。

1. 查询URL对应的IP

  首先,到 host 文件查找,如果找到则返回。

  如果没有找到,去访问 DNS 服务器(一般先访问本地路由器,没有再访问更高级的 DNS 服务器),最终得到对应的 IP

2. 建立 TCP 连接

  首先,通过 IP 协议,指定 出发地 和 目的地

  然后,通过 OSPF 协议,计算路由的最佳路径,得到路过的每个路由器的 IP地址

  最后,再利用 ARP 计算出路径经过每个路由器的 MAC地址

3. 接收 html 字节流

  首先,把一个个字节拼接成字符串

  然后,通过词法分析,把字符串转换为一个个 Token

  最后,根据 Token,通过语法分析,构建成 DOM 树

4. 接收 css 字节流

  首先,把一个个字节拼接成字符串

  然后,通过词法分析,把字符串转换为一个个 Token

  最后,根据 Token,通过语法分析,构建成 CSSOM 树

5. 结合 CSSOM 和 DOM,生成 Render Tree

6. 遇到 script(有3种可能),如果有相关 DOM 操作,可以修改已构建部分的 DOM 树,从而改变 Render Tree

ps: 注意 3~6 整个过程都是流式的

原文地址:https://www.cnblogs.com/amiezhang/p/11450455.html

时间: 2024-11-08 20:32:12

从输入URL到浏览页面的过程的相关文章

从浏览器输入url到显示页面的过程 (前端面试题)

域名DNS解析,解析到真正的IP地址             | 客户端与服务端建立TCP连接,3次握手 | 客户端发送Http请求 | server接收到http请求,处理,并返回 | 客户端接收到返回数据,处理数据(渲染页面,执行js) 原文地址:https://www.cnblogs.com/gqx-html/p/10879451.html

从输入 URL 到浏览器接收的过程中发生了什么事情?

从输入 URL 到浏览器接收的过程中发生了什么事情? What really happens when you navigate to a URL 上面两篇文章都解读的很好,值得阅读. 接下来在总结一下这个过程: 1.首先,会查询缓存,如果缓存存在的话则直接响应,否则继续下面过程: 2.当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询.这能使浏览器获得请求对应的IP地址.D

从输入 URL 到浏览器接收的过程中发生了什么事情

从输入 URL 到浏览器接收的过程中发生了什么事情? 原文:http://www.codeceo.com/article/url-cpu-broswer.html 从触屏到 CPU  首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米

浏览器输入url到整个页面显示出来经历的过程

笔记摘自 http://www.cnblogs.com/lichenghan/p/4019370.html ? ? 首先,对于http肯定是有客户端和服务器的 ? ? 在这个语境中,客户端和服务器本质上也都是一个软件,实现了http协议相关标准的软件. ? ? 客户端一般由都是由浏览器充当,也就是说,在浏览器中实现了http客户端的相关功能. ? ? 而服务器的实现就多种多样啦,我们可以用java写servlet,c#写ASP.net,还有php,ruby,Python,nodejs等.实际上我

输入网址到出现页面的过程

用户输入url地址,浏览器根据域名寻找IP地址 浏览器向服务器发送http请求,如果服务器段返回以301之类的重定向,浏览器根据相应头中的location再次发送请求 服务器端接受请求,处理请求生成html代码,返回给浏览器,这时的html页面代码可能是经过压缩的 浏览器接收服务器响应结果,如果有压缩则首先进行解压处理,紧接着就是页面解析渲染 解析渲染该过程主要分为以下步骤: 解析HTML 构建DOM树 DOM树与CSS样式进行附着构造呈现树 布局 绘制 1.敲域名回车2.查询本地的DNS缓存,

计算机网络【6】—— 从浏览器输入URL到显示页面发生了什么

当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信.分层由高到低分别为:应用层.传输层.网络层.数据链路层.发送端从应用层往下走,接收端从数据链路层网上走.如图所示: 1. 在浏览器中输入url 用户输入url,例如http://www.baidu.com.其中http为

输入url到展示页面过程发生了什么?

输入网址,首先在书签或者历史记录里面去搜索相关的网址推荐给你 浏览器查找域名的IP的地址(在hosts文件有没有对应IP  ->  浏览器发出一个DNS请求到本地DNS服务器,本地服务器一般是网络接入服务商提供,如电信.移动  ->  本地服务器查询缓存记录,有则直接返回结果,没有则向DNS根服务器查询,此过程递归  ->  DNS根服务器返回域服务器给本地服务器  ->  本地服务器向域服务器发送请求,域服务器返回域名和解析服务器地址  ->  本地服务器向域名的解析服务器

从地址栏输入url到显示页面都发生了什么?

参考 http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html http://www.cnblogs.com/rollenholt/archive/2012/03/23/2414345.html 原文:http://igoro.com/archive/what-really-happe

从输入URL到显示页面的过程分析

作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等. 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事-1. 首先嘛,你得在浏览器里输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址.DNS查找过程如下: * 浏览器缓存 – 浏览器会缓存DNS记录一段时间. 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览