问题标签 [content-encoding]

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 投票
2 回答
87692 浏览

http - 传输编码:gzip 与内容编码:gzip

在是否要做的问题上,目前的情况是什么

或一个

当我想让带宽有限的客户端表示他们愿意接受压缩响应时,服务器拥有是否压缩的最终决定权

后者是例如 Apache 的 mod_deflate 和 IIS 所做的,如果您让它负责压缩。根据要压缩的内容的大小,它会做额外的Transfer-Encoding: chunked.

它还将包括一个Vary: Accept-Encoding,它已经暗示了问题。Content-Encoding似乎是实体的一部分,因此更改Content-Encoding数量等于实体的更改,即不同的Accept-Encoding标头意味着例如缓存不能使用其缓存版本的其他相同实体。

是否有一个我错过的明确答案(并且没有隐藏在某些 apache 新闻组的长线程中的消息中)?

我现在的印象是:

  • Transfer-Encoding 实际上是现有服务器和客户端实现通过 Content-Encoding 完成大部分工作的正确方法
  • ETag内容编码,因为它的语义含义,带来了几个问题(当它透明地压缩响应时,服务器应该做什么?)
  • 原因很简单:浏览器不支持它,因为服务器不支持,因为浏览器不支持

所以我假设正确的方法是 a Transfer-Encoding: gzip(或者,如果我另外分块身体,它会变成 Transfer-Encoding: gzip, chunked)。在这种情况下,没有理由触摸VaryETag任何其他标题,因为它是传输级别的东西。

现在我不太关心 的“逐跳”性Transfer-Encoding,其他人似乎首先关心的是,因为代理可能会解压缩并将未压缩的转发给客户端。但是,如果原始请求具有正确的标头,代理也可以按原样(压缩)转发它,Accept-Encoding在我知道的所有浏览器的情况下都是给定的。

顺便说一句,这个问题至少有十年的历史了,参见例如 https://bugzilla.mozilla.org/show_bug.cgi?id=68517

对此的任何澄清将不胜感激。无论是在什么被认为符合标准和什么被认为是实用方面。例如,仅支持透明“内容编码”的 HTTP 客户端库将成为反对实用性的论据。

0 投票
3 回答
456 浏览

java - GunzipOutputStream - 或类似的东西 - 是否存在?

处理 HTTP ContentEncoding "deflate"相关,我想知道如何使用 anOutputStream来膨胀gzipdeflate流。原因如下:

我有一个从 Web 服务器获取资源的类(想想wget,但在 Java 中)。我有它严格执行响应的内容长度,我想保持这种执行。所以,我想做的是从响应中读取特定数量的字节(我已经在这样做了),但是如果响应已被压缩,它会生成更多字节。

我有这样的deflate回应:

我希望能够对gzip响应做同样的事情,但是如果没有 GunzipOutputStream,我不确定下一步该做什么。

更新

我正在考虑构建这样的东西但它似乎完全疯了。也许这是使用 anOutputStream来膨胀我的数据的唯一方法。

0 投票
1 回答
3626 浏览

http - 带有“Content-Encoding: gzip”的 Http 响应,但内容未压缩

我有一个关于 gzip 的问题。假设服务器添加了“Content-Encoding: gzip”标头。但是,实际内容没有被压缩(假设压缩失败并且它正在发送没有压缩的数据)。这会产生什么影响?http 客户端(尤其是浏览器)将如何处理这个问题?

谢谢,纳伦德拉

0 投票
2 回答
1933 浏览

html - 如何在 HTML 文件中设置内容编码

我想对我的网站使用 GZIP 编码以及应该如何使用 . 我将html 文件的内容编码gzip设置为.

T试过这样

我正在使用 Apache Tomcat Web 服务器。

0 投票
1 回答
15910 浏览

http - HTTP 内容编码,base64

有什么方法可以知道 HTTP 响应的消息正文是否使用 Base64 编码?

我了解到内容传输编码不是 HTTP 标头的一部分。

那么,哪个 HTTP 标头表明内容是使用 Base64 编码的?我认为内容编码仅用于压缩。

0 投票
3 回答
3588 浏览

java - 服务器生成的图像文件损坏/不正确

我正在使用 Jersey (ver 1.9.1) 为 png 图像实现 RESTful Web 服务。我在客户端使用 Apache HttpClient(版本 4x)。客户端的代码调用 HttpGet 来下载图像。成功下载后,它将 InputStream 从 HttpEntity 保存到磁盘。现在问题是生成的文件和服务器上的文件不同。客户端代码生成的输出图像文件不可渲染。

