ASP.NET App提供图像的最佳方式:使用httphandler或静态资源

时间:2012-05-31 10:31:13

标签: asp.net iis

在我们的网络服务器上,我们希望提供可在HTML元素中使用的网址,以显示用户个人资料图片。

我可以通过两种方式做到这一点:

  • 将图像作为静态资源放在Web服务器上:mysite.com/user1.jpg
  • 实施IHttpHandler:mysite.com/images?userid=1

一种方法比另一种方法有什么好处吗?

3 个答案:

答案 0 :(得分:4)

不通过ASP.NET处理图像,但让IIS作为静态内容处理它们并完全绕过ASP.NET管道将是最快的。

除了需要代码之外,实现HttpHandler还需要涉及ASP.NET管道 - 这需要从服务器获取更多资源。

基本上,如果内容是静态的,那么让它是静态的,让IIS处理它。

答案 1 :(得分:2)

虽然允许IIS处理图像会更容易,但这取决于您是否要在发送文件时压缩文件?

某些版本的IIS支持GZIP压缩,因此意味着您可以在IIS为其提供服务时压缩文件,但是,旧版本的IIS可能不会,这意味着如果您需要压缩文件,则必须使用HTTPHandler或类似的压缩和服务他们。

答案 2 :(得分:2)

让IIS处理它们。从处理程序提供图像可能会占用大量资源。 除非绝对必要,否则不要这样做。

如果您的网站有很多图片,这意味着要处理许多额外的Asp.net请求。 每个请求的Asp.net需要的资源远远超过IIS推出静态文件所需的资源。