Kişi bir IPv6 URL'sinde ana bilgisayarı ve bağlantı noktasını nasıl ayırt edebilir?


87

URL'ler her zaman bu biçime sahiptir:

<protocol>://<host>[:<port>]/[<path>][#<hash>]

Sorun IPv6'nın tıpkı port ve host ayırıcıları gibi virgül kullanmasıdır;

2001:db8:1f70::999:de8:7648:6e8

Peki ya bu ana bilgisayarsa ve ben de 100 numaralı bağlantı noktasındaki HTTP'ye bağlanmak istersem?

http://2001:db8:1f70::999:de8:7648:6e8:100/

Sorun son kolon. Sıfırlar çift kolonla (1f70 ile 999 arasında) bulunmadığından, ': 100' değerinin IP'ye veya port numarasına ait olduğu bilinmiyor. Bunu nasıl bilebiliriz?

Yanıtlar:


118

Bu durumda gösterimdeki IPv6 IP numarasını köşeli parantez içinde kodlamaktır:

http://[2001:db8:1f70::999:de8:7648:6e8]:100/

Bu RFC 3986 , bölüm 3.2.2: Ev sahibi

Bir İnternet Protokolü hazır bilgi adresi, sürüm 6 [RFC3513] veya daha yenisi ile tanımlanan bir ana bilgisayar, IP hazır bilgisini köşeli parantezler ("[" ve ​​"]") içine alarak ayırt edilir. URI sözdiziminde köşeli ayraç karakterlerine izin verilen tek yer burasıdır. Gelecekte, henüz tanımlanmamış IP hazır adres formatları beklentisiyle, bir uygulama, bu tür bir formatı sezgisel belirlemeye dayanmak yerine açıkça belirtmek için isteğe bağlı bir sürüm bayrağı kullanabilir.


38
Desteklerin isteğe bağlı olmadığını belirtmekte fayda var. Tarayıcının sayısal bir IPv6 adresini tanımlayabildiği tek kesin mekanizmadır.
tylerl

Port dirseklerin içinde olmamalı mı?
jayarjo

2
@jayarjo Hayır, parantezler orada olduğu gibi, iki nokta içeren IP adresi ve IP adresinden iki nokta üst üste ile ayrılan bağlantı noktası arasında kesin ayrılma sağlamak için vardır.
sysadmin1138
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.