我理解http处理程序是用于处理请求的,但这只是理论,因为我不太明白。许多第三方控件需要在web.config中添加http处理程序。有时我们需要创建自己的类,其中包含实现IHttpHandler接口的ProcessRequest方法,但我很困惑如何理解Http处理程序的作用和它们的角色?
我理解http处理程序是用于处理请求的,但这只是理论,因为我不太明白。许多第三方控件需要在web.config中添加http处理程序。有时我们需要创建自己的类,其中包含实现IHttpHandler接口的ProcessRequest方法,但我很困惑如何理解Http处理程序的作用和它们的角色?
Http处理程序是ASP.NET的重要组成部分 - 它们是处理请求和生成响应的核心。在WebForms中,通常情况下,一个页面(aspx或者ashx)会解释请求,但这本身就是一种处理程序(默认映射在主web.config文件中)。
如果需要将处理程序添加到配置文件中,则通常是因为应用程序正在动态生成内容以用于URL,而这些URL并没有自动映射到现有的文件,或者是为了对超出常规ASP.NET范围的文件添加一些逻辑。
如果您使用的是ASP.NET MVC,则往往不需要这么做(如果需要也很少),因为请求通常不会直接映射到源树中的aspx/ashx。
回想一下ASP.NET WebForms,我主要使用处理程序的时间是在进行二进制下载、文件导出等操作时,因为我不希望它通过WebForms aspx管道运行。
个人而言,我使用它们来处理所有我的AJAX请求。因为我通常输出XML/JSON,所以我使用一个处理程序,这样我就不必担心实现System.Web.UI.Page时出现的所有开销。
它们还允许您拦截HTTP管道,有时可能很有用。我认为这完全取决于您想要实现什么。
肖恩