下面我的客户端代码调用上面的资源方法

现在的问题是服务器上存在文件和下载的文件不同。

以下是服务器上存在的文件转储。

在服务器上转储文件

下面是下载文件的转储。

将文件转储到客户端

你可以看到,一些字节被改变了。Jersey 服务器 api 是否从文件中修改流中的数据?出了什么问题?

更新:

如果我从浏览器点击相同的 url,它会下载文件但下载的文件不可见。所以这个问题似乎与服务器有关。

0 投票
1 回答
1050 浏览

tomcat - 响应标头中没有内容编码

/Tomcat 6.0/conf 中的 server.xml 文件如下所示。

我参考了很多网站。所有人都在说同样的话。我也这样做过。但是为什么我不能做出想要的输出。gzip 不工作。响应标头中没有内容编码。我错过了什么?

0 投票
1 回答
3606 浏览

java - 上传到 S3 时如何设置内容类型和内容编码?

我正在将一些文件上传到 S3 存储桶。一个 zip 文件,一个 .json 文件。

当我上传它们时,两个文件都将具有:

我需要 zip 文件:

我必须做些什么来确保这些文件以所需的类型/编码上传?

下面是我的一些代码:

保存文件:

上传文件:

我要完成的工作:

我正在开发自动建议功能。如果我上传纯 json 文件,它会超过 1.5MB,这太可怕了。所以接下来最好的事情是上传 ZIP 文件(它将文件减少到 300kb,不错)然后当用户加载页面时,浏览器应该解压缩。某些原因仅将内容类型/编码设置为那些指定的作品,其他一切都失败了。

0 投票
2 回答
5905 浏览

internet-explorer - 我们如何验证 gzip/deflate 压缩是否在 IE 浏览器中有效?

在我们的 Apache Web 服务器中,我们启用了 deflate 压缩。这提高了我们网站的速度。我们可以通过查看值“Content-Encoding: gzip”来验证在 IE 以外的浏览器中的这种放气压缩。我们使用了像 firebug 这样的工具来识别这个内容编码值。

我们很高兴看到内容大小是如何减小的。

问题是:我们想在 IE 中使用 IE Web 开发者工具 (F12) 进行验证。但是我们无法验证,因为内容编码密钥根本没有出现在那里。

我们如何验证 gzip/deflate 压缩是否在 IE 浏览器中有效?

更新:

我从以下链接了解到,即使处理 gzip 压缩的内容,IE 开发人员工具也不会显示。

http://blogs.msdn.com/b/kaushal/archive/2012/07/23/i-don-t-see-content-encoding-header-in-ie-http-debugger-f12-developer-tools。 aspx

0 投票
1 回答
1522 浏览

c# - 如何在纯文本上传中使用 gzip Content-Encoding?

我有一种情况,
用户需要下载大文本文件 (1-15 MB) CSV 文件
,该文件在使用 Excel 编辑后, 使用 Web 浏览器在同一页面中按原样
(编辑后的 ​​CSV)重新上传到站点。

申请下载的gzip编码
和发送给用户的内容是gzip压缩的(通过firebug看到)

问题是 当用户重新上传编辑过的文件时,
它以非压缩文本的形式传输(是吗?)。 当执行并发上传/下载时,
有限的用户带宽(大约 50-128 KBps 上传)
和相当大的用户群(超过 100 个并发用户)
将迫使站点性能下降(超过一分钟的响应时间) 。

问题: 如何让客户端浏览器 在后台
使用 gzip 内容编码和压缩通过 HTTP Post 发送文件上传?

我们可以在上传前指导用户压缩文件,
但鉴于可以生成各种存档文件格式
并且为用户添加步骤使得采用“存档”不是一个可行的选择,

编辑

并且服务器端的解压处理会给
已经很忙的服务器增加负担。

改写

而各种格式的服务器端解压逻辑
会增加服务器端代码的复杂性。 由于使用压缩减少了传输时间和带宽使用,
解压缩负担本身是可以接受的。

信息

  • 服务器:IIS
  • 使用 ASP.NET MVC 3、
    Visual Studio 2010 C# 4.0、
    DevExpress 12 MVC 扩展、
    UploadControl 组件制作

类似的问题没有得到想要的答案:

压缩从浏览器发送的 HTTP Post 数据

有些人甚至没有回答:

为 post 数据实现 http 压缩