zoukankan      html  css  js  c++  java
  • 从输入url地址到刷新页面经历来什么?最简单的方式告诉你

    步骤

    • NDS解析,将域名地址解析为ip地址 (第一步)
      • 浏览器DNS缓存
      • 系统DNS缓存
      • 路由器DNS缓存
      • 网络运营商DNS缓存
      • 递归搜索 如 blog.baidu.com
        • .com 域名下查找DNS解析
        • .baidu
        • blog
        • 出错
    • TCP连接,TCP三次握手 (第二步)
      • 第一次握手,由浏览器发起,告诉服务器我要发送请求了
      • 第二次握手,由服务器发起,告诉浏览器,你赶紧发送
      • 第三次握手,由浏览器发起,告诉服务器,我马上就发了,准备接收了。
    • 发送请求 (第三步)
      • 请求报文:http 协议的通信内容
    • 接收响应 (第四步)
      • 响应报文
    • 渲染页面 (第五步)
      • 遇见html 标记,浏览器调用html解析器解析成token并构建成dom树。
      • 遇见style/link标记,浏览器会调用css解析器,处理css标记并构建cssom树
      • 遇见script标签,会调用script解析器,处理script代码。
      • 将dom树和cssom树合并成渲染树
      • 根据渲染树来计算布局,计算每个节点的几何信息(布局)
      • 将各个节点的颜色绘制到屏幕上(渲染)

    注意 这五个步骤,不一定按顺序执行,可能反复执行,或者执行多次布局和渲染,往往在实际页面中,这些步骤会执行多次。

    • 断开连接(Tcp的四次挥手)(第六步)
      • 第一次挥手: 由浏览器发起,告诉服务器,我东西发完来(请求报文),能准备关闭吧。
      • 第二次挥手:由服务器发起,告诉浏览器,我东西接收完来(请求报文),我准备关闭来,你也准备吧。
      • 第三次挥手:由服务器发起,告诉浏览器,我东西发送完来 (响应报文),你准备关闭吧。
      • 第四次挥手:由浏览器发起,告诉服务器,我东西接收完了,我准备关闭来(响应报文),你也准备吧。
  • 相关阅读:
    Python网页信息采集:使用PhantomJS采集淘宝天猫商品内容
    让Scrapy的Spider更通用
    API例子:用Python驱动Firefox采集网页数据
    API例子:用Java/JavaScript下载内容提取器
    Python即时网络爬虫:API说明
    Python: xml转json
    git 更新本地代码
    数据库事务
    Python的线程、进程和协程
    Java基础语法
  • 原文地址:https://www.cnblogs.com/yaogengzhu/p/10968082.html
Copyright © 2011-2022 走看看