fre*_*hie 140 asp.net httphandler httpmodule
有人能用不到2句话解释两者之间的区别吗?是的,我知道谷歌可以提供数百个答案但不是一个2个明确的句子:)
mur*_*tgu 305
HttpHandler是请求列车前往的地方.HttpModule是沿途的一个站.
Jon*_*way 199
这两句话:
HttpModule将针对您的应用程序的每个请求执行,无论扩展名如何,并且通常用于安全性,统计信息,日志记录等.
HttpHandler通常与特定扩展相关联,并且用于诸如RSS馈送,动态图像生成或修改等之类的事物.
如果不完全清楚,还有一点解释:
我想到它们的方式 - 模块"插入"到请求管道,而处理程序"处理"特定的文件扩展名.因此,如果您有一个包含LoggingModule和PdfHandler的站点,则两者都将执行请求http://example.com/sample.pdf,并且仅执行日志记录模块以请求http:// example.com/page.aspx.
有一篇关于MSDN差异的非常明确的文章:HTTP处理程序和HTTP模块概述
小智 20
HttpHandler和HttpModule的主要目标是在ASP.NET请求到达IIS服务器之前注入预处理逻辑.
ASP.NET提供了两种在请求管道中注入逻辑的方法;
示例:RSS提要:要为网站创建RSS提要,您可以创建一个发出RSS格式的XML的处理程序.因此,当用户向您的站点发送以.rss结尾的请求时,ASP.NET会调用您的处理程序来处理请求.
创建Handler 1涉及三个步骤.实现IHttpHandler接口.2.在web.config或machine.config文件中注册处理程序.3.将文件扩展名(*.arshad)映射到IIS中的aspnet_isapi.dll.
IHttpHandler接口具有需要实现的ProcessRequest方法和IsReusable属性.ProcessRequest:在此方法中,您编写生成处理程序输出的代码.IsResuable:此属性指示是否可以重用此处理程序.
您可以像这样在web.config文件中注册处理程序
<httpHandlers>
<add verb="*" path="*.arshad" type="namespace.classname, assemblyname" />
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)
注意:这里我们处理任何扩展名为arshad的文件名.
当请求通过请求管道传递时,ASP.NET引擎会发出大量事件.其中一些事件是AuthenticateRequest,AuthorizeRequest,BeginRequest,EndRequest.通过使用HttpModule,您可以在这些事件中编写逻辑.这些逻辑在事件触发时以及请求到达IIS之前执行.
创建模块涉及两个步骤,1.实现IHttpModule接口2.在web.config或machine.config文件中注册模块
示例:安全性:使用HTTP模块,您可以在请求到达IIS之前执行自定义身份验证或其他安全检查.
小智 19
HTTP处理程序是为响应对ASP.NET Web应用程序发出的请求而运行的进程.HTTP模块允许您检查传入和传出请求,并根据请求执行操作.
| 归档时间: |
|
| 查看次数: |
70667 次 |
| 最近记录: |