如何轻松、透明地将 gzip 压缩的 html 文件提供给用户的浏览器?

发布于 2024-09-10 10:00:44 字数 98 浏览 4 评论 0原文

用户单击链接时,需要获取我的压缩 html 文件,他的浏览器将自动解压缩该文件,无需任何麻烦。我必须在服务器端做什么才能完成此任务?

谢谢!

——本

The user, when he clicks a link, needs to get my compressed html file that his browser will uncompress automatically, without any fuss. What must I do on the server side to accomplish this?

Thanks!

-- ben

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月棠 2024-09-17 10:00:44

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

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

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

(原始答案如下)


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

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

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

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

I see now from your comment that you're literally trying to get compressed file to open transparently in a browser, not just compress the whole HTTP response.

That is definitely an issue for ServerFault. It relies on two things:

  1. The configuration of your HTTP server (it must be able to determine the appropriate MIME type and tell it to the browser, for most browsers the filename alone is not sufficient).
  2. The browser itself. There's no requirement that browsers be able to transparently open such a file, though many will if given the proper MIME type information.

(Original answer below)


I almost said this belongs on Server Fault, but I think the answer is needed on SO because it's not obvious it belongs on SF unless you understand the mechanisms at work, so:

In most cases, compressing HTTP responses is a capability of web servers, and you or your sysadmin will need to configure the web server (e.g. Apache with mod_deflate) to use that capability.

In the event that your application is its own web server, you need to review RFC 2616 (the HTTP/1.1 spec) and/or the documentation for any framework you're using.

I'm not exactly sure what the right thing is if you're using the webserver like as a reverse proxy... Probably still needs to be in the webserver, if it's possible at all.

灼疼热情 2024-09-17 10:00:44

你运行什么服务器?

如果您有 Apache,则可以设置 mod_deflate

What server are you running?

If you have Apache, you can set up mod_deflate

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文