WEB开发基础

1IIS原理

IIS的本质其实就是一个sorket的服务器,浏览器就是一个sorket的客户端,浏览器发送请求信息给IIS,IIS返回信息给浏览器显示,就这么简单。

1http.sys,这个是上个IIS6里的一个模块,主要作用是用来接受浏览器发送过来的请求。用要用一个队列来管理发送过来的请求。如果请求的是.net资源,它就将激活CLR运行时(w3wp.exe)。否则直接返回静态资源(HTML,图片等)。IIS5中没有这个模块,是处理激活aspnet_wp.exe

2 ISAPI扩展器。

ISAPI与aspnet_isapi.dll的关系,ISAPI是IIS的一个扩展接口(GetExtensionVersion,HttpExtensionProc处理后的数据写回客户端,TerminateExtension),而已aspnet_isapi.dll则是对isapi扩展的一个实现。当一个asp.net的资源请到w3wp.exe中,会先经过aspnet_isapi.dll。再到CLR运行环境。它是接收和分派对各种asp.net资源请求的控制中心。它通过命名管道将请求转发给asp.net所在的辅助进程(w3wp.exe)。

3 ISAPI过虑器。

ISAPI过虑器也是ISAPI的一种扩展,aspnet_filter.dll只不过扩展的接口方法不一样,它主要是对一些特定的方法去扩展,主要是:GetFilterVersion,Httpfilterproc过虑请求等。功能类似httpmodule,所有的请求信息对要经过它。

4 W3WP.exe

它是一个进程,每一个应用程序池都要创建一个这样的进程来处理.net资源请求的,即.net的运行环境。每个w3wp.exe中都包括一个aspnet_isapi.dll

5  IIS5与IIS6与IIS7的关系。

IIS5请求进入到进程inetinfo.exe,inetinfo.exe的aspnet_isapi开始工作,aspnet_isapi用管道与aspnet_wp.exe通信,激活aspnet_wp.exe中的工作者线程处理请求。服务只有一个aspnet_wp.exe进程不同网站运行在不同的域中,用应用程序域来隔离资源。当有一个网站挂掉,将会影响其他网站。

II6引用了应用程序池的概念来处理这个问题,一个网站可以独立一个应用程序池,一个池创建一个w3wp.exe进程。解决了当一个网站挂掉会影响其他网站的问题。同时引用了http.sys请求队列,所用的请求都会进入http.sys队列中,由http.sys分派给w3wp.exe,w3wp.exe中的aspnet_isapi再分派给工作者线程处理。

IIS7 在IIS6的基础上,加入了集成模式和经典模式,经典模式就是IIS6的模式,当一个请求进来,会经过IIS的isapi和aspnet_isapi.dll,会有两次信息验证。效率会不高。

而IIS7中引用了集成模式,当时选用了集成模式,请求将不需求ISAPI来激活asp.net,而是直接进入托管代码w3wp.exe中的isapi扩展。在集成模式下可以通过web.config中的system.webserver来配置映射

 

IIS理解的更多相关文章

  1. Ext Js学习之IIS理解

    站点分为静态网站和动态网站,纯粹利用html编写的网站属于静态网站,不宜维护和更新而利用C#+extjs等前台+后台技术编写的网站就属于动态站点,有更多的交互,易维护和更新,比如降价的页面,利用htm ...

  2. htaccess转换httpd.ini方法及案例参考

    案例1:httpd.ini适合IIS使用,.htaccess适合Apache使用,nginx.conf适合Nginx使用 转换前:httpd.ini [ISAPI_Rewrite] # 3600 =  ...

  3. 深入理解IIS的多线程工作机制

    首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在哪里看. 最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并点击[管理网站]->[高级设置 ...

  4. IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解

    IIS 7.0 支持两种管道模式:一种是IIS 7.0最新提供的集成管道模式,另一种是经典管道模式,经典管道模式是由先前版本的IIS提供的. 我们可以通过应用程序池设置管道模式,这项功能对IIS管理员 ...

  5. 使用IIS建立自己的网站、使用C#编写IIS模拟器,更好的理解Client和Server的relation

    如何在IIS服务器上搭建自己的网站呢,今天带着这问题进行简单的实践一下,并且准备模拟一下IIS服务器工作方式,把这个工作方式搞清楚有利于发展. 1.首先应该进入控制面板=>程序=>添加或删 ...

  6. 深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图

    原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Co ...

  7. MVC — 初步理解IIS工作流程

    声明:本文只是自己的总结和积累.IIS7.x 目录 IIS流程及组成部分 ASP.NET流程及组成部分 IIS与ASP.NET  MVC 一.IIS流程及组成部分 1.Http.SYS:负责监听HTT ...

  8. 关于浏览器和IIS基础的简单理解

    浏览器 输入域名或者IP地址,按回车访问后:发生了什么??IIS是如何工作的?为什么能这么工作?? 1    浏览器和IIS 分别是两个应用程序:浏览器访问网址实际就是  两个应用程序的数据交互往来: ...

  9. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

随机推荐

  1. CYQ学习教程

    http://www.cyqdata.com/cyqdata/article-detail-413

  2. iOS开发——项目实战总结&带你看看Objective-C的精髓

    带你看看Objective-C的精髓 1:接口与实现 @interface...@end @implementation...@end @class 接口(头文件) 实现文件 向前引用 注:类别通过增 ...

  3. 2015.10.14-TransactionScope测试

    测试代码: ; ; List<string> lst = null; Action doSth = () => { using (var db = new TestSystemEnt ...

  4. CentOS 7.0系统安装配置LAMP服务器(Apache+PHP+MariaDB)

    CentOS 7.0接触到的用户是比较少的,今天看了站长写了一篇关于centos7中安装配置LAMP服务器的教程,下面我把文章稍加整理一下转给大家学习交流,希望例子能给各位带来帮助哦.   cento ...

  5. Haproxy配置支持https获取用户IP地址

    global log 127.0.0.1 local0 chroot /var/lib/haproxy #chroot运行路径 pidfile /var/run/haproxy.pid #haprox ...

  6. Arduino 学习

    Arduino 背景可以参考官方网站www.arduino.cc 先看一个最简单的示例程序: 打开 Arduino IDE , 选择菜单:文件 -> 示例 -> 01.Basics -&g ...

  7. Web Uploader文件上传插件

    http://www.jq22.com/jquery-info2665   插件描述:WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现 ...

  8. 华为 HG8245C 光猫 修改无线用户数限制+hw_ctree.xml 文件解密

    这个操作方法是 从网上其他人提供的方法  和我一个朋友总结出来的,我只是负责整理,并实地在我自己的光猫上操作成功了 风险提示 :刷机有风险,操作需谨慎, 备份备份备份! 俺家,俺的新家是电信光纤接入, ...

  9. 当在ECLIPSE中import现存项目时,如遇到版本不符

    当在ECLIPSE中import现存项目时,如遇到版本不符,可选Run-->Run Configurations,进入'Run Configurations'界面,选左边的Android App ...

  10. python 字符串截取

    我们可以通过索引来提取想要获取的字符,可以把python的字符串也做为字符串的列表就更好理解 python的字串列表有2种取值顺序1是从左到右索引默认0开始的,最大范围是字符串长度少1s = 'ilo ...