מהם החלקים בכתובת URL?

ברוב המקרים, אפשר לומר דברים כמו "קניתי דומיין" או "התמונות שלנו מתארחות באתר אחר", גם אם זה לא נכון לגמרי. עם זאת, בהקשרים מסוימים צריך להיות מדויקים יותר. לדוגמה, כשעוסקים בקובצי 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 והתווית שלפניו. לדוגמה: עבור כתובת ה-URL https://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 בהתאמה.


מידע נוסף