rm *_*tar 1 post http url-encoding http-headers
我送了一些视频文件(大小可即使在GB)为application/x-www-form-urlencoded过HTTP POST。
下面链接的链接表明,这将是更好的传输过来多重表单数据时,我们有非字母数字内容。
哪种编码会更好地传输此类数据?
另外,如何找到编码数据的长度(使用编码的数据application/x-www-form-urlencoded)?
编码二进制数据会消耗很多时间吗?
通常,编码会跳过其他一些非字母数字字符。那么,我们可以跳过对二进制数据(例如视频)的编码吗?我们如何跳过呢?
x-www-form-urlencoded将表单数据集中的条目值视为字节序列(八位字节)。
在可能的256个值中,仅保留了66个或仍被编码为单个字节值,其他值则用其代码点值的十六进制表示代替。这通常需要三到五个字节,具体取决于编码。
因此,平均(256-66)/ 256或74%的文件将被编码为占用原始空间的三到五个。但是,此编码没有标题,也没有明显的开销。
multipart/form-data而是通过将数据划分为多个部分,然后找到该部分中没有出现的任何长度的字符串来工作。
这样的字符串称为边界,它用于界定零件的末端,该末端以八边形流传输。
因此,文件通常是按其原样发送的,对于足够大的数据,大小开销可以忽略不计。
缺点是用户代理需要找到合适的边界,但是给定长度为k的字符串,在统一生成的二进制文件中找到该字符串的可能性只有2 -8k。
因此,用户代理可以简单地生成随机字符串并进行快速搜索,并利用网络传输时间来隐藏搜索的延迟。
multipart/form-data。multipart/form-data编码,有少量的开销(通常与传输时间相比)可以忽略不计。