共用方式為


IP 第 6 版支援

從 IE7 和更新版本開始,WinINet 支援主機名中的 IPv6 常值,以及 URI 的授權元件。 WinINet 也支援在 HTTP 通訊協定的相關部分使用 IPv6 常值,例如在位置標頭中。

主機名 IPv6 常值和 URI 元件

WinINet 會根據 RFC 3513 中的規格實作 IPv6 常值。 如此 RFC 中所指定,URI 中的 IPv6 常值必須以括弧括住。 例如,HTTPs://[::1]/ 是有效的 IPv6 URI;沒有括弧的表單 (https://::1/) 無效。 不過,不屬於 URI 的主機名 IPv6 常值不需要括在括弧中;WinINet 可以接受任一窗體。 例如,“::1” 和 “[::1]” 都是 IPv6 主機名常值可接受的形式。 其他 API,例如 WinSock API,也會接受這兩種形式。 因此,應用程式應該準備好處理這兩種形式的 IPv6 主機名常值。

範圍標識碼

URI 中的 IPv6 常值位址可能包含範圍識別碼。 範圍標識碼可以是介面標識碼,例如 [FE80::1%1]。 RFC 3986 記載的 URI 標準不會定義範圍標識符的語法,而且當範圍標識碼存在時,URI 會被視為非統一。 不過,WinINet 會接受 URI 授權單位元件中的範圍標識碼,並在主機名 IPv6 常值中接受範圍識別符。

IPv6 常值位址中的百分比字元 (%) 必須在 URI 中存在時逸出百分比。 例如,範圍標識碼 FE80::2%3,必須在 URI 中顯示為 “https://[FE80::2%253]/”,其中 %25 是十六進位編碼百分比字元 (%)。 如果應用程式從 Unicode API 擷取 URI,例如 Winsock WSAAddressToString API,則應用程式必須在 URI 的主機名中新增百分比字元 (%) 的逸出版本。 若要建立 URI 的逸出版本,應用程式會呼叫 InternetCreateUrl,並將 dwFlags 參數設定為 ICU_ESCAPE_AUTHORITY,以及在 lpUrlComponents 參數中指定的 URL 元件結構中指定的 IPv6 主機名。

針對所有套接字作業,WinINet 會使用範圍標識符。 不過,因為範圍標識碼只有本機主機意義,所以不會在要求中傳送為 HTTP 通訊協定標頭的一部分。 例如,在 lpszUrl 參數中使用下列 URL 呼叫 InternetOpenUrl

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

當傳送此 URL 的 HTTP 要求時,WinINet 會移除 URL 的範圍標識碼部分。 要求包含下列標頭:

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

注意

WinINet 不支援伺服器實作。 此外,不應該從服務使用。 針對伺服器實作或服務,請使用 Microsoft Windows HTTP 服務 (WinHTTP)