【问题标题】:How to use gzip Content-Encoding in plain text upload?如何在纯文本上传中使用 gzip Content-Encoding?
【发布时间】:2013-09-09 04:37:04
【问题描述】:

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

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

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

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

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

编辑

和服务器端的解压处理会增加负担
到已经很忙的服务器。

改写

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

信息

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

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

Compressing HTTP Post Data sent from browser

有些人甚至没有回答:

Implement http compression for post data

【问题讨论】:

    标签: c# asp.net http-post content-encoding


    【解决方案1】:

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

    使用 gzip 下载会更糟糕,通常压缩比解压缩更占用处理器资源。

    没有办法神奇地强制使用 gzip 进行上传,即使您确实管理了它,解压缩也将始终由您说不想要的服务器完成。

    在我看来,您的解决方案根本无法满足您的服务要求。您可能要么不得不忍受它,要么面临某种升级。

    【讨论】:

    • 主要问题是用户范围内的慢速连接,有限的带宽配额使得客户端浏览器和服务器之间的大量数据传输会阻塞处理传入数据的服务器响应。服务端 gzip 压缩/解压是可以接受的,以减少双方网络带宽的使用,而客户端主要是为了节省客户端时间和数据配额使用。
    • 似乎我已经关闭了可能的解决方案,在任何人都可以提供之前。 :)
    猜你喜欢
    • 2010-10-27
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2021-10-20
    相关资源
    最近更新 更多