1、首先我们客户端发送一个请求到WEB服务器,请求首先是到网卡。
2、网卡将请求报文交由内核空间的内核处理,起始就是拆包了,发现请求的套接字是80端口。
3、内核便将请求发给了在用户空间的WEB应用程序,web服务器发现客户端请求的是index.html页面。
4、WEB服务进程发起系统调用将请求发送给内核。
5、内核发现请求的是一个页面,调用磁盘的驱动程序连接磁盘。
6、内核通过磁盘调用取得页面文件。
7、内核将取得的页面文件保存在自己的缓存区域中,通知WEB进程或线程来取相应的页面文件。
8、WEB服务通过系统调用将内核缓存中的页面文件复制到进程缓冲区中。
9、WEB服务取得文件来响应用户,再次通过系统调用将页面文件发给内核。
10、内核进程对页面文件进行封装并通过网卡发送出去。
11、当报文到达网卡时通过网络响应给客户端。