我想发送一些二进制字符和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')会有效吗?
答案 0 :(得分:1)
根据HTTP规范,request-target令牌可以具有从URI路径“派生”的多个值。根据URI规范,path只能包含可打印的7位ASCII字母数字字符和一些符号,如“ - ”,“。”,“%”,“〜”等。它不允许ASCII控制字符。
根据URI规范,可打印的7位ASCII范围之外的路径字符应为percent-encoded,因此ASCII DEL应编码%7F
和ASCII NULL %00
。
很难说百分比编码你的二进制字符“是否会起作用”,因为你没有解释你希望从中得到什么。 HTTP请求目标是服务器解释的不透明标识符,不需要与文件名或实际数据相对应。使用ASCII字母数字请求目标来引用二进制目标是完全可行的(也是常见的)。