zoukankan      html  css  js  c++  java
  • http.sys

    http.sys简介  http.sys
      是一个位于Win2003和WinXP SP2中的操作系统核心组件,能够让任何应用程序通过它提供的接口,以http协议进行信息通讯。
      温馨提示:如果用户不慎删除了该驱动文件,不用担心,该驱动会在下次系统启动时重建。是一个删不掉的系统核心组件!实用程序结束该驱动,该驱动也会马上重新创建(只有粉碎文件才不能马上重建,但粉碎后,下次启动会重建)。
      微软在Windows 2003 Server里引进了新的HTTP API和kernel mode driver Http.sys,目的是使基于Http服务的程序更有效率。这个改变的直接收益者就是IIS 6.0和ASP.NET。
      其实在Windows XP安装SP2后,Http.sys已经出现在系统里了,但事实上,操作系统并没有真的使用这个内核级驱动,而XP上自带的IIS 5.1也没有使用HTTP API。
      新的HTTP API里最核心的变化都封装在Http.sys这个kernel mode driver里了。在此之前,基于HTTP协议的程序都是在User mode下运行的,而且必须自己处理诸如软件中断、context switch、线程调度等等问题,并且往往无法自由接触系统资源。过去,HTTP服务器,如IIS, Apache等都是利用Winsock API来创建一个User mode下的network listener。Network listener通常独自(i.e.: per application or per thread basis)占用一个IP端口。通俗点说,就是在同一时间只有一个应用程序可以监听一个端口,这在有些时候是一个不太令人舒服的限制。

    http.sys的好处

      新的Http.sys带来的好处大致有如下一些:
      1. 缓存 - 静态的内容现在被缓存于内核模式下,这使服务响应速度更快
      2. 记录 (Log)-IIS的log功能更快且标准化了
      3. 带宽控制 - greater scalability control and throttling
      4. 可靠性 - 所有的服务请求会在Http.sys里暂存入队列,而不是由服务程序本身来处理,这样,即使服务程序重启,尚未被处理的请求也不会丢失了

      5. IP端口重用 - 现在,只要是通过Http.sys管理的端口(基本包括了那些著名的端口,比如80),都可以同时允许多个程序同时监听了。

    Windows Server 2003 家族成员中的超文本传输协议 (HTTP) 栈以一个名为 HTTP.sys 的内核模式设备驱动程序形式来实现。HTTP.sys 是 Windows Server 2003 家族所特有的新功能,它是网络子系统的一部分。IIS 是一个用户模式进程,它与内核处理在完全不同的执行模式下运行。HTTP.sys 是所有传入(服务器端) HTTP 请求的单个联系点,它为 HTTP 服务器应用程序提供高性能的连接性。HTTP.sys 还负责进行总体连接管理、带宽控制和基于文本的日志记录。HTTP.sys 实现灵活的通用资源标识符 (URI) 响应缓存(名为可伸缩缓存),允许 HTTP 应用程序完全在内核模式(而不转换到用户模式)下缓存静态数据并为缓存的 HTTP 请求提供服务。HTTP.sys 实现一个名为应用程序池的 URI 名称空间映射机制。利用应用程序池,HTTP 应用程序可声明 URI 名称空间的多个部分,从而允许 HTTP.sys 将 HTTP 请求直接路由到相应的 HTTP 应用程序。基于这些更改,IIS 已经提高了多处理器计算机的吞吐量和可伸缩性,从大大增加了:

    • 单个 IIS 6.0 服务器可以主控的站点数。
    • 同时活动的工作进程数。
    • 启动/关闭次数。

  • 相关阅读:
    shell编程-项目部署(优化篇)
    数据库相关
    python基础面试
    scrapy爬取数据进行数据库存储和本地存储
    C# 对字符串操 替换数字 替换非数字 去除首尾字符 长沙
    还在为删除集合中的相同项而烦恼吗?
    C#之Task&匿名方法
    如何在火狐里面实现如下功能
    valueOf和toString曾经欺骗过你吗?
    JS 实现Json查询方法
  • 原文地址:https://www.cnblogs.com/sntetwt/p/2001167.html
Copyright © 2011-2022 走看看