通过IPv6的HTTP请求

时间:2011-09-19 09:23:40

标签: http header ipv6

我想知道从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服务器,是否有必要更改格式?

2 个答案:

答案 0 :(得分:7)

RFC 2732更新主机字段:

  

对RFC 2396中的语法进行了以下更改:(1)   更改'host'非终端以添加IPv6选项:

  host          = hostname | IPv4address | IPv6reference
  ipv6reference = "[" IPv6address "]"
     

其中IPv6address的定义与RFC2373 [ARCH]中相同。

因此,您应将IPv6地址括在方括号中。

<强>更新 此更改适用于具有IPv6格式的主机部分的URL,并传播到使用原始地址中的“host”部分的所有请求字段 - 在您的示例中,这些是Host和Referrer。 也就是说,您必须在myDstIpReferrer字段的Host周围添加方括号。

答案 1 :(得分:1)

RFC2396统一资源标识符(URI):通用语法已由 RFC2732格式更新为URL中的文字IPv6地址

具体而言,RFC2732中的第3节。