ברוב המקרים, אפשר לומר דברים כמו "קניתי דומיין" או "התמונות שלנו מתארחות באתר אחר", גם אם זה לא נכון לגמרי. עם זאת, בהקשרים מסוימים צריך להיות מדויקים יותר. לדוגמה, כשעוסקים בקובצי Cookie, צריך להבין את ההבדל בין אתר לבין מקור.
השמות של חלקי כתובת ה-URL מוגדרים בתקן, שמוגדר בו גם JavaScript API:
- תקן כתובות ה-URL מגדיר כתובות URL ומושגים קשורים כדי לאפשר למהנדסים לבנות דפדפני אינטרנט שניתן להשתמש בהם יחד.
- רכיב URL API בתקן מגדיר שיטות לגישה לחלקים של מחרוזת URL, כמו סכימה או מקור.
במאמר הזה מוסבר על מגוון מונחים שמשמשים עם מחרוזות של כתובות URL מסוג HTTP או HTTPS. היא לא כוללת סוגים אחרים של כתובות URL, כמו כתובות URL של קבצים או נתונים. מונחים כמו host ו-origin הם מורכבים מאוד, ולכן במקום לנסות לספק הסברים מלאים, במסמך הזה אנחנו מספקים דוגמאות וקישורים לתקן כתובות ה-URL.
אפשר להשתמש ב-JavaScript כדי לקבל את השמות של רכיבי כתובת URL שמוגדרים על ידי URL API. לדוגמה:
let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);
כלי לניתוח כתובות URL
אפשר לערוך את כתובת ה-URL שלמטה כדי לראות איך נקראים החלקים של מחרוזת כתובת ה-URL. אפשר גם לפתוח את זה בכרטיסייה נפרדת בכתובת https://chrome.dev/url-parts/.
שמות החלקים של כתובת ה-URL מפורטים בהמשך לפי סדר אלפביתי.
דומיין ברמה העליונה עם קוד מדינה (ccTLD)
דומיין ברמה העליונה שמוגדר ברשימת קודי המדינות לפי תקן ISO 3166-1.
- בדומיין
https://example.org.au, הדומיין ברמה העליונה עם קוד המדינה הואau. - בדומיין
https://example.io, הדומיין ברמה העליונה עם קוד המדינה הואio.
שם דומיין
החלקים של כתובת URL מסוג HTTP או HTTPS שמופרדים באמצעות נקודות: כל מה שמופיע אחרי הסכימה, אבל לפני הנתיב או היציאה (אם הם מצוינים). כל חלק בשם הדומיין נקרא תווית.
| כתובת URL | שם דומיין |
|---|---|
| https://example.github.io/path | example.github.io |
| https://support.example.org.au:443 | support.example.org.au |
דומיין ברמה עליונה (TLD) אפקטיבי (eTLD)
רשומה ברשימת הסיומות הציבוריות, כולל TLD (דומיין ברמה העליונה) ודומיינים נוספים מתחתיו (לדומיינים ברמה עליונה עם מספר חלקים): דומיין ברמה השנייה, דומיין ברמה השלישית וכן הלאה.
- לדוגמה:
com, com.au, github.io, sa.edu.au,schools.nsw.edu.au.
'סיומת ציבורית', כמו בדוגמאות האלה, היא שם שאפשר לרשום תחתיו דומיינים. רשימת הסיומות הציבוריות היא רשימה של כל הסיומות הציבוריות הידועות, והיא מתעדכנת לעיתים קרובות. דפדפנים, כולל Chromium ו-Firefox, משתמשים ברשימה בגרסאות שלהם.
eTLD+1
ראו דומיין שניתן לרישום.
eTLD בתוספת תת-הדומיין שקודם לו.
- לדוגמה:
example.com, example.org.au, example.github.io,example.sa.edu.au, example.schools.nsw.edu.au.
שם קובץ
לא מוגדר בתקן כתובות ה-URL ולא חלק מ-API של כתובות URL, אבל נעשה בו שימוש נפוץ כדי להתייחס לחלק הסופי של כתובת ה-URL, שלא כולל נתיב, על סמך ההנחה – שלרוב לא נכונה – שכתובת ה-URL ממופה ישירות למבנה של ספרייה.
לדוגמה, ב-https://example.com/dir/file.html, יכול להיות ש-file.html יצוין כשם הקובץ.
הדפדפנים משתמשים בערך של שם הקובץ גם כדי לתת שם לנכס אם הוא מורד.
לדוגמה, https://example.com/images/image.jpg בדרך כלל יישמר באופן מקומי בimage.jpg.
מקטע (fragment)
מחרוזת אחרי התו # בסוף כתובת URL שמספקת מזהה של קטע.
- לדוגמה: לכתובת ה-URL
https://example.com/cats#tabbyיש ערך מזהה של מקטעtabby.
החלק שכולל את # נקרא גיבוב או עוגן.
אפשר גם לקשר לקטע טקסט ולהדגיש אותו.
הגיבוב מוחזר על ידי URL API ולא על ידי המקטע.
שם דומיין שמוגדר במלואו (FQDN)
כתובת מלאה של אתר או שרת, שממופה לכתובת IP.
| כתובת URL | FQDN |
|---|---|
| https://example.com:1234/cats | example.com |
| https://api.example.github.io | api.example.github.io |
ה-FQDN של כתובת URL לא כולל את היציאה, גם אם נעשה שימוש ביציאה שאינה ברירת המחדל.
גיבוב (או עוגן)
מחרוזת אחרי התו # בסוף כתובת URL שמספקת מזהה של קטע. (בהקשרים מסוימים זה נקרא 'עוגן').
החלק בלי # נקרא fragment.
אפשר גם לקשר לקטע טקסט ולהדגיש אותו.
הגיבוב מוחזר על ידי URL API ולא על ידי המקטע.
מארח
כפי שמוגדר בתקן כתובות ה-URL, מארח יכול להיות שם דומיין, כתובת IPv4, כתובת IPv6, מארח אטום או מארח ריק.
- ההגדרה של
hostבתקן כתובות ה-URL לא כוללת את היציאה. -
URL.hostכולל את היציאה, אלא אם היציאה היא ברירת המחדל של הסכימה. -
URL.hostnameלא כולל את היציאה.
| כתובת URL | URL.host |
|---|---|
| https://www.example.com:443/cat |
www.example.com// 443 is the default port for the scheme
|
| https://www.example.com:1234/cat | www.example.com:1234 |
| https://cat.example.github.io | cat.example.github.io |
שם מארח
שם המארח מוגדר על ידי JavaScript URL API, אבל לא מוגדר בשום מקום אחר על ידי תקן כתובות ה-URL. פרטים נוספים מופיעים במאמר בנושא ייצוג של מארחים.
URL.hostname מחזירה את המארח בלי היציאה.
| כתובת URL | URL.hostname |
|---|---|
| https://www.example.com:443/cat | www.example.com |
| https://www.example.com:1234/cat | www.example.com |
| https://cat.example.github.io | cat.example.github.io |
מקור
תקן כתובות ה-URL מגדיר origin, ומקשר לתקן ה-HTML לרקע.
עבור כתובות URL של HTTP או HTTPS, הפונקציה URL.origin מחזירה את הסכימה, את המארח ואת היציאה (אלא אם היציאה היא ברירת המחדל של הסכימה).
| כתובת URL | URL.origin |
|---|---|
| https://www.example.com:443/cat | https://www.example.com |
| https://www.example.com:1234/cat | https://www.example.com:1234 |
| https://cat.example.github.io | https://cat.example.github.io |
פרמטר
סיסמה
שם נתיב
בכתובת URL מסוג HTTP או HTTPS, החלק שאחרי הדומיין והיציאה (אם הוגדרו), כולל filename (אם הוגדר) אבל לא כולל את מחרוזת החיפוש או הגיבוב.
| כתובת URL | URL.pathname |
|---|---|
| https://example.com | [empty string] |
| https://example.com:8000/search?q=tabby | /search |
| https://example.github.io/cat/pattern#tabby | /cat/pattern |
| https://example.github.io/README.md | /README.md |
לפעמים משתמשים במונח 'נתיב' כדי להתייחס לנתיב בלי שם הקובץ. לדוגמה, בכתובת ה-URL https://example.com/cat/pattern/tabby.html, הנתיב הוא /cat/pattern.
יציאה
המספר שאחרי : בכתובת URL שמזהה יציאת רשת. לדוגמה: בכתובת ה-URL https://example.com:1234/tabby מספר היציאה הוא 1234.
מספר היציאה צריך להיות מספר שלם לא מסומן בן 16 ביט, כלומר מספר שלם בין 0 ל-65535 כולל.
בכתובת URL של HTTP, יציאת ברירת המחדל היא 80. בכתובת URL של HTTPS, יציאת ברירת המחדל היא 443. בכתובת URL לא צריך לציין את מספר היציאה, אלא אם נעשה שימוש ביציאה שאינה ברירת המחדל.
ה-API מחזיר מחרוזת ריקה אם היציאה היא ברירת המחדל של הסכימה.
| כתובת URL | URL.port |
|---|---|
| https://example.com | // empty string |
| https://example.com:443/foo | // empty string: port is default for scheme |
| https://www.example.com:1234/foo | 1234 |
פרוטוקול
הסכימה ואחריה : (לדוגמה, http: או https:).
protocol זמין דרך ממשק ה-API של כתובות URL, אבל scheme לא זמין.
שאילתה (או 'מחרוזת שאילתה')
החלק search בכתובת ה-URL, לא כולל התו ? בתחילת הכתובת.
דומיין שאפשר לרשום
- אם כתובת ה-URL כוללת eTLD עם חלק אחד, כמו
comאוorg(כלומר, eTLD שתואם ל-TLD), הדומיין והדומיין ברמה השנייה שלפניו: לדוגמה,example.comאוexample.org. - בכתובת URL עם eTLD בן שני חלקים שבה מותר רישום רק ברמה השלישית (כלומר, רשומות ברשימת הסיומות הציבוריות כמו
com.auו-github.io), סיומת הדומיין ברמה העליונה בת שני החלקים ("סיומת ציבורית") ושם הדומיין ברמה השלישית שמופיע ממש לפני כן. לדוגמה:example.org.auאוexample.github.io. - במקרה של eTLD עם שלושה חלקים או יותר, ה-eTLD והדומיין שלפניו.
Scheme
החלק של כתובת ה-URL (לפני ://) שמגדיר את פרוטוקול הרשת (או את הפעולה שסוכן המשתמש צריך לבצע) כשנשלחת בקשה לכתובת URL. לדוגמה, בקשה לכתובת URL עם סכימת https צריכה להתבצע באמצעות פרוטוקול HTTPS. אם נשלחת בקשה לכתובת URL עם סכימה כמו file, mailto או git שלא תואמת לפרוטוקול רשת, ההתנהגות תלויה בסוכן המשתמש. לדוגמה, כשמשתמש לוחץ על קישור mailto, רוב הדפדפנים פותחים את אפליקציית האימייל שמוגדרת כברירת מחדל, באמצעות הערכים בכתובת ה-URL של הקישור href.
חיפוש
סימן שאלה שאחריו סדרה של צמדי מפתח/ערך שמייצגים פרמטרים והערכים שלהם, שמופיעים אחרי pathname.
| כתובת URL | URL.search |
|---|---|
| https://example.com/cats?pattern=tabby&mood=bonkers | ?pattern=tabby&mood=bonkers |
| https://example.com/cats:443?pattern=tabby | ?pattern=tabby |
המונח query או 'מחרוזת שאילתה' מתייחס ל-search בלי ? בהתחלה.
אפשר לעיין גם במאמר בנושא פרמטרים של חיפוש.
פרמטרים של חיפוש
הפניה לפריט נתונים שמועבר במחרוזת חיפוש (או 'מחרוזת שאילתה').
- לדוגמה: עבור
https://example.com/cats?pattern=tabby&mood=bonkers, מחרוזת החיפוש כוללת שני פרמטרים:pattern=tabbyו-mood=bonkers.
דומיין ברמה שנייה
הדומיין לפני דומיין ברמה העליונה.
בכתובת ה-URL
https://www.example.com, הדומיין ברמה השנייה הואexample.com, שהוא תת-דומיין של הדומיין ברמה העליונהcom.בדומיין
https://example.org.au, הדומיין ברמה העליונה הואau, הדומיין ברמה השנייה הואorgוהדומיין ברמה השלישית הואexample. בדוגמה הזו,org.auהוא תת-דומיין שלauו-example.org.auהוא תת-דומיין שלorg.au.
אתר
אתר מוגדר בתקן HTML, יחד עם אותו אתר, שכולל סכימה, ואותו אתר ללא סכימה.
האתר לא מוגדר בתקן כתובות ה-URL או ב-JavaScript URL API.
בהקשר הזה:
- בכתובת URL מסוג HTTP או HTTPS עם eTLD שמורכב מחלק אחד, כמו
https://example.com, האתר מורכב מ-scheme, ה-eTLD והתווית שלפניו. לדוגמה: עבור כתובת ה-URLhttps://www.example.com/cat, האתר הואhttps://example.com. (בכתובת ה-URL הזו, ה-eTLD זהה לדומיין ברמה העליונה). - במקרה של eTLDs מרובי חלקים כמו
co.uk,github.ioאוsa.edu.au, הערך 'site' מורכב מ-scheme, מ-eTLD ומ-label שלפניו. לדוגמה: בכתובתhttps://cat.example.co.uk/tabby, האתר הואhttps://example.co.uk, ובכתובתhttps://www.education.sa.gov.auהאתר הואhttps://education.sa.gov.au.
| כתובת URL | אתר (עם סכמה ו-eTLD + 1) |
|---|---|
| https://cat.example.com/tabby | ("https", "example.com") |
| https://cat.example.co.uk/tabby | ("https", "example.co.uk") |
בניגוד למקור, האתר לא כולל יציאה.
תת-דומיין
דומיין בתוך דומיין ברמה גבוהה יותר.
באתרים עם דומיינים ברמה העליונה שמורכבים מחלק אחד, כמו com או org, החלקים שמופיעים לפני הדומיין ברמה העליונה, שכל אחד מהם מופרד באמצעות נקודה.
-
www.example.comהוא תת-דומיין שלexample.com. -
support.api.example.orgהוא תת-דומיין שלapi.example.org, שהוא תת-דומיין שלexample.org.
במקרה של eTLD שמורכב משני חלקים, שבהם מותרים רק רישומים ברמה השלישית(כלומר, רשומות ברשימת הסיומות הציבוריות כמו co.uk ו-github.io), תת-הדומיינים הם החלקים של שם הדומיין שלפני הסיומת.
- לדוגמה:
cat.example.co.ukהוא תת-דומיין שלexample.co.uk.
קטע טקסט
סוג של fragment שמאפשר לקשר לטווח של טקסט בדף ולהדגיש אותו. כשמשתמש לוחץ על קישור עם קטע טקסט, הדפדפן מנסה לאתר את הטקסט בדף, לגלול אליו ולהדגיש אותו.
קטע טקסט מתחיל ב-:~:text= ואחריו מונח החיפוש.
לדוגמה, כדי לקשר למופע הראשון של הטקסט 'fragment' בדף הזה, משתמשים בכתובת ה-URL https://web.dev/articles/url-parts#:~:text=fragment.
מידע נוסף: קטעי טקסט
דומיין ברמה העליונה (TLD)
שם דומיין שמופיע במסד הנתונים של אזור הבסיס, כמו com או org. חלק מהדומיינים ברמה העליונה הם דומיינים ברמה העליונה עם קוד מדינה, כמו uk ו-tv.
כשמתארים את החלקים של כתובת URL מסוג HTTP או HTTPS, ה-TLD הוא שם הדומיין שאחרי הנקודה האחרונה.
- בכתובת
https://example.org, הדומיין ברמה העליונה הואorg. - בכתובת
https://example.org.au, הדומיין ברמה העליונה הואau, ו-orgהוא דומיין ברמה שנייה (גם אםorgהוא גם דומיין ברמה העליונה). org.auהוא eTLD עם שני חלקים.
רשימת הסיומות הציבוריות של eTLD כוללת דומיינים עם חלק אחד, שניים או יותר, כך ש-TLD יכול להיות גם eTLD. לדוגמה:
- בכתובת
https://example.com, ה-eTLD הואcom, שהוא גם TLD.
שם משתמש
אפשר לספק שם משתמש וסיסמה אופציונליים בתחילת כתובת ה-URL, אבל השימוש בהם הוצא משימוש מטעמי אבטחה, ובמקרים רבים הם יתעלמו.
לדוגמה, אם כתובת האימייל היא https://user123:password1@example.com, שם המשתמש הוא user123. שימו לב ששם המשתמש (והסיסמה!) מופיעים כטקסט פשוט ולא מוצפנים.
אם שם המשתמש מכיל את הסמלים : או @, צריך להשתמש בקידוד URL כדי להחליף אותם ב-%3A וב-%40 בהתאמה.
מידע נוסף
- WHATWG: URL Living Standard
- WHATWG: HTML Living Standard
- URL API
- הסבר על המונחים 'אותו אתר' ו'אותו מקור'
- RFC: Uniform Resource Locators (URL)
- RFC: מזהי URI, כתובות URL ו-URN
- מסד הנתונים של אזור השורש (ספרייה של TLD)
- רשימת סיומות ציבוריות (ספרייה של eTLDs: "סיומת ציבורית היא קבוצה של שמות DNS או תווים כלליים שמשורשרים עם נקודות. הוא מייצג את החלק של שם הדומיין שלא נמצא בשליטה של הרושם הפרטי").
- מילון המונחים של ICANN
- מה זה שם דומיין שמוגדר במלואו?
- כמה דרכים יש לחלק כתובת URL ולתת שמות לחלקים?
- מילון המונחים של MDN Web Docs
- מהי כתובת URL?
- היסטוריית כתובת ה-URL