Поддержка IP-адресов версии 6
Начиная с версии IE7 и выше WinINet поддерживает литералы IPv6 в имени узла и компонент центра URI. WinINet также поддерживает использование литералов IPv6 в соответствующих части протокола HTTP, например в заголовке Location.
Литералы IPv6 имени узла и компоненты URI
WinINet реализует литералы IPv6 в соответствии со спецификациями в RFC 3513. Как указано в этом RFC, IPv6-литералы в URI должны быть заключены в квадратные скобки. Например, https://[::1]/ является допустимым URI IPv6; Форма без квадратных скобок (https://::1/) недопустимая. Однако литералы IPv6 имени узла, которые не являются частью URI, не должны быть заключены в квадратные скобки; любая форма допустима для WinINet. Например, оба "::1" и "[::1]" являются допустимыми формами литералы имени узла IPv6. Другие API, такие как API WinSock, также будут принимать обе формы. Таким образом, приложения должны быть готовы к обработке обоих форм литералы имени узла IPv6.
Идентификатор области
Адрес литерала IPv6 в URI может содержать идентификатор области. Идентификатор области может быть идентификатором интерфейса, например [FE80::1%1]. Стандарт URI, задокументированных в RFC 3986, не определяет синтаксис идентификатора области, а универсальный код ресурса (URI) считается нестандартным при наличии идентификатора области. Однако WinINet принимает идентификатор области в компоненте URI центра и в литерале IPv6 имени узла.
Символ процента (%) в адресе литерала IPv6 должен быть экранирован в URI. Например, идентификатор области FE80::2%3должен отображаться в URI как "https://[FE80::2%253]/", где %25 является шестнадцатеричным символом процента (%). Если приложение извлекает URI из API Юникода, например Winsock WSAAddressToString API, приложение должно добавить экранированную версию символа процента (%) в имя узла URI. Чтобы создать экранированную версию URI, приложения вызывают InternetCreateUrl с параметром dwFlags, равным ICU_ESCAPE_AUTHORITY, и имя узла IPv6, указанное в структуре компонентов URL, указанной в параметре lpUrlComponents.
Для всех операций сокетов WinINet использует идентификатор области. Однако, так как идентификатор области имеет только локальное значение узла, он не отправляется как часть заголовков протокола HTTP в запросе. Например, вызов InternetOpenUrl вызывается со следующим URL-адресом в параметре lpszUrl.
https://[fec0::2%251]:80/path.htm
Часть идентификатора области URL-адреса удаляется WinINet при отправке HTTP-запроса для этого URL-адреса. Запрос содержит следующие заголовки:
GET path.htm HTTP/1.1
Host: [fec0::2]
Заметка
WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для реализации или служб сервера microsoft Windows HTTP Services (WinHTTP).