zoukankan      html  css  js  c++  java
  • 浏览器输入URL后发生了什么?

    1.合成URL
    浏览器会根据内容判断是搜索还是网址;
    判断的话,会将搜索内容+默认搜索引擎合成新的url;
    网址的话,加上协议合成合法的url

    2.DNS域名解析,在客户端和浏览器
    本地DNS直接查询方式是递归查询;
    从浏览器缓存中查找->本地的hosts文件查找->找本地DNS解析器缓存查找->本地DNS服务器查找,这个过程中任何一步找到了都会结束查找流程。
    本地DNS服务器与跟域及其子域查询方式是迭代查询;
    如果本地DNS服务器无法查询到,则根据本地DNS服务器设置的转发器进行查询

    如图:

    3.建立TCP连接
    首先,判断是不是https的,如果是,则HTTPS其实是HTTP + SSL / TLS 两部分组成,也就是在HTTP上又加了一层处理加密信息的模块。
    服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
    1.第一次握手,建立连接。客户端向服务器发送报文。
    表示客户端可以向服务器发送信息;
    2.第二次握手,服务器收到报文。对于报文进行确认,并将这个报文加上自己的一些信息,发送给客户端;
    表示服务器可以接收客户端信息和发送信息给客户端。
    3.第三次握手,客户端收到报文,再次向服务器发送报文。
    表示客户端可以接受服务器的信息
    SSL握手待更新.......

    4.发送Http请求,服务器处理请求,返回响应结果
    tcp连接建立后,浏览器就可以利用HTTP/HTTPS协议向服务器发送请求了。

    5.关闭TCP连接,4次挥手
    1.第一次挥手,主机1(可以使客户端,也可以是服务器端)向主机2发送报文;
    表示主机1没有数据要发送主机2
    2.第二次挥手,主机2收到主机1的报文,向主机1发送响应报文;
    表示主机2告诉主机1,同意其的关闭请求
    3.第三次挥手,主机2向主机1发送报文,请求关闭连接
    4.第四次挥手,主机1收到报文,向主机2发送响应报文;
    主机2收到报文后,就关闭连接了;
    主机1等待2MSL后依然没收到回复,证明服务器已关闭;
    主机1也关闭连接了。

    6.浏览器渲染
    按照渲染的时间顺序,流水线可分为如下几个子阶段:构建 DOM 树、样式计算、布局阶段、分层、栅格化和显示。
    1.渲染进程将 HTML 内容转换为能够读懂DOM 树结构。
    2.渲染引擎将 CSS 样式表转化为浏览器可以理解的styleSheets,计算出 DOM 节点的样式。
    3.创建布局树,并计算元素的布局信息。
    4.对布局树进行分层,并生成分层树。
    5.为每个图层生成绘制列表,并将其提交到合成线程。合成线程将图层分图块,并栅格化将图块转换成位图。
    6.合成线程发送绘制图块命令给浏览器进程。浏览器进程根据指令生成页面,并显示到显示器上。

  • 相关阅读:
    Oracle FGA审计记录的清理步骤
    UVa11488-Hyper Prefix Sets(trie树)
    配置Log4j(非常具体)
    poj1190生日蛋糕
    zju1610Count the Colors
    【例9.3】求最长不下降序列
    P1364 医院设置
    P1629 邮递员送信
    P1476 休息中的小呆
    P1330 封锁阳光大学
  • 原文地址:https://www.cnblogs.com/ssszjh/p/13182791.html
Copyright © 2011-2022 走看看