Suporte ao IP versão 6
A partir do IE7 e superior, o WinINet dá suporte a literais IPv6 no nome do host e ao componente de autoridade do URI. O WinINet também dá suporte ao uso de literais IPv6 em partes relevantes do protocolo HTTP, como no cabeçalho Local.
Literais IPv6 do nome do host e componentes de URI
O WinINet implementa literais IPv6 de acordo com as especificações do RFC 3513. Conforme especificado neste RFC, os literais IPv6 em um URI devem ser colocados entre colchetes. Por exemplo, https://[::1]/ é um URI IPv6 válido; o formulário sem colchetes (https://::1/) não é válido. Os literais IPv6 do nome do host que não fazem parte do URI, no entanto, não precisam ser colocados entre colchetes; qualquer formulário é aceitável para WinINet. Por exemplo, "::1" e "[::1]" são formas aceitáveis de literais de nome de host IPv6. Outras APIs, como a API do WinSock, também aceitarão ambos os formulários. Portanto, os aplicativos devem estar preparados para lidar com ambas as formas de literais de nome de host IPv6.
ID do escopo
O endereço literal IPv6 no URI pode incluir uma ID de escopo. Uma ID de escopo pode ser uma ID de interface, como [FE80::1%1]. O padrão de URI, documentado no RFC 3986, não define a sintaxe da ID do escopo e o URI é considerado não uniforme quando a ID do escopo está presente. No entanto, WinINet aceita uma ID de escopo no componente de autoridade do URI e no literal IPv6 do nome do host.
O caractere percentual (%) no endereço literal IPv6 deve ter uma porcentagem de escape quando presente no URI. Por exemplo, a ID de escopo FE80::2%3, deve aparecer no URI como "https://[FE80::2%253]/", em que %25 é o caractere de porcentagem codificado em hexadecedor (%). Se o aplicativo recuperar o URI de uma API Unicode, como o Winsock API WSAAddressToString, o aplicativo deverá adicionar a versão de escape do caractere percentual (%) no nome do host do URI. Para criar a versão com escape do URI, os aplicativos chamam InternetCreateUrl com o parâmetro dwFlags definido como ICU_ESCAPE_AUTHORITYe o nome do host IPv6 especificado na estrutura de componentes de URL especificada no parâmetro lpUrlComponents.
Para todas as operações de soquetes, WinINet usa a ID de escopo. No entanto, como a ID do escopo tem apenas significado de host local, ela não é enviada como parte dos cabeçalhos do protocolo HTTP na solicitação. Por exemplo, a chamada para InternetOpenUrl é chamada com a URL a seguir no parâmetro lpszUrl.
https://[fec0::2%251]:80/path.htm
A parte da ID do escopo da URL é removida pelo WinINet quando a solicitação HTTP é enviada para essa URL. A solicitação contém os seguintes cabeçalhos:
GET path.htm HTTP/1.1
Host: [fec0::2]
Nota
O WinINet não dá suporte a implementações de servidor. Além disso, ele não deve ser usado de um serviço. Para implementações ou serviços de servidor, use do Microsoft Windows HTTP Services (WinHTTP).