2020-07-02:在浏览器输入一个url后按回车,会发生什么?

网友投稿 542 2022-05-30

福哥答案2020-07-02:

简单回答:

1. 域名解析。

2. 建立TCP连接。

3. 请求。

4. 处理。

5. 响应。

6. 释放TCP连接。

7. 页面渲染。

中级回答:

1. 域名解析

1.1. 浏览器DNS缓存。

1.2. 操作系统DNS缓存。

1.3. 路由器缓存。

1.4. ISP 服务商缓存。

1.5. 根服务器递归查询。

2. 建立TCP连接。三次握手。

3. 请求。

请求报文格式:

3.1. 请求行。

请求方式、url、版本,比如 POST  index.html  / HTTP/1.1。

3.2. 请求头。

键值对,比如Connection: Keep-Alive。

3.3. 空行。

3.4. 请求体。

3.4.1. 键值对,比如Pn=2&kw=nba。

3.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. 布局计算。

2020-07-02:在浏览器输入一个url后按回车,会发生什么?

7.5. 渲染呈现。

有那些网站优化的方法?

①减少DNS查询:将服务器域名的ip信息加入本地host文件。

②减少http请求数量,对于图片使用雪碧图,对于html文件和css文件,js文件分别进行合并操作。

③减少下载时间:压缩图片,使用压缩应用压缩文档中的空格,删除文件多余的语句和注释,创造自己的js精简库和精简框架,使用本地浏览器缓存。

④提前渲染开始时间:将css链接放在html头部。

⑤减轻解析器的阻塞:将js链接放在body尾部。

渲染 DNS

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Istio入门与实战》 ——3 使用Vagrant管理虚拟机
下一篇:《TypeScript实战指南》—1.2.2 npm和 Yarn
相关文章