IIS理解
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理解的更多相关文章
- Ext Js学习之IIS理解
站点分为静态网站和动态网站,纯粹利用html编写的网站属于静态网站,不宜维护和更新而利用C#+extjs等前台+后台技术编写的网站就属于动态站点,有更多的交互,易维护和更新,比如降价的页面,利用htm ...
- htaccess转换httpd.ini方法及案例参考
案例1:httpd.ini适合IIS使用,.htaccess适合Apache使用,nginx.conf适合Nginx使用 转换前:httpd.ini [ISAPI_Rewrite] # 3600 = ...
- 深入理解IIS的多线程工作机制
首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在哪里看. 最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并点击[管理网站]->[高级设置 ...
- IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解
IIS 7.0 支持两种管道模式:一种是IIS 7.0最新提供的集成管道模式,另一种是经典管道模式,经典管道模式是由先前版本的IIS提供的. 我们可以通过应用程序池设置管道模式,这项功能对IIS管理员 ...
- 使用IIS建立自己的网站、使用C#编写IIS模拟器,更好的理解Client和Server的relation
如何在IIS服务器上搭建自己的网站呢,今天带着这问题进行简单的实践一下,并且准备模拟一下IIS服务器工作方式,把这个工作方式搞清楚有利于发展. 1.首先应该进入控制面板=>程序=>添加或删 ...
- 深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图
原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Co ...
- MVC — 初步理解IIS工作流程
声明:本文只是自己的总结和积累.IIS7.x 目录 IIS流程及组成部分 ASP.NET流程及组成部分 IIS与ASP.NET MVC 一.IIS流程及组成部分 1.Http.SYS:负责监听HTT ...
- 关于浏览器和IIS基础的简单理解
浏览器 输入域名或者IP地址,按回车访问后:发生了什么??IIS是如何工作的?为什么能这么工作?? 1 浏览器和IIS 分别是两个应用程序:浏览器访问网址实际就是 两个应用程序的数据交互往来: ...
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
随机推荐
- 《objective-c基础教程》学习笔记(十一)—— 类别
在编写面向对象程序的时候,我们经常想为现有的类添加一些新的行为.有些时候,我们可以创建这个类的子类.但是,如果我们用到工具集或者类库的时候,无法处理新建的子类.这时,Objective-C就给我们提供 ...
- 面向.Net程序员的前端优化
背景 作为web开发人员大家大多了解一些网站的性能优化方法,其实大部分方法都不复杂,例如针对前端js和css的压缩来减少请求大小,通过合并来减少请求次数.这里站在.Net后端程序员的角度来看一下如何最 ...
- (笔记)Linux内核学习(七)之内核同步机制和实现方式
一 原子操作 指令以原子的方式执行——执行过程不被打断. 1 原子整数操作 原子操作函数接收的操作数类型——atomic_t //定义 atomic_t v;//初始化 atomic_t u = AT ...
- IOS开发 图形绘制,绘制线条,矩形,和垂直和居中绘制文字
概述 吐槽下IOS下 的图形绘图,代码冗长,不得不自己重新封装方法.整理形成本文. 绘制线 // 绘制直线 + (void)toDrawLineFromX:(CGFloat)x1 Y:(CGFloat ...
- EETOP中关于Gm仿真的一些帖子的总结
1. cadence画gm曲线 电路里,要把漏的电源dc值设置成变量,比如叫vds,计算器,info标签,点op,然后点管子,在op窗口点list,选gm,然后把这个公式弄到ADE的outputs那里 ...
- SGU 422 Fast Typing(概率DP)
题目大意 某人在打字机上打一个字符串,给出了他打每个字符出错的概率 q[i]. 打一个字符需要单位1的时间,删除一个字符也需要单位1的时间.在任意时刻,他可以花 t 的时间检查整个打出来的字符串,并且 ...
- Django Push HTTP Response to users
Django Push HTTP Response to users I currently have a very simple web application written in Django, ...
- Qt4.8.6 Embedded Linux 的编译与移植
最近买了个飞凌ok6410 的开发板,于是在其中搭建qt4.8.6运行环境.费了两三天时间,主要还是对Linux系统的生疏,在一些问题上徘徊很久,在这里做一些过程笔记.烧写ARM-Linux系统,根据 ...
- 导出excel和PDF小结 vba
最近接触了一个关于Access工具的项目,所以整理下需要使用的方法. 功能要求简介: 1.将数据表中的数据导出到excel和PDF 2.并根据某个字段名称分sheet输出. 3.无模板方式 方案简介: ...
- Unity 全面理解加载和内存管理
最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质上我理解没有什么区别.Resources ...