主页

索引

模块索引

搜索页面

常见问题

网络

大家经常说的四层、七层,分别指的是什么? TCP 三次握手是什么,TIME_WAIT 是怎么发生的?CLOSE_WAIT 又是什么状态? Linux 下的 epoll 解决的是什么问题?如何使用 epoll 写出高性能的网络程序? 什么是网络事件驱动模型?Reactor 模式又是什么?

索引

  • Mongo 索引与 MySQL 索引的实际区别?

URL请求

输入 URL,从一个请求到响应都发生了什么事:

1. 常规的网络交互过程是从客户端发起网络请求,用户态的应用程序(浏览器)会生成 HTTP 请求报文、并通过 DNS 协议查找到对应的远端 IP 地址。
2. 在套接字生成之后进入内核态,浏览器会委托操作系统内核协议栈中的上半部分,也就是 TCP/UDP 协议发起连接请求。
3. 然后经由协议栈下半部分的 IP 协议进行封装,使数据包具有远程定位能力。
4. 经过 MAC 层处理,找到接收方的目标 MAC 地址。
5. 最终数据包在经过网卡转化成电信号经过交换机、路由器发送到服务端,服务端经过处理拿到数据,再通过各种网络协议把数据响应给客户端。
6. 客户端拿到数据进行渲染。
7. 客户端和服务端之间反复交换数据,客户端的页面数据就会发生变化。

缓存有:

1. 路由器缓存、
2. DNS 缓存、
3. 浏览器缓存、
4. Service Worker、
5. Memory Cache、
6. Disk Cache、
7. Push Cache、
8. 系统缓存等。

主页

索引

模块索引

搜索页面