【问题标题】:pako.deflate not reducing the size of my requestpako.deflate 没有减少我的请求的大小
【发布时间】:2019-11-14 03:44:15
【问题描述】:

我有一个负载很大的 POST 请求。在向服务器发出请求之前,我试图用 pako 对其进行放气,以使其更小。但是,我的有效载荷大小对于压缩版本与未压缩版本没有什么不同。我错过了什么吗?

我发送的选项有一个options.body,即JSON.stringify(largeJsonObject),长度超过1024。当我查看网络选项卡时,我可以看到我的请求正在发送,并且内容已被编码,但请求大小与未压缩时相同


  async fetch(path, options) {
    const headers = {
      Accept: 'application/json',
      'Content-Type': 'application/json',
    }

    if (
      options.method === 'POST' &&
      options.body &&
      options.body.length > 1024
    ) {
      headers['Content-Encoding'] = 'deflate'
      options.body = pako.deflate(options.body)
    }

    if (this.loggedIn()) {
      headers['Authorization'] = 'Bearer ' + this.getToken()
      if (this.willTokenExpireSoon()) {
        await this.refreshToken()
      }
    }

    return fetch(process.env.REACT_APP_API_HOST + path, {
      headers,
      ...options,
    }).then(this._checkStatus)
  }

【问题讨论】:

    标签: javascript compression deflate pako


    【解决方案1】:

    这是一个 PICNIC 错误(椅子上的问题而不是计算机上的问题)。我的服务器正在处理 POST 请求,保存一些数据,然后将未压缩的对象返回给客户端。这就是网络选项卡显示请求大小相同的原因 - 请求中的有效负载较小,但响应正文仍然很大

    为了解决这个问题,我还在我的服务器中添加了 pako.deflate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      相关资源
      最近更新 更多