zoukankan      html  css  js  c++  java
  • 2020-07-02:在浏览器输入一个url后按回车,会发生什么?

    福哥答案2020-07-02:

    简单回答:

    1. 域名解析。
    2. 建立TCP连接。
    3. 请求。
    4. 处理。
    5. 响应。
    6. 释放TCP连接。
    7. 页面渲染。

    中级回答:

    1. 域名解析
      1. 浏览器DNS缓存。
      1. 操作系统DNS缓存。
      1. 路由器缓存。
      1. ISP 服务商缓存。
      1. 根服务器递归查询。
    2. 建立TCP连接。三次握手。
    3. 请求。
      请求报文格式:
      1. 请求行。
        请求方式、url、版本,比如 POST index.html / HTTP/1.1。
      1. 请求头。
        键值对,比如Connection: Keep-Alive。
      1. 空行。
      1. 请求体。
    4. 4.1. 键值对,比如Pn=2&kw=nba。
    5. 4.2. 分隔符上传文件。
      Content-Type:multipart/form-data;boundary=-----------------------------7db372eb000e2

    -------------------------------7db372eb000e2
    Content-Disposition: form-data; name="file"; filename="kn.jpg"
    Content-Type: image/jpeg
    (此处省略jpeg文件二进制数据...)
    4. 处理。
    5. 响应。
    响应报文格式:
    5.1. 响应行。
    版本、状态码、描述。比如 HTTP/1.1 200 OK。
    5.2. 响应头。
    键值对,比如 Content-Length: 122。
    5.3. 空行。
    5.4. 响应体。
    6. 释放TCP连接。四次挥手。
    7. 页面渲染。
    7.1. 构建dom树。
    7.2. 构建CSSOM 树。
    7.3. 构建渲染树。
    7.4. 布局计算。
    7.5. 渲染呈现。

    有那些网站优化的方法?
    ①减少DNS查询:将服务器域名的ip信息加入本地host文件。
    ②减少http请求数量,对于图片使用雪碧图,对于html文件和css文件,js文件分别进行合并操作。
    ③减少下载时间:压缩图片,使用压缩应用压缩文档中的空格,删除文件多余的语句和注释,创造自己的js精简库和精简框架,使用本地浏览器缓存。
    ④提前渲染开始时间:将css链接放在html头部。
    ⑤减轻解析器的阻塞:将js链接放在body尾部。

  • 相关阅读:
    Android学习(二)
    密码与安全新技术专题之AI与密码
    Android学习(一)
    冲刺周六The Sixth Day(6.1)
    冲刺周日The Seventh Day(6.2)
    冲刺周五The Fifth Day(5.31)
    冲刺周四The Fourth Day(5.30)
    冲刺周三The Third Day(5.29)
    冲刺周二The Second Day(5.28)
    冲刺周一The First Day(5.27)
  • 原文地址:https://www.cnblogs.com/waitmoon/p/13442822.html
Copyright © 2011-2022 走看看