pako.deflate 没有减少我的请求的大小
pako.deflate not reducing the size of my request
我有一个 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)
}
这是一个 PICNIC 错误(椅子上的问题,而不是计算机上的问题)。我的服务器正在处理 POST 请求,保存一些数据,然后 将未压缩的对象返回给客户端 。这就是网络选项卡显示请求大小相同的原因 - 请求中的有效负载较小,但响应主体仍然很大
为了解决这个问题,我在我的服务器中也添加了pako.deflate
我有一个 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)
}
这是一个 PICNIC 错误(椅子上的问题,而不是计算机上的问题)。我的服务器正在处理 POST 请求,保存一些数据,然后 将未压缩的对象返回给客户端 。这就是网络选项卡显示请求大小相同的原因 - 请求中的有效负载较小,但响应主体仍然很大
为了解决这个问题,我在我的服务器中也添加了pako.deflate