Delen via


Ondersteuning voor IP-versie 6

Vanaf IE7 en hoger ondersteunt WinINet letterlijke IPv6-tekens in de hostnaam en het autoriteitsonderdeel van de URI. WinINet ondersteunt ook het gebruik van letterlijke IPv6-waarden in relevante gedeelten van het HTTP-protocol, zoals in de locatieheader.

Letterlijke IPv6-hostnaam en URI-onderdelen

WinINet implementeert letterlijke IPv6-gegevens volgens de specificaties in RFC 3513. Zoals opgegeven in deze RFC, moeten de letterlijke IPv6-tekens in een URI tussen vierkante haken worden geplaatst. Bijvoorbeeld: https://[:1]/ is een geldige IPv6-URI; het formulier zonder vierkante haken (https://::1/) is ongeldig. Letterlijke IPv6-hostnamen die geen deel uitmaken van de URI, hoeven echter niet tussen de haken te worden geplaatst; beide vormen zijn acceptabel voor WinINet. Zo zijn zowel '::1' als '[::1]' acceptabele vormen van letterlijke IPv6-hostnamen. Andere API's, zoals de WinSock-API, accepteren ook beide formulieren. Toepassingen moeten dus worden voorbereid om beide vormen van letterlijke IPv6-hostnamen te verwerken.

Bereik-id

Het letterlijke IPv6-adres in de URI kan een bereik-id bevatten. Een bereik-id kan een interface-id zijn, zoals [FE80::1%1]. De URI-standaard, gedocumenteerd in RFC 3986, definieert niet de syntaxis voor de bereik-id en de URI wordt beschouwd als niet-uniform wanneer de bereik-id aanwezig is. WinINet accepteert echter een bereik-id in het instantieonderdeel van de URI en in de letterlijke waarde van de hostnaam IPv6.

Het percentageteken (%) in het letterlijke IPv6-adres moet het percentage escape-tekens zijn als deze aanwezig zijn in de URI. De bereik-id FE80::2%3moet bijvoorbeeld worden weergegeven in de URI als 'https://[FE80::2%253]/', waarbij %25 het hex-gecodeerde procentteken (%) is. Als de toepassing de URI ophaalt uit een Unicode-API, zoals de Winsock-WSAAddressToString-API, moet de toepassing de escape-versie van het procentteken (%) toevoegen aan de hostnaam van de URI. Als u de escape-versie van de URI wilt maken, roepen toepassingen InternetCreateUrl- aan met de parameter dwFlags ingesteld op ICU_ESCAPE_AUTHORITYen de IPv6-hostnaam die is opgegeven in de structuur van de URL-onderdelen die is opgegeven in de parameter lpUrlComponents.

Voor alle socketbewerkingen gebruikt WinINet de bereik-id. Omdat de bereik-id echter alleen lokale host significantie heeft, wordt deze niet verzonden als onderdeel van de HTTP-protocolheaders in de aanvraag. De aanroep van InternetOpenUrl- wordt bijvoorbeeld aangeroepen met de volgende URL in de parameter lpszUrl.

https://[fec0::2%251]:80/path.htm

Het bereik-id-gedeelte van de URL wordt verwijderd door WinINet wanneer de HTTP-aanvraag voor deze URL wordt verzonden. De aanvraag bevat de volgende headers:

GET path.htm HTTP/1.1
Host: [fec0::2]

Notitie

WinINet biedt geen ondersteuning voor serverimplementaties. Daarnaast mag deze niet worden gebruikt vanuit een service. Voor server-implementaties of -services wordt Microsoft Windows HTTP Services (WinHTTP)gebruikt.