通过IPv6的HTTP请求
问题描述:
我想知道使用从IPv4服务器到IPv6服务器的HTTP GET
请求的标头格式之间的区别吗?通过IPv6的HTTP请求
现在,我目前使用以下格式:
"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服务器,是有必要更改格式?
答
RFC 2732更新主机字段:
在RFC 2396的以下更改的语法是由:(1) 改变 '主机' 非末端添加一个IPv6选项:
host = hostname | IPv4address | IPv6reference ipv6reference = "[" IPv6address "]"
其中IPv6address的定义与RFC2373 [ARCH]一致。
所以你应该把IPv6地址放在方括号中。
更新: 的变化适用于在IPv6格式的主机部分网址,并传播到使用“主机”部分从原来的地址的所有请求字段 - 在你的榜样这些主机和推荐。 也就是说,您必须在和Host
字段中的myDstIp
附近添加方括号。
答
RFC2396统一资源标识符(URI):通用语法被RFC2732格式文本IPv6在URL的地址更新。
具体来说,RFC2732中的第3节。
嗨Lyth,谢谢你的回应。 –
我可以知道这反映在标题格式.... –
@ramuluponnam:对于您的代码,它可能看起来像: 'if(isIPv6(myDstIp))myDstIp ='['+ myDstIp +']'' – Lyth