Soru Ana bilgisayar ve bağlantı noktası bir IPv6 URL'sinde nasıl ayırt edilebilir?


URL'ler her zaman bu biçime sahiptir:

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

Sorun, IPv6'nın, port ve ana bilgisayar ayırıcısı gibi, kolonları kullanmasıdır.

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

Peki ya bu sunucuysa ve 100 numaralı bağlantı noktasında HTTP ile bağlanmak istersek?

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

Sorun son kolon. Sıfırlar çift kolonlarla (1f70 ve 999 arasında) atlandığından, ': 100' IP veya port numarasına aitse bilinmemektedir. Bunu nasıl bilebiliriz?


81
2017-11-24 22:48


Menşei




Cevaplar:


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

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

budur RFC 3986, bölüm 3.2.2: Ana Bilgisayar

Bir İnternet Protokolü literal adresi, sürüm 6 tarafından belirlenen bir ana bilgisayar       [RFC3513] veya daha sonra, IP edebi çevrilerek ayırt edilir       köşeli parantez içinde ("[" ve ​​"]"). Bu sadece tek yer       URI sözdiziminde köşeli parantez karakterlerine izin verilir. İçinde       geleceğin beklentisi, henüz tanımlanmamış IP edebi adres formatları,       Bir uygulama, belirtmek için isteğe bağlı bir sürüm bayrağı kullanabilir.       Sezgisel kararlılıktan ziyade açıkça biçimlendirmek.


112
2017-11-24 22:51



Köşeli parantezler olduğuna dikkat çekmeye değer. değil isteğe bağlı. Bu, tarayıcının sayısal bir IPv6 adresini tanımlayabileceği tek açık mekanizmadır. - tylerl
Liman parantez içinde olmamalı mı? - jayarjo
@jayarjo Hayır, köşeli ayraçlar içeren IP adresiyle, IP adresiyle bir kolon tarafından ayrılan bağlantı noktası arasında ayırım sağlamak için yok. - sysadmin1138♦