Http 对于以GB为单位的文件大小,选择什么应用程序/x-www-form-urlencoded/multipart/form data?

Http 对于以GB为单位的文件大小,选择什么应用程序/x-www-form-urlencoded/multipart/form data?,http,post,http-headers,url-encoding,Http,Post,Http Headers,Url Encoding,我正在以application/x-www-form-urlencoded的形式通过httppost发送一些视频文件(大小甚至可以是GB) 下面的链接表明,当我们有非字母数字内容时,最好通过多部分表单数据传输它 哪种编码更适合传输此类数据 另外,如何查找编码数据的长度(使用application/x-www-form-urlencoded编码的数据) 编码二进制数据会花费很多时间吗 通常,编码会跳过非字母数字字符和其他字符。那么,我们可以跳过二进制数据(如视频)的编码吗?我们怎么能跳过呢 x-w

我正在以
application/x-www-form-urlencoded
的形式通过
httppost
发送一些视频文件(大小甚至可以是GB)

下面的链接表明,当我们有非字母数字内容时,最好通过多部分表单数据传输它

  • 哪种编码更适合传输此类数据

  • 另外,如何查找编码数据的长度(使用
    application/x-www-form-urlencoded
    编码的数据)

  • 编码二进制数据会花费很多时间吗

  • 通常,编码会跳过非字母数字字符和其他字符。那么,我们可以跳过二进制数据(如视频)的编码吗?我们怎么能跳过呢


  • x-www-form-urlencoded
    将表单数据集中条目的值视为字节序列(八位字节)。
    在可能的256个值中,只有66个保持原样或仍编码为单字节值,其他值由其代码点值的十六进制表示形式替换。 这通常需要三到五个字节,具体取决于编码。
    因此,平均(256-66)/256或74%的文件将被编码为占用原来的三到五个空间。 然而,这种编码既没有头,也没有显著的开销

    多部分/表单数据
    的工作原理是将数据分成多个部分,然后找到一个长度不在该部分中的字符串。
    这样的字符串称为边界,用于限定作为八字节流传输的部分的结尾。
    因此,文件大部分是按原样发送的,对于足够大的数据,其大小开销可以忽略不计

    退一步说,用户代理需要找到合适的边界,但是给定长度为k的字符串,在统一生成的二进制文件中找到该字符串的概率只有2-8k。
    因此,用户代理可以简单地生成一个随机字符串并进行快速搜索,并利用网络传输时间隐藏搜索延迟


  • 您应该使用
    多部分/表单数据
  • 这取决于您使用的平台,一般来说,如果您无法访问请求主体,您必须自己重新执行编码
  • 对于
    多部分/表单数据
    编码,有一点开销,通常可以忽略不计(与传输时间相比)
    x-www-form-urlencoded
    将表单数据集中条目的值视为字节序列(八位字节)。
    在可能的256个值中,只有66个保持原样或仍编码为单字节值,其他值由其代码点值的十六进制表示形式替换。 这通常需要三到五个字节,具体取决于编码。
    因此,平均(256-66)/256或74%的文件将被编码为占用原来的三到五个空间。 然而,这种编码既没有头,也没有显著的开销

    多部分/表单数据
    的工作原理是将数据分成多个部分,然后找到一个长度不在该部分中的字符串。
    这样的字符串称为边界,用于限定作为八字节流传输的部分的结尾。
    因此,文件大部分是按原样发送的,对于足够大的数据,其大小开销可以忽略不计

    退一步说,用户代理需要找到合适的边界,但是给定长度为k的字符串,在统一生成的二进制文件中找到该字符串的概率只有2-8k。
    因此,用户代理可以简单地生成一个随机字符串并进行快速搜索,并利用网络传输时间隐藏搜索延迟


  • 您应该使用
    多部分/表单数据
  • 这取决于您使用的平台,一般来说,如果您无法访问请求主体,您必须自己重新执行编码
  • 对于
    多部分/表单数据
    编码,有一点开销,通常可以忽略不计(与传输时间相比)
    多部分/表单数据中
    不会。在
    多部分/表单数据中
    不会。