欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算机网络基础

程序员文章站 2024-02-14 15:01:22
...

分享一下我一年前端自学路上的学习笔记。


今天分享一下计算机网络基础知识,通过输入URL到页面呈现这个问题引出。大致过程如下:

  1. 输入url
  2. DNS解析
  3. 建立tcp链接
  4. 客户端发送HTTP请求
  5. 服务器处理请求
  6. 服务器响应请求
  7. 浏览器展现页面
  8. 浏览器发送请求获取其他在HTML的资源

下面按上述步骤来讲解:

  • 输出url

url组成为协议、域名、端口(默认端口http80https443)、虚拟目录、文件名、hash(#)、search(?&分隔符)

  • DNS解析

DNS查询方式:递归和迭代。在根域、一级域、二级域查询来获取IP地址。

  • 建立tcp连接

建立tcp连接需要三次握手。第一次握手:SYN=1 seq=J 第二次握手:SYN=1,ACK=1,ack=J+1,seq=k 第三次握手:ACK=1 ack=k+1。断开需要四次挥手FIN。

  • 客户端发送HTTP请求

请求报文:请求行(请求方法,请求URI,协议版本)请求头 空行 请求体

  • 服务端处理请求
  • 服务器响应请求

响应报文:状态行(HTTP版本 状态码 状态描述)响应头 空行 响应体

HTTP状态码:
1xx:指示信息-表示请求已接受,继续处理
2xx: 成功-表示请求已成功接收
    200 OK:客服端请求成功
    206 Partial Content:客户端发送了一个带有Range头的GET请求,服务器完成了它
3xx: 重定向-要完成请求必须进行更进一步的操作
    301 Moved Permanertly:所请求的页面已经转移至新的URL
    302 Found:所请求的页面已经临时转移至新的url
    304 Not Modified:客户端有缓存的文档并发生一个条件性的请求,服务器告诉客户端,原缓存的文档还可以继续使用
4xx:客户端错误-请求有语法错误或请求无法实现
    400 Bad Request: 客户端请求有语法错误,不能被服务器所理解
    401 Unauthorized:请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
    403 Forbidden: 对被请求页面的访问被禁止
    404 Not Found:请求资源不存在
5xx: 服务器错误-服务器未能实现合法的请求
    500 Internal Server Error:服务器发生不可预期的错误原理缓存的文档还可以继续使用
    503 Server Unanailable:请求未完成,服务器临时过载,一段时间后可能恢复正常
readyState状态值
    0=>初始化 1=>载入 2=>载入完成 3=>解析 4=>完成
  • 浏览器展现页面

解析过程中,浏览器首先会解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。页面在首次加载时必然会经历reflow和repain。

浏览器在解析html文件时,会”自上而下“加载,并在加载过程中进行解析渲染。在解析过程中,如果遇到请求外部资源时,如图片、外链的CSS、iconfont等,请求过程是异步的,并不会影响html文档进行加载。

当文档加载过程中遇到js文件,html文档会挂起渲染(加载解析渲染同步)的线程,不仅要等待文档中js文件加载完毕,还要等待解析执行完毕,才可以恢复html文档的渲染线程。因为JS有可能会修改DOM,所以平时的代码中,js是放在html文档末尾的。