HTTP-запрос через IPv6 - PullRequest
       8

HTTP-запрос через IPv6

2 голосов
/ 19 сентября 2011

Я хочу узнать разницу между форматом заголовка запроса HTTP GET, который используется от сервера IPv4 к серверу IPv6?

Сейчас я использую следующий формат:

"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 ]

7 голосов
/ 19 сентября 2011

RFC 2732 обновляет поле Host:

В RFC 2396 внесены следующие изменения в синтаксис: (1) измените нетерминал 'host' для добавления опции IPv6:

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

, где IPv6-адрес определен как в RFC2373 [ARCH].

Таким образом, вы должны заключить IPv6-адрес в квадратные скобки.

Обновление: Это изменение применяется к URL-адресам с частью узла в формате IPv6 и распространяется на все поля запроса, которые используют часть «узел» из исходного адреса - в вашем примере это Host и Referrer. То есть вам нужно добавить квадратные скобки вокруг myDstIp в Referrer и Host полях.

1 голос
/ 07 ноября 2011

Унифицированные идентификаторы ресурса (URI) RFC2396: Общий синтаксис был обновлен с помощью Формат RFC2732 для литеральных адресов IPv6 в URL-адресах .

В частности, раздел 3 в RFC2732.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...