如何通过http url发送二进制数据(del和null字符)

时间:2015-02-03 17:32:04

标签: http

我想发送一些二进制字符和HTTP URL,有人可以告诉我最好的方法。

Ex:\ x7F / a.html(\ x7F表示二进制形式的ASCII DEL)

使用telnet或curl发送它将其作为字符串发送。你认为直接发送套接字会起作用吗

sock.send('GET /test\x7F/a.html HTTP / 1.0 \ r \ nHost:1.1.1.1 \ r \ n')会有效吗?

1 个答案:

答案 0 :(得分:1)

根据HTTP规范,request-target令牌可以具有从URI路径“派生”的多个值。根据URI规范,path只能包含可打印的7位ASCII字母数字字符和一些符号,如“ - ”,“。”,“%”,“〜”等。它不允许ASCII控制字符。

根据URI规范,可打印的7位ASCII范围之外的路径字符应为percent-encoded,因此ASCII DEL应编码%7F和ASCII NULL %00

很难说百分比编码你的二进制字符“是否会起作用”,因为你没有解释你希望从中得到什么。 HTTP请求目标是服务器解释的不透明标识符,不需要与文件名或实际数据相对应。使用ASCII字母数字请求目标来引用二进制目标是完全可行的(也是常见的)。