Bagikan melalui


Dukungan IP Versi 6

Dimulai dengan IE7 ke atas, WinINet mendukung harfiah IPv6 dalam nama host, dan komponen otoritas URI. WinINet juga mendukung penggunaan literal IPv6 dalam bagian protokol HTTP yang relevan, seperti di header Lokasi.

Nama Host IPv6 Literal dan Komponen URI

WinINet mengimplementasikan literal IPv6 sesuai dengan spesifikasi dalam RFC 3513. Seperti yang ditentukan dalam RFC ini, harfiah IPv6 dalam URI harus diapit dalam tanda kurung siku. Misalnya, https://[::1]/ adalah URI IPv6 yang valid; formulir tanpa tanda kurung siku (https://::1/) tidak valid. Nama host IPv6 literal yang bukan bagian dari URI, namun, tidak perlu diapit dalam tanda kurung; salah satu formulir dapat diterima oleh WinINet. Misalnya, "::1" dan "[::1]" adalah bentuk harfiah nama host IPv6 yang dapat diterima. API lain, seperti WinSock API, juga akan menerima kedua formulir. Dengan demikian aplikasi harus siap untuk menangani kedua bentuk harfiah nama host IPv6.

ID Cakupan

Alamat harfiah IPv6 dalam URI dapat menyertakan ID cakupan. ID lingkup bisa menjadi ID antarmuka seperti [FE80::1%1]. Standar URI, yang di dokumentasikan dalam RFC 3986, tidak menentukan sintaks untuk ID cakupan, dan URI dianggap tidak seragam ketika ID cakupan ada. Namun, WinINet menerima ID cakupan dalam komponen otoritas URI, dan dalam nama host IPv6 literal.

Karakter persen (%) dalam alamat harfiah IPv6 harus persen lolos ketika ada dalam URI. Misalnya, ID cakupan FE80::2%3, harus muncul di URI sebagai "https://[FE80::2%253]/", di mana %25 adalah karakter persen hex yang dikodekan (%). Jika aplikasi mengambil URI dari API Unicode, seperti Winsock WSAAddressToString API, aplikasi harus menambahkan versi karakter persen yang lolos (%) dalam nama host URI. Untuk membuat versi URI yang lolos, aplikasi memanggil InternetCreateUrl dengan parameter dwFlags diatur ke ICU_ESCAPE_AUTHORITY, dan nama host IPv6 yang ditentukan dalam struktur komponen URL yang ditentukan dalam parameter lpUrlComponents .

Untuk semua operasi soket, WinINet menggunakan ID cakupan. Namun, karena ID cakupan hanya memiliki signifikansi host lokal, ID tersebut tidak dikirim sebagai bagian dari header protokol HTTP dalam permintaan. Misalnya, panggilan ke InternetOpenUrl dipanggil dengan URL berikut dalam parameter lpszUrl .

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

Bagian ID cakupan URL dihapus oleh WinINet ketika permintaan HTTP dikirim untuk URL ini. Permintaan berisi header berikut:

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

Catatan

WinINet tidak mendukung implementasi server. Selain itu, itu tidak boleh digunakan dari layanan. Untuk implementasi atau layanan server, gunakan Microsoft Windows HTTP Services (WinHTTP).