问题标签 [http-compression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
278 浏览

compression - 有什么理由不通过 HTTP 交付 gzip 文件?

我记得有人告诉我 gzip 压缩的内容没有缓存在某些浏览器上?这是真的?

是否有任何其他原因我不应该使用 htaccess 压缩我的内容(页面、javascript 和 css 文件)?

0 投票
1 回答
1639 浏览

asp-classic - 如何从 ASP 解压缩/膨胀 XML 响应

任何人都可以提供一些关于我将如何在经典 ASP 中解压缩 XML 响应的见解。我们已经收到了一些代码并要求让它工作:

显然,现在响应是使用 gzip 压缩的,我们必须先解压缩 XML 响应,然后才能开始处理数据。

我该怎么办?

0 投票
2 回答
2663 浏览

iis-7 - iis7上的gzip http压缩问题

我的网络托管服务提供商正在运行 IIS7,我在让 gzip 压缩正常工作时遇到了很多麻烦。主机管理员说压缩已安装。我可以使用一些在线检查服务确认压缩,但不能使用其他服务。PageSpeed Firefox 附加组件还表示该站点未压缩。我个人坐在 Squid 代理后面,但 web.config 设置应该处理代理问题。下面是相关的 web.config 片段。其中大部分是从各个网站借来的。有什么想法吗?

0 投票
3 回答
6646 浏览

gzip - 浏览器发送但服务器未接收到的 Accept-Encoding 标头

我已经尝试调试这个好几个星期了。我家庭网络上所有客户端上的所有浏览器都在发送“Accept-Encoding: gzip,deflate”。但是,该标头以某种方式在请求到达 Web 服务器之前被丢弃。例如, http: //www.whatsmyip.org/http_compression/表示“不,您的浏览器没有请求压缩内容”。

我已经使用 Fiddler 来确保我的所有浏览器确实都在发送标头。我已经换了我的路由器。我已经关闭了所有的杀毒软件。

Brighthouse/Roadrunner(本地有线电视 ISP)说他们没有进行任何过滤(我不明白他们为什么会在这种情况下这样做)。

任何建议都将受到欢迎!

0 投票
8 回答
12022 浏览

wcf - 使用 IIS7 上托管的 WCF 进行 GZip 压缩

每个人,就我而言,这个问题在 EDIT 2 中得到了解决。虽然这只是问题的 IIS 方面的部分解决方案,但它正是我所寻找的。


因此,我将把我的查询添加到有关该主题的大量问题中。

我正在尝试对来自 WCF 服务的大型肥皂响应启用 GZip 压缩。到目前为止,我已按照此处和其他各种地方的说明在 IIS 上启用动态压缩。这是我在 applicationHost.config 中的 dynamicTypes 部分:

并且:

虽然我不太清楚为什么需要这样做。

以防万一,在其中添加了一些额外的 mime 类型。我已经实现了 IClientMessageInspector 来添加 Accept-Encoding: gzip, deflate 到我客户的 HttpRequests。这是取自 fiddler 的请求标头示例:

现在,这行不通。无论消息大小如何(尝试最大为 1.5Mb),都不会发生压缩。我看过这篇文章,但没有遇到他描述的异常,所以我没有尝试过他提出的 CodeProject 实现。此外,我还看到了很多其他的实现,它们应该可以让它工作,但无法理解它们(例如,msdn 的 GZip 编码器)。为什么我需要实现编码器或代码项目解决方案?IIS 不应该负责压缩吗?

那么我还需要做什么才能使其正常工作?

乔尼

编辑:我认为 WCF 绑定可能值得发布,但我不确定它们是否相关(这些来自客户端):

编辑2:对于处于这种神秘情况的其他人,我有一个部分解决方案。即,我已经让 IIS7 至少压缩了来自服务的肥皂消息(尽管我现在在客户端上遇到了一个异常,但是已经发布了几个解决方案)。问题是我的服务器上没有安装 DynamicCompressionModule。对我来说,“安装”它实际上意味着只需将这一行添加到 applicationHost.config 的部分:

(假设 dll 存在于该目录中,在我的情况下它确实存在。)然后通过 IIS7 的 Modules 部分为网站或服务器添加模块。

0 投票
6 回答
20336 浏览

json - 如何在 Windows Azure 动态内容上启用 gzip HTTP 压缩

我一直在尝试在我的 Windows Azure 托管的 WCF Restful 服务上启用 gzip HTTP 压缩但未成功,该服务仅从 GET 和 POST 请求返回 JSON。

我已经尝试了很多事情,以至于我很难将它们全部列出来,现在我意识到我一直在处理相互冲突的信息(关于旧版本的 azure 等),所以认为最好从一个干净的状态开始!

我正在使用 Visual Studio 2008,使用 Visual Studio 的 2010 年 2 月工具。

所以,根据以下链接..

.. HTTP 压缩现已启用。我使用了下一页的建议(仅限 URL 压缩建议)..

http://blog.smarx.com/posts/iis-compression-in-windows-azure

..但我没有压缩。我不知道urlCompressionhttpCompression之间有什么区别,这无济于事。我试图找出答案,但无济于事!

Visual Studio 的工具是在支持压缩的 Azure 版本之前发布的,这可能是个问题吗?我在某处读到,使用最新的工具,您可以在发布时选择要使用的 Azure OS 版本……但我不知道这是不是真的,如果是,我找不到在哪里选择。我可以使用启用 http 的版本吗?

我也尝试过bloery http压缩模块,但没有结果。

有没有人对如何实现这一目标有任何最新的建议?即与当前版本的 Azure OS 相关的建议。

干杯!

史蒂文

更新:我编辑了上面的代码来修复 web.config 片段中的类型。

更新 2:使用下面答案中显示的whatsmyip URL 测试响应显示我的 service.svc 的 JSON 响应在没有任何压缩的情况下返回,但静态 HTML 页面正在通过 gzip 压缩返回。我们将不胜感激地收到有关如何获取 JSON 响应以进行压缩的任何建议!

更新 3:尝试了大于 256KB 的 JSON 响应,以查看问题是否是由于 JSON 响应小于此值,如下面的评论中所述。不幸的是,响应仍未压缩。

0 投票
2 回答
389 浏览

http - 使用 gzip 进行 HTTP 压缩的可靠性如何?

YSlow 建议我使用 HTTP 压缩来提高我网站的性能。然而,正如雅虎所指出的那样,存在一些问题。

浏览器和代理存在已知问题,这些问题可能会导致浏览器所期望的内容与它接收到的压缩内容不匹配。幸运的是,随着旧浏览器的使用减少,这些边缘情况正在减少。Apache 模块通过自动添加适当的 Vary 响应标头来提供帮助。

我知道最常见的问题发生在代理后面的 IE6 上。但今天这些问题有多普遍?为了量化它,大约有多少百分比的 Web 用户遇到 HTTP 压缩错误?

0 投票
1 回答
1102 浏览

apache - 如何在 Apache 中启用 HTTP 压缩?

使用 .htaccess 配置 Apache 以启用 CSS 和 JS 文件的 HTTP 压缩的推荐方法是什么?我在网上的示例中看到了几种不同的指令。我已经尝试了其中的一些,但我无法让它工作。我正在使用 Firebug 检查 HTTP 标头。

0 投票
4 回答
1274 浏览

php - 如何在这些 Yslow 规则中获得 A 级?

  • 使用内容交付网络 (CDN)

  • 使用 gzip 压缩组件

  • 配置实体标签 (ETags)

  • 添加过期标头

如果我无权访问 Apache 配置。

0 投票
4 回答
16544 浏览

iphone - 使用GZIP或deflate在objective-c(iphone)中压缩/解压缩NSString

我在 Windows Azure 上运行了一个 Web 服务,它返回我在 iPhone 应用程序中使用的 JSON。

不幸的是,Windows Azure 似乎还不支持动态响应的压缩(说来话长),所以我决定通过返回一个未压缩的 JSON 包来解决它,该包包含一个压缩(使用 GZIP)字符串。

例如

... 其中 value 是以 JSON 表示的复杂对象的压缩字符串。

这在服务器上很容易实现,但是对于我来说,我无法弄清楚如何将 gzip 压缩的 NSString 解压缩为未压缩的 NSString,我可以找到的 zlib 等所有示例都在处理文件等。

谁能给我有关如何执行此操作的任何线索?(我也很高兴使用 deflate 的解决方案,因为我可以将服务器端实现更改为也使用 deflate)。

谢谢!!

史蒂文

编辑 1:啊,我看到 ASIHTTPRequest 在其源代码中使用了以下函数:

...而且我知道我可以将 NSString 转换为 NSData,所以我会看看这是否会引导我到任何地方!

编辑 2:不幸的是,编辑 1 中描述的方法并没有引导我到任何地方。

编辑 3:按照以下关于 base64 编码/解码的建议,我想出了以下代码。你可以猜到,encodedGzippedString 是一个字符串“你好,我的名字是 Steven Elliott”,它被 gzip 压缩,然后转换为 base64 字符串。不幸的是,使用 NSLog 打印的结果只是空白。