先看一幅图:(下面的所有图我都进行拉伸压缩了  如果看不到  可以右键复制图片地址 然后到浏览器粘贴查看  不然显示不全图片)

mac没有画图软件  不好意思  xmind做的

1. 输入网址

   当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址。

     url : 统一资源定位符,用于定位互联网上的资源。
     url构成 协议类型://<主机名>:<端口>/<路径>/文件名?参数名#锚点
     
     IP是因特网中的每台连接到网络的计算机为实现相互通信而遵循的规则协议。每个处于互联网中的设备都有IP 地址,形如 192.168.0.1,而127.0.0.1代表本机的 IP。IP又分为局域网IP和公网IP。而局域网 IP 和公网 IP 是有差别的。每个网站就是靠IP来定位的。
     比如对于 http://www.baidu.com的URL,浏览器实际上不知道 www.baidu.com到底是什么东西,需要域名解析
 

2. 浏览器查找域名的IP地址(域名解析)

   浏览器缓存
        浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束
     系统缓存 
        浏览器会查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。
     路由器缓存
        如果系统缓存中也找不到,那么查询请求就会发向路由器,路由器一般会有自己的DNS缓存。
     ISP DNS 缓存(域名商的域名解析系统)
    如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向
    本地配置的首选DNS服务器(一般是运营商提供的)发起域名解析请求,(通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必须得提供给我们该域名的IP地址),运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。
     如果都没有找到,则运营商的DNS代浏览器发起迭代DNS解析请求,查找域名对应 IP(见图)

3. 通过IP向服务器发起TCP连接(3次握手)

      拿到域名对应的IP地址之后,浏览器会以一个随机的端口(1024~65535)向服务器(Niginx, Apache等)的WEB程序80端口/8080端口(HTTP协议使用80端口/8080端口,HTTPS使用443端口)发起TCP连接请求。连接请求到达服务器端后,通过网卡,进入到内核的TCP/IP协议栈,还有可能要经过防火墙,进入WEB程序,最终建立TCP/IP连接。
  

(百度的图)

4. 服务器接受到请求

    如果有nginx反向代理服务器 用户发送的请求并不是直接进入到应用服务器,而是会先到达反向代理服务器,然后由反向代理服务器根据实际情况将用户请求传递给某个应用服务器

5. 服务器处理请求返回相应文件(包含四次挥手)

服务器状态码 https://www.cnblogs.com/jinzhenzong/p/11753752.html

6、页面渲染

  解析HTML文件,创建DOM树(解析执行JS脚本时,会停止解析后续HTML)
    解析CSS,形成CSS对象模型
    将CSS与DOM合并,构建渲染树
    布局渲染树
    绘制渲染树(可能触发回流和重绘)

 结合xmind看下:

 7、页面加载完毕

分享外的知识:DNS劫持
  DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址

从输入url到页面展现的过程的更多相关文章

  1. 从输入url到页面呈现的过程

    从输入url到页面呈现的过程包括两个基本过程:网络通信和页面渲染 网络通信主要过程是 域名解析 -> TCP连接 -> HTTP请求 -> 服务端响应,返回HTML 页面渲染的主要过 ...

  2. 一文摸透从输入URL到页面渲染的过程

    一文摸透从输入URL到页面渲染的过程 从输入URL到页面渲染需要Chrome浏览器的多个进程配合,所以我们先来谈谈现阶段Chrome浏览器的多进程架构. 一.Chrome架构 目前Chrome采用的是 ...

  3. 输入url到页面返回的过程

    输入url后,你看到了百度的首页,那么这一切是如何发生的呢? 这个问题之前.最近.我想以后肯定还会被问到,或者问到这样的题目,如果在百度框里输入查询的字符串开始,是怎么返回你需要的东西呢. 那这什么个 ...

  4. 详解--从地址栏输入url到页面展现中间都发生了什么?

    这是一个综合性很强的问题,个人理解包含以下七个基本点: 1.在浏览器地址栏输入url并按下回车. 2.浏览器检查当前url是否存在缓存和缓存是否过期. 3.域名解析(DNS解析url对应的ip). 4 ...

  5. 从浏览器输入URL到页面渲染的过程

    零.背景 一个web安全工程师在学习web安全和web渗透时候,非常有必要了解整个WEB工作过程. 一.输入URL 这里是最基本的知识:URL是URI的一种实际应用,URI统一资源表示符,URL统一资 ...

  6. 面试题——分析从输入url到页面返回的过程(或者查询返回过程)

    1. You enter a URL into the browser(输入一个url地址) 2.The browser looks up the IP address for the domain ...

  7. 从输入URL到页面返回的过程详解

    文章转自以为大神的博客;https://www.cnblogs.com/xianyulaodi/p/6547807.html#_labelTop 总结的很不错,看完收获颇多, 下面就是大神的文章,我只 ...

  8. 输入URL到页面加载过程

    URL(uniform resource location) : 统一资源定位符,用来作为互联网上各种资源的标识符,可理解为身份证号 . 注意点:浏览器为了保证安全性,设定了跨域保护策略, 即窗口之间 ...

  9. 【原】老生常谈-从输入url到页面展示到底发生了什么

    刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料.而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步 ...

随机推荐

  1. luogu P4383 [九省联考2018]林克卡特树lct

    传送门 题目操作有点奇怪,不过可以发现这就是把树先变成\(k+1\)个连通块,然后每个连通块选一条路径(本题中一个点也是一条路径),然后依次接起来.所以实际上要求的是选出\(k+1\)条点不相交的路径 ...

  2. Hadoop基础概念

    Apache Hadoop有2个核心的组件,他们分别是: HDFS: HDFS是一个分布式文件系统集群,它可以将大的文件分裂成块并将他们冗余地分布在多个节点上,HDFS是运行在用户空间的文件系统 Ma ...

  3. “12306”是如何支撑百万QPS的?

    来源:掘金 作者:绘你一世倾城 链接:https://juejin.im/post/5d84e21f6fb9a06ac8248149 秒杀系统的艺术 12306抢票,极限并发带来的思考? 每到节假日期 ...

  4. Laravel 向公共模板赋值

    开发过程中许多时候都会向公共模板赋值,比如顶部导航栏,页面底部等等,不可能在每个控制器中都赋值一遍. Laravel 中解决办法如下:修改 App\Providers\AppServiceProvid ...

  5. C语言——枚举类型用法

    1.枚举的定义 enum 枚举名{ 枚举元 素1,枚举元素2,枚举元素3...}: 2.使用枚举类型的好处 增加程序的可读性,我们都知道在计算机中所有信息都是用二进制来表示的,如果你用二进制来表示某件 ...

  6. juniper 命令

    show chassis hardware 查看系统硬件配置,fpc表示板卡,pic表示板卡中的槽位,xcvr表示板卡中的槽位的端口位置 show chassis envirmonent 查看系统运行 ...

  7. PAT Advanced 1041 Be Unique (20 分)

    Being unique is so important to people on Mars that even their lottery is designed in a unique way. ...

  8. Tensorrt之tf-trt

    使用python接口, 另外一种方式就是使用tf-trt,优化后的模型还是pb.优化的过程主要是一些层的合并啊之类的,加速结果不是特别明显,测了两个网络, 加速了10%的样子.优化后仍是pb,因此可以 ...

  9. regsvr32 驱动

    1.将SYS驱动文件放到系统目录的SYSTEM32目录中.2.按WIN+R组合键,在运行框中输入:regsvr32 sys所在全路径,点击确定即可.

  10. css不同情况下的各种居中方法

    div水平居中 1.行内元素 .parent{ text-align: center } 2.块级元素 .son{ margin: 0 auto ; } 3.flex布局 .parent{ displ ...