com*_*ica 34 iis tcp http http.sys windows-kernel
我正在努力深入了解IIS的工作原理.
我理解的http.sys是其主要组成部分之一.但是,我一直无法找到容易消化的信息.在听说WSK之前,我无法获得良好的心理模型,然后我认为这一切都已落实到位.
从大量随机谷歌搜索一点点实验,这是我目前对其存在的原因及其如何实现的高层次理解.
为什么:
端口共享和更高性能的缓存.
怎么样:
用户模式进程使用WinSock api打开侦听端口的套接字以访问网络子系统,例如tcp/ip.像http.sys驱动程序这样的Kernal模式软件使用Winsock Kernal套接字(WSK)API来使用与WinSock api相同的TCP端口号池来实现相同的目的.
IIS,Web服务或任何想要使用http的内容都使用唯一的URL /端口组合向http.sys注册.http.sys使用WSK在此端口上打开一个套接字(如果它还没有用于具有相同端口的另一个url/port组合)并监听.
当传输层(tcpip.sys)重新构建一个ip数据包负载回到客户端发送的http请求时,它会通过请求中的端口将其提供给http.sys.Http.sys使用url/port编号向它发送适当的进程,然后解析它.
我知道好像我正在回答我自己的问题,但我真的不确定自己这个并且想要一些关闭,所以我可以继续处理更多有趣的事情.
我接近了吗?