向IIS请求页面时,它做了什么?!(部分转载)

先了解一下IIS系统。它是一个程序,负责对网站的内容进行管理并且处理对客户的请求做出反应。当用户对一个页面提出请求时,IIS做如下反应(不考虑权限问题):

1.把对方请求的虚拟路径转换成物理路径

2.根据物理路径搜索请求的文件

3.找到文件后,获取文件的内容

4.生成Http头信息。

5.向客户端发送所有的文件内容:首先是头信息,然后是Html内容,最后是其它文件的内容。

6.客户端IE浏览器获得信息后,解析文件内容,找出其中的引用文件,如.js .css .gif等,向IIS请求这些文件。

7.IIS获取请求后,发送文件内容。

8.当浏览器获取所有内容后,生成内容界面,客户就看到图像/文本/其它内容了。

但是IIS本身是不支持动态页面的,也就是说它仅仅支持静态html页面的内容,对于如.asp,.aspx,.cgi,.php等,IIS并不会
处理这些标记,它就会把它当作文本,丝毫不做处理发送到客户端。为了解决这个问题。IIS有一种机制,叫做ISAPI的筛选器,这个东西是一个标准组件
(COM组件),当在在访问IIS所不能处理的文件时,如asp.net 1.1 中的IIS附加ISAPI筛选器如图:

 

Asp.net服务在注册到IIS的时候,会把每个扩展可以处理的文件扩展名注册到IIS里面(如:*.ascx、*.aspx等)。扩展启动后,
就根据定义好的方式来处理IIS所不能处理的文件,然后把控制权跳转到专门处理代码的进程中。让这个进程开始处理代码,生成标准的HTML代码,生成后把
这些代码加入到原有的Html中,最后把完整的Html返回给IIS,IIS再把内容发送到客户端。

时间: 2024-10-04 03:16:32

向IIS请求页面时,它做了什么?!(部分转载)的相关文章

请问实际项目中限制登录后的用户才可查看此页面时如何做的?

问题描述 我现在学习过程中用的是登录成功时在session中添加信息,然后其他jsp页面中加上检查session的java代码,session不存在就跳转到其他界面(登录页面提示页面),session信息存在就可查看此网页.请问实际生产过程中,这一过程一般是怎么实现的?谢谢. 解决方案 解决方案二:你有注册登录功能.那就在你需要登录后才能访问的页面添加一个session判断.request.getSession()获取session,如果有只就正常访问,无值就调整到指定页面.登录页面需要在登录的

关于客户端请求页面与服务器段返回页面的问题?不知道你们有遇到过没!

问题描述 所有人都知道,客户端想服务端请求页面时,服务端返回客户需要的页面!而我现在需要的功能是:让服务端自动将更新后的数据返回给客户比如说有这样的一个过程:(1)有A.B两个客户同时浏览同一个页面(2)A客户的一些操作使服务器的数据更新(3)服务器将更新后的数据自动地传给B客户(4)B客户的浏览器接受到新数据后,自动更新自己的页面 这里遇到的问题是:a.在过程(3)时,服务器要将更新后的数据发送个B客户,很明显,服务器给客户端发送数据需要客户端的请求才会进行b.要解决问题a,服务器是否需要知道

html页面请求-请问当请求一个html页面时,服务器就与客户端建立了一个会话吗?

问题描述 请问当请求一个html页面时,服务器就与客户端建立了一个会话吗? 请问当请求一个html页面时,服务器就与客户端建立了一个会话吗?如果跳转到其它的页面,这个会话就会结束吗? 解决方案 aspphpjsp不同应用服务器有自己的会话跟踪,默认情况下,大多数web应用层使用临时cookie来跟踪sessionid,因此对于浏览器进程,每个进程保持相同的会话.关闭再开就是新的会话.但是也可以用永久cookie,那么就可以保持到浏览器关闭以及多个浏览器实例的共享 解决方案二: 错,会话是应用服务

我在做一个网站统计系统时,在统计页面的时候总是要刷新网站页面时才能获取客户端的基本信息?

问题描述 我在做一个网站统计系统时,在统计页面的时候总是要刷新网站页面时才能获取客户端的基本信息? 解决方案 解决方案二:问题不具体,你要统计什么?客户端的什么信息?你为什么要刷新页面呢?解决方案三:不刷新就得用Javascript+Ajax解决方案四:在页面加载的时候不就可以统计到客户端的信息了吗

ajax向后台请求数据时,怎么让前台页面无法操作

问题描述 如题,当请求发出时,锁定页面,鼠标置为忙碌状态,直到后台发回数据.然后解锁,鼠标恢复正常.锁定页面指无法操作这个页面,比如点击按钮或者填写参数等等. 解决方案 弹出一个浮动的div层,遮住原页面即可.解决方案二:如果你用jQuery的话,可以设置ajaxStart,ajaxStop事件,在事件中开启关闭浮动的div层,遮住整个页面就行了解决方案三:弹出浮层可能用户用Tab键仍旧可以获得位置,最好是直接限制操作.如果不是太严格,用浮层比较简单

iis 并发数-iis 指定页面并发数,一次请求一个.

问题描述 iis 指定页面并发数,一次请求一个. 我想指定页面的并发数,这个应该怎么处理呢. 比如我一个query.aspx页面,一次只能处理一个用户的.并发数为1.等上一个用户处理完了,再处理下一个用户的.

我用Spring框架做了个新闻发布系统,功能经过测试全部实现,但是在访问页面时出现404错误

问题描述 我用Spring框架做了个新闻发布系统,功能经过测试全部实现,但是在访问页面时出现404错误,改怎么办?问题补充:我觉得是Tomcat部署上缺少了什么,做这个东西是为了联系Spring框架的使用,同样的工程我已经用手写的MVC模式做了一遍,用Struts又做了一遍,用Hibernate又做了一遍,不太可能是那么简单的问题.问题补充:我可以肯定是我的访问路径有问题,请告诉我在Struts-config.xml和ApplicationContext.xml里比较细节的配置经验吧.应该能解决

ajax-请问这个异步请求方式,怎么做!

问题描述 请问这个异步请求方式,怎么做! 当选择车型,下面的三项都异步生成:然后选择"车的年代",下面的两行自动生产:选择"车款式",下面一行的车的颜色也随之生产. 用mvc三成架构,应该怎么做? 解决方案 怎么感觉有点像联动. 解决方案二: 直接生成数据在页面,数据量又不大何必用ajax 参考:http://bbs.csdn.net/topics/391070191 解决方案三: 每一项选择的时候请求查询方法返回数据就行了,至于mvc三成架构只是你的项目结构跟着没

login-jsp 弹出登录窗口怎么让它密码输入错误时不做操作

问题描述 jsp 弹出登录窗口怎么让它密码输入错误时不做操作 <script> jQuery(document).ready(function($) { $('.theme-login').click(function(){ $('.theme-popover-mask').fadeIn(100); $('.theme-popover').slideDown(200); }) $('.theme-poptit .close').click(function(){ $('.theme-popov