Bagikan melalui


Dukungan IP Versi 6

Dimulai dengan IE7 ke atas, WinINet mendukung literal 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, literal IPv6 dalam URI harus diapit dalam tanda kurung. Misalnya, https://[::1]/ adalah URI IPv6 yang valid; formulir tanpa tanda kurung (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 literal nama host IPv6 yang dapat diterima. API lain, seperti WINSock API, juga akan menerima kedua formulir. Dengan demikian aplikasi harus disiapkan untuk menangani kedua bentuk literal nama host IPv6.

ID Cakupan

Alamat harfiah IPv6 dalam URI dapat menyertakan ID cakupan. ID cakupan dapat berupa ID antarmuka seperti [FE80::1%1]. Standar URI, yang didokumenkan 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 diloloskan persen ketika ada di URI. Misalnya, ID cakupan FE80::2%3, harus muncul di URI sebagai "https://[FE80::2%253]/", di mana %25 adalah karakter persen yang dikodekan heks (%). Jika aplikasi mengambil URI dari API Unicode, seperti Winsock WSAAddressToString API, aplikasi harus menambahkan versi karakter persen yang lolos (%) di 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]

Nota

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