从一个url地址到最终页面渲染完成,发生了什么?

1、DNS 解析 : 将域名地址解析为IP地址

  • 浏览器DNS缓存
  • 系统DNS缓存
  • 路由器DNS缓存
  • 网络运营商DNS缓存
  • 递归搜索: www.baidu.com
    • .com域名下查找DNS解析
    • .baidu域名下查找DNS解析
    • www域名下查找DNS解析
    • 还找不到出错了
      2、TCP连接三次握手
      3、发送请求
  • 请求报文
    4、接收响应
  • 响应报文
    5、渲染页面
  • 遇到HTML标记,浏览器调用HTML解析器解析成 Token 并构建dom树;
  • 遇到style/link标记,浏览器调用css解析器,处理css标记并构建 cssom树;
  • 遇到javascript标记,调用javascript解析器,处理script代码(绑定事件,修改dom树/cssom树)
  • 将dom 树和cssdom树和cssom树合并成渲染树
  • 根据渲染树来计算布局,计算每个节点的几何信息(布局)
  • 将各个节点颜色重绘到屏幕上(渲染)

注意: 这五个步骤不一定按照顺序执行,如果dom树或cssom树被修改了,可能会指定多次重绘重排。
6、 断开连接, TCP 四次挥手

从一个url地址到最终页面渲染完成,发生了什么?的更多相关文章

  1. 输入URL地址到最终页面渲染完成,发生了什么事

    1. 域名DNS解析 - 浏览器DNS缓存 - 系统DNS缓存 - 路由器DNS缓存 - 网络运营商DNS缓存 - 递归搜索...... 2. TCP连接: TCP三次握手 - 第一次握手,由浏览器发 ...

  2. 从一个url输入浏览器到页面渲染出来,这个过程都发生了哪些事情?

    经典问题:在浏览器输入一个url后,会发生什么事情呢? (1)假设是简单的http请求(GET),IPV4,无代理. 浏览器先查看浏览器缓存-系统缓存-路由器缓存,若缓存中有,请略过中间步骤,直接跳到 ...

  3. 13.从url 输入网址到最终页面渲染完成

    从url 输入网址到最终页面渲染完成,发生了什么? 1.DNS解析:将域名地址解析为IP地址 先读取: -浏览器DNS缓存 -系统DNS缓存 -路由器DNS缓存 -网络运营商DNS缓存 -递归搜索:b ...

  4. 使用UrlConnection请求一个url地址获取内容

    访问网络需要加Internet权限:android.permission.INTERNET 使用UrlConnection请求一个url地址获取内容:             //1.创建一个Url对 ...

  5. ajax页面跳转(后台返回的是一个url地址,或者自己传进去的是url地址)

    function modifyMerchantInfo(merchant_code) { $.ajax({ url: '/intra/crm/merchant/OrderMgr.htm?method= ...

  6. 判断一个url地址是不是404状态(用curl函数)

    <?php $url = "http://www.kxblogs.com/n/20161108/74429879.html"; $ch = curl_init (); cur ...

  7. 用jq编码解码一个url地址

    介绍一下编码解码函数对 1.    escape /unescape   主要用于汉字编码,返回字符的unicode编码值, 对“+”不能编码 2.     encodeURI / decodeURI ...

  8. Swift - 通过url地址打开web页面

    通过UIApplication.sharedApplication().openURL()方法,可以使用浏览器打开相应的网页. 1 2 3 var urlString = "http://h ...

  9. 从输入一个URL到页面渲染的流程简介

    首先说明以下是我参考网上答案和自己的思考,给出自己的想法,如果有问题,欢迎大家吐槽从用户在浏览器中输入一个URL,到整个页面渲染,这个过程中究竟发生了什么呢?今天先简单写下整个过程,后面再一点点完善. ...

随机推荐

  1. SpringMVC学习(11):表单标签

    本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图上展示WebModel中的数据更加轻松. 一.首先我们先做一个简单了例子来对Spring MV ...

  2. Java面试宝典(6)混合(前端 + 数据库)

    包括html & JavaScript & Ajax部分/Java web部分/数据库部分 三. html&JavaScript&ajax部分 1. 判断第二个日期比第 ...

  3. javascript基础7(正则及表单验证)

    1.正则的概念     JS诞生的目的是什么?     就是为了做表单验证.       在JS未出现以前,表单的信息验证需要传输给后台,让后台做数据验证处理之后,再返回给前端页面处理的结果.在带宽有 ...

  4. mybatis的缓存机制及用例介绍

    在实际的项目开发中,通常对数据库的查询性能要求很高,而mybatis提供了查询缓存来缓存数据,从而达到提高查询性能的要求. mybatis的查询缓存分为一级缓存和二级缓存,一级缓存是SqlSessio ...

  5. 判断Xen虚拟机随想

    kvm xen虚拟化技术  剑桥大学开发,vmware visualbox windows下检测是否安装,注册表读取安装路径 linux下检测是否安装 rpm -qa 列出 判断软件包是否安装,rpm ...

  6. poj 1144 割点模板题

    题目大意: 求割点: 基本思路: tarjan算法,套板子 代码如下: #include<iostream> #include<string> #include<vect ...

  7. U200-SNMP

    U200配置snmp snmp-agent sys-info version v2c snmp-agent community read jkzh snmp-agent trap enable snm ...

  8. Halo(一)

    @EnableJpaAuditing 审计功能(启动类配置) 在实际的业务系统中,往往需要记录表数据的创建时间.创建人.修改时间.修改人. 每次手动记录这些信息比较繁琐,SpringDataJpa 的 ...

  9. springcloud中provider-product依赖

    <dependencies> <dependency> <groupId>cn.lijun.springcloud</groupId> <arti ...

  10. .net从服务端下载文件(可以断点续传)

    public void DownFile(string guid) { var fileTransfer = new FileTransfer(); var directoryPath = Path. ...