计算机网络基础
程序员文章站
2024-02-14 15:01:22
...
分享一下我一年前端自学路上的学习笔记。
今天分享一下计算机网络基础知识,通过输入URL到页面呈现这个问题引出。大致过程如下:
- 输入url
- DNS解析
- 建立tcp链接
- 客户端发送HTTP请求
- 服务器处理请求
- 服务器响应请求
- 浏览器展现页面
- 浏览器发送请求获取其他在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文档末尾的。
下一篇: 计算机网络基础