我正在评估 ASP.NET Core 应用程序的各种托管选项。在 ASP.NET 的新编程模型中,您使用一组中间件(它们是旧的IHttpModule
&的混合体IHttpHandler
)处理请求。
您可以拥有一个中间件,它可以负责身份验证、处理静态文件或在发送之前压缩响应(仅举几例)。混乱来了。
在责任范围内,在哪里设置服务器和应用程序之间的边界?
哪一方应该负责压缩响应?使用 IIS,这由服务器处理并在 web.config 中进行配置。Kestrel 不提供此功能 AFAIK,因此您需要在应用程序中实现一个自定义中间件,该中间件将为您处理此问题。哪一个更合适?
认证呢?IIS 提供身份验证设置(匿名、模拟、表单身份验证)。相反,在 ASP.NET Core 中,我们也可以编写一个应用程序中间件来为我们处理这个问题。
好的,SSL由服务器处理,因为它位于协议层的下方,并且应用程序仅在 HTTP(S) 上运行。
服务器应该承担什么责任?一个应用程序应该有什么责任?