Asp.net HTTP处理程序与HTTP模块
有人能用不到两句话解释两者的区别吗?是的,我知道谷歌可以提供数百个答案,但不是每两个清晰的句子中就有一个:)这两个句子: HttpModule将对应用程序的每个请求执行,而不考虑扩展,通常用于安全性、统计信息、日志记录等 HttpHandler通常与特定扩展相关联,用于RSS提要、动态图像生成或修改等 如果不完全清楚的话,再解释一下: 我对它们的看法是:模块“插入”到请求管道,而处理程序“处理”特定的文件扩展名。因此,如果您有一个带有LoggingModule和PdfHandler的站点,那么这两个模块都将执行对的请求,而日志模块将单独执行对的请求Asp.net HTTP处理程序与HTTP模块,asp.net,httphandler,httpmodule,Asp.net,Httphandler,Httpmodule,有人能用不到两句话解释两者的区别吗?是的,我知道谷歌可以提供数百个答案,但不是每两个清晰的句子中就有一个:)这两个句子: HttpModule将对应用程序的每个请求执行,而不考虑扩展,通常用于安全性、统计信息、日志记录等 HttpHandler通常与特定扩展相关联,用于RSS提要、动态图像生成或修改等 如果不完全清楚的话,再解释一下: 我对它们的看法是:模块“插入”到请求管道,而处理程序“处理”特定的文件扩展名。因此,如果您有一个带有LoggingModule和PdfHandler的站点,那么这
MSDN上有一篇关于差异的非常明确的文章:HttpHandler是请求序列的出发点。HttpModule是一个站点。HTTP处理程序是响应向ASP.NET Web应用程序发出的请求而运行的进程。
HTTP模块允许您检查传入和传出的请求,并根据请求采取操作。HTTP处理程序是根据设置进行实际编译的地方。例如,如果页面扩展名为.aspx,则它将通过system.web.Ui.Pagahandlefactory进行编译。一旦在HTTP上完成编译,句柄请求将通过HTTP模块和IIS。关于它的文章很好 参考:信息:ASP.NET HTTP模块和HTTP处理程序概述
“在处理程序执行前后调用模块。模块使开发人员能够拦截、参与或修改每个请求。处理程序用于处理单个端点请求。处理程序使ASP.NET Framework能够处理应用程序中的单个HTTP URL或URL扩展组。与模块不同,o只有一个处理程序用于处理请求。当HttpModule响应应用程序生命周期事件时,HttpHandler负责通过扩展处理http请求。HttpHandler和HttpModule的主要共同目标是在ASP.NET请求到达IIS服务器之前注入预处理逻辑 NET提供了两种在请求管道中注入逻辑的方法
<httpHandlers>
<add verb="*" path="*.arshad" type="namespace.classname, assemblyname" />
</httpHandlers>
注意:这里我们处理扩展名为arshad的任何文件名
HTTP处理程序是响应HTTP请求运行的进程。因此每当用户请求文件时,它会根据扩展名由处理程序处理。因此,当需要基于文件扩展名进行特殊处理时,创建自定义HTTP处理程序。让我们考虑一个示例来创建站点的RSS。因此,创建一个更通用的处理程序。ates RSS格式的XML。现在将.RSS扩展名绑定到自定义处理程序
HTTP模块 HTTP模块插入到请求的生命周期中。因此,当处理请求时,它将通过请求管道中的所有模块。因此,通常HTTP模块用于: 安全性:用于在处理请求之前对请求进行身份验证 统计信息和日志记录:由于每个请求都会调用模块,因此可以使用模块收集统计信息和日志记录信息自定义标题:由于响应可以修改,因此可以向响应中添加自定义标题信息。在每次请求之前运行一些代码的上下文中。+1表示“是的,我知道我可以用谷歌搜索它”。“少于两句话。”比如,一句话?好的,如果我想在每个.aspx文件的请求上运行一些代码,我就实现一个处理程序,如果我想在每个请求上运行一些代码,不管请求的文件类型如何,我就实现一个模块。是吗?@frenchie-不是,aspx页面是在HttpHandlers之上构建的,为您提供页面生命周期。Think作为aspx页面,cu