使用multipart / form-data进行Gzip内容编码

时间:2017-12-16 16:02:16

标签: rest http

如果帖子正在使用" multipart / form-data" content-type,每个部分可以是文件或其他内容类型。

如果我想使用GZIP,GZIP是否应该完全适用于所有部分的整个帖子主体,或者是否可以选择某些文件使用gzip内容编码而某些文件不是。

是否有任何标准或只是常规做法?

由于

例如,我可以在下面添加内容编码:gzip' file1'部分

Host: localhost:8081
Connection: keep-alive
Content-Length: 317
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Cache-Control: no-cache
Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
Postman-Token: 7143164d-0da5-0e1d-112e-91f2a21c22c2
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryPZAv0gGlJrA4ABu2
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7

------WebKitFormBoundaryPZAv0gGlJrA4ABu2
Content-Disposition: form-data; name="key1"

value1
------WebKitFormBoundaryPZAv0gGlJrA4ABu2
Content-Disposition: form-data; name="file1"; filename="sample_file.txt"
Content-Type: text/plain
Content-Encoding: gzip ---------------------------IS IT OK TO ADD GZIP HERE?

This is a sample file content!
------WebKitFormBoundaryPZAv0gGlJrA4ABu2--

2 个答案:

答案 0 :(得分:2)

如果指定“Content-Encoding:gzip”,它将应用于完整响应。

我认为没有办法将压缩应用于各个部分。

答案 1 :(得分:0)

要么对整个消息应用 Content-Encoding 压缩(端到端),要么在传输层压缩负载,Transfer-Encoding(可能是逐跳)。你不能做的是压缩每个部分。

<块引用>

multipart/form-data 媒体类型不支持任何 MIME 头 除 Content-Type、Content-Disposition 和(在 有限的情况)内容传输编码。 其他标题 不得包含且必须忽略字段。

强调我的。来源:https://tools.ietf.org/html/rfc7578#section-4.8