Un nom d'amfitrió de servidor intermediari pot contenir caràcters internacionals en la seva forma mostrada. Un client o resoldre que espera la forma IDNA ASCII necessita aquest nom d'amfitrió convertit, no una còpia escapada percentual arbitrària de tot l'URL.

A PowerShell, .NET exposa la conversió directament:

$mapping = New-Object System.Globalization.IdnMapping
$asciiHost = $mapping.GetAscii($unicodeProxyHost)
$endpoint = New-Object System.UriBuilder
$endpoint.Scheme = 'http'
$endpoint.Host = $asciiHost
$endpoint.Port = 8080

$proxy = New-Object System.Net.WebProxy($endpoint.Uri)

unicodeProxyHost és només el nom de domini. El port i l'esquema es mantenen separats. Utilitza el servidor intermediari resultant al client HTTP que fa la sol·licitud.

Per a un Uri ja analitzat, IdnHost exposa la seva representació de nom d'amfitrió compatible amb IDNA. Revisa el punt final original en lloc de codificar repetidament una etiqueta ja codificada.

Distingeix el nom d'amfitrió del servidor intermediari del nom d'amfitrió del destí en un error de resolució. Convertir-ne un no corregeix una errata ni un registre DNS absent a l'altre. Mantén també el nom d'amfitrió previst per a la identitat del certificat; substituir-lo per una adreça IP arbitrària canvia una altra part de la connexió.

Articles relacionats