【问题标题】:How to easily, transparently, serve gzipped html files to the user's browser?如何轻松、透明地将 gzip 压缩的 html 文件提供给用户的浏览器?
【发布时间】:2010-07-17 00:52:23
【问题描述】:

当用户点击一个链接时,需要得到我的压缩 html 文件,他的浏览器会自动解压缩,没有任何麻烦。我必须在服务器端做什么才能做到这一点?

谢谢!

--本

【问题讨论】:

  • modt 可能的答案是,什么都没有
  • 您是否手动压缩了 HTML 文件?如何?它的文件名是什么?
  • 我手动gzip压缩了html文件:#gzip page.html,出来的是page.html.gz,我把它放到了FF地址栏,但是FF不会显示html。

标签: html compression gzip


【解决方案1】:

我现在从您的评论中看到,您实际上是在尝试让压缩文件在浏览器中透明地打开,而不仅仅是压缩整个 HTTP 响应。

这绝对是 ServerFault 的问题。它依赖于两件事:

  1. HTTP 服务器的配置(它必须能够确定适当的 MIME 类型并将其告知浏览器,对于大多数浏览器而言,仅文件名是不够的)。
  2. 浏览器本身。不要求浏览器能够透明地打开此类文件,但如果提供正确的 MIME 类型信息,许多浏览器会这样做。

(原答案如下)


我几乎说这属于服务器故障,但我认为 SO 需要答案,因为除非你了解工作机制,否则它不属于 SF,所以:

在大多数情况下,压缩 HTTP 响应是 Web 服务器的一项功能,您或您的系统管理员需要配置 Web 服务器(例如带有 mod_deflate 的 Apache)才能使用该功能。

如果您的应用程序是它自己的网络服务器,您需要查看 RFC 2616(HTTP/1.1 规范)和/或您正在使用的任何框架的文档。

如果您将网络服务器用作反向代理,我不确定什么是正确的......如果可能的话,可能仍然需要在网络服务器中。

【讨论】:

  • 啊哈!所以秘诀是 Apache 必须在文件输出时进行压缩?
  • @lcplben:查看更新后的答案。有两种方法可以处理您所追求的,都需要正确配置 Apache 或正在使用的任何其他 HTTP 服务器。
  • 意思是改.htaccess是不够的; httpd.conf 必须修改,我猜。
【解决方案2】:

你在运行什么服务器?

如果你有Apache,可以设置mod_deflate

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
相关资源
最近更新 更多