二、基础篇
2.1 TCP/IP 网络模型有哪几层?
应用层
应用层只需要专注为用户提供应用功能,例如HTTP、FTP等。
应用层不会去关心如何传输
传输层
传输层,为应用层提供网络支持,目前有两个传输协议,TCP 和 UDP。
TCP相较于UDP多了许多特性,例如 流量控制、超时重传、拥塞控制等。这些都是为了保证数据包能可靠的传输给对方。
网络层
网络层主要确保可以将数据发送给另外一个设备
网络接口层
负责两个直接相连的设备连接
总结
2.2 键入网址到网页显示,期间发生了什么?
HTTP
https://xiaolincoding.com/network/1_base/what_happen_url.html
|-1--| |---2-----------| |--3-------------------------------|
如果没有路径名称的时候就我们就需要先访问我们的默认文件,是/index.html
或者/default.html
这些文件。
在对URL
完成解析之后,浏览器确定了 Web 服务器额文件名, 接下来就是根据这些信息生成 HTTP 请求的消息了。
DNS
在发送http消息之前我们需要找寻到一个服务器域名所对应的 IP 地址。
域名是使用 .
来进行分割,越靠右层级越高。
例如 www.xiaolingcoding.com.
中,最后一个点代表了根域名。
DNS解析可以看成如下图所述的过程。
协议栈
通过DNS服务器获取到IP之后就可以将 HTTP 所获的传输工作交给操作系统中的协议栈。
在 IP 协议中还有两个协议 ICMP
和 ARP
协议
ICMP
用于告知网络包传送过程中产生的错误以及各种控制信息。ARP
用于根据 IP 地址查询相应的以太网 MAC 地址。
TCP
IP
MAC
网卡
交换机
三、HTTP篇
3.1 HTTP 常见面试题
强制缓存
强缓存指的是只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存,决定是否使用缓存的主动性在于浏览器这边。
PREVIOUS小林coding 图解操作系统