שאלה כיצד ניתן להבחין בין המארח לבין היציאה בכתובת IPv6?


כתובות אתר תמיד כוללות תבנית זו:

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

הבעיה היא ש- IPv6 משתמש בקוטונים, בדיוק כמו המפריד בין היציאה והמארח, למשל:

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

אבל מה אם זה המארח, ואני רוצה להתחבר אליו עם HTTP בנמל 100?

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

הבעיה היא המעי הגס האחרון. מכיוון שאפס מושמט עם קולונים כפולים (בין 1f70 ל -999), לא ידוע אם ': 100' שייך ל- IP או למספר היציאה. איך נוכל לדעת זאת?


81
2017-11-24 22:48






תשובות:


הסימון במקרה זה הוא לקודד את מספר IPv6 IP בסוגריים מרובעים:

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

זה RFC 3986, סעיף 3.2.2: מארח

המארח מזוהה על ידי כתובת אינטרנט פרוטוקול אינטרנט, גרסה 6       [RFC3513] או מאוחר יותר, נבדלת על ידי הצמדת ה- IP מילולי       בתוך סוגריים מרובעים ("" ו ""). זה המקום היחיד שבו       תווי סוגר מרובע מותרים בתחביר ה- URI. ב       ציפייה לעתיד, כמו עדיין לא מוגדר IP פורמטים כתובת מילולית,       יישום עשוי להשתמש בדגל גרסה אופציונלית כדי לציין זאת       במפורש ולא להסתמך על קביעת היוריסטי.


112
2017-11-24 22:51



ראוי לציין כי בסוגריים לא אופציונאלי. זהו המנגנון החד-משמעי היחיד שבאמצעותו הדפדפן יכול לזהות כתובת IPv6 מספרית. - tylerl
האם הנמל לא צריך להיות בתוך הסוגריים? - jayarjo
@ jayarjo לא, כמו בסוגריים יש לספק disambiguation בין כתובת ה- IP, אשר מכיל colons, ואת הנמל, אשר מופרדים מכתובת ה- IP על ידי נקודתיים. - sysadmin1138♦