我想知道从IPv4服务器到IPv6服务器使用的HTTP GET
请求的标头格式之间的区别吗?
现在,我正在使用以下格式:
"GET /"+myFileToDownLoad+" HTTP/1.1\r\n"+
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*\r\n"
+"Referer: http://"+myDstIp+"/\r\n"
+"Accept-Language: he\r\n"
+"Accept-Encoding: gzip, deflate\r\n"
+"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n"
//+"Host: "+myDstIp+"\r\n"
+"Host: "+((myHost==null)?myDstIp:myHost)+"\r\n"
+"Connection: Close\r\n\r\n";
那么,如果我想使用IPv6服务器,是否有必要更改格式?
答案 0 :(得分:7)
RFC 2732更新主机字段:
对RFC 2396中的语法进行了以下更改:(1) 更改'host'非终端以添加IPv6选项:
host = hostname | IPv4address | IPv6reference ipv6reference = "[" IPv6address "]"
其中IPv6address的定义与RFC2373 [ARCH]中相同。
因此,您应将IPv6地址括在方括号中。
<强>更新强>
此更改适用于具有IPv6格式的主机部分的URL,并传播到使用原始地址中的“host”部分的所有请求字段 - 在您的示例中,这些是Host和Referrer。
也就是说,您必须在myDstIp
和Referrer
字段的Host
周围添加方括号。
答案 1 :(得分:1)
RFC2396统一资源标识符(URI):通用语法已由 RFC2732格式更新为URL中的文字IPv6地址。
具体而言,RFC2732中的第3节。