URL是否可以在GET请求中包含任意二进制数据?

时间:2017-10-26 04:57:55

标签: http url networking web

  

网址是否包含GET请求中的原始二进制数据?

是否可以创建一个网址www.example.com/**binary-data**,其中www.example.com/是普通的ASCII字符,**binary-data**是任意原始字节值,例如0x10。< / p>

我不会对二进制数据进行编码,只是创建一个字符串,例如C中的char*,其中包含ASCII字符和二进制数据。

或者POST请求是将原始二进制数据作为正文的一部分发送的唯一方法吗?

2 个答案:

答案 0 :(得分:1)

不,但可以百分比转义非URI字符。

答案 1 :(得分:0)

没有。在HTTP GET请求中传输的URL是经过百分比编码的UTF-8编码的Unicode文本(产生“ASCII”字符串)。

同样,它是Unicode文本。

Unicode编码不会产生任意二进制数据。某些任意二进制数据没有等效文本。

远离“原始”,服务器和请求当然可以同意使用诸如Base64之类的方案将任意二进制数据转换为Unicode文本。但是,到那时,您也可以使用带有正文的HTTP请求,尽管就HTTP而言,正文是原始二进制数据,但HTTP标头可以指示标准格式。这些请求包括POST和PUT。

网址的长度也有实际限制。