博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个web请求的处理过程
阅读量:2337 次
发布时间:2019-05-10

本文共 475 字,大约阅读时间需要 1 分钟。

 

1 客户发起情况到服务器网卡;

2 服务器网卡接受到请求后转交给内核处理;

3 内核根据请求对应的套接字,将请求交给工作在用户空间的Web服务器进程

4 Web服务器进程根据用户请求,向内核进行系统调用,申请获取相应资源(如index.html

5内核发现web服务器进程请求的是一个存放在硬盘上的资源,因此通过驱动程序连接磁盘

6内核调度磁盘,获取需要的资源

7内核将资源存放在自己的缓冲区中,并通知Web服务器进程

8 Web服务器进程通过系统调用取得资源,并将其复制到进程自己的缓冲区中

9Web服务器进程形成响应,通过系统调用再次发给内核以响应用户请求

10内核将响应发送至网卡

11网卡发送响应给用户

 

通过这样的一个复杂过程,一次请求就完成了。

简单来说就是:用户请求-->送达到用户空间-->系统调用-->内核空间-->内核到磁盘上读取网页资源->返回到用户空间->响应给用户。上述简单的说明了一下,客户端向Web服务请求过程,在这个过程中,有两个I/O过程,一个就是客户端请求的网络I/O,另一个就是Web服务器请求页面的磁盘I/O

转载地址:http://phepb.baihongyu.com/

你可能感兴趣的文章
模板中关键字“ typename”和“ class”的区别?
查看>>
在React中显示或隐藏元素
查看>>
暂存已删除的文件
查看>>
为什么需要在脚本文件的开头加上#!/ bin / bash?
查看>>
ReactJS-每次调用“ setState”时都会调用渲染吗?
查看>>
如何在Ubuntu上安装Boost
查看>>
如何在变更事件中使用广播?
查看>>
如何解决错误:使用nodejs时监听EADDRINUSE?
查看>>
如何检查批处理文件中是否存在文件[重复]
查看>>
抛出异常的Java 8 Lambda函数?
查看>>
状态栏和导航栏显示在iOS 7中我视图的边界上
查看>>
backbone.js的目的是什么?
查看>>
instanceof和Class.isAssignableFrom(...)有什么区别?
查看>>
使用AngularJS的ng-options使用select
查看>>
解析JSON时出现“意外令牌o”错误[重复]
查看>>
如何在PHP中获取文件扩展名? [重复]
查看>>
Scalaz迭代:“提升”`EnumeratorT`以匹配`IterateeT`为“更大”的monad
查看>>
我应该如何在OSX上设置JAVA_HOME
查看>>
如何显示过滤的ng-repeat数据的长度
查看>>
@import vs #import - iOS 7
查看>>