1. লাইব্রেরি
  2. HTTP והרשת
  3. יסודות HTTP

আপডেট হয়েছে ১ মাস আগে

כל קישור שלחצת עליו אי פעם הוא כתובת URL. השתמשת באלפים מהן. הן עובדות בצורה כל כך אמינה שכנראה מעולם לא חשבת על מה שהן בעצם מבטיחות — או מה קורה כשהבטחה הזו נשברת.

אתר עובר לדומיין חדש. חברה מארגנת מחדש את מבנה הקבצים שלה. שרת מוצא משירות. כתובת ה-URL נשברת. המשאב עדיין קיים איפשהו. פשוט לא ניתן למצוא אותו יותר.

זו הבעיה ש-URN נועד לפתור.

URI: המושג הכולל

URI (Uniform Resource Identifier) הוא כל מחרוזת שמזהה משאב באופן ייחודי. זהו. זו הקטגוריה הכוללת.

URIs מגיעים בשני סוגים:

  • URLs מזהות משאבים לפי מיקום
  • URNs מזהות משאבים לפי שם

כל URL הוא URI. כל URN הוא URI. אבל הם פותרים בעיות שונות.

URLs: היכן משהו נמצא

URL (Uniform Resource Locator) מספר לך כיצד להגיע למשהו: הפרוטוקול, הדומיין והנתיב.

https://www.connected.app/support/topics/dns
  │            │                    │
פרוטוקול    דומיין                נתיב

כתובות URL הן הוראות. "השתמש ב-HTTPS. התחבר לשרת זה. בקש משאב זה." הדפדפן יודע בדיוק מה לעשות.

https://www.example.com/page.html    — דף אינטרנט
ftp://files.example.com/doc.pdf      — קובץ דרך FTP
mailto:support@connected.app         — כתובת דואר אלקטרוני
tel:+1-555-123-4567                  — מספר טלפון

כל אלה מציינים מיקום ושיטת גישה. זה מה שהופך אותם ל-URLs.

URNs: מה משהו הוא

URN (Uniform Resource Name) מזהה משאב לפי שם בתוך מרחב שמות. לא היכן הוא נמצא — מה הוא.

urn:isbn:978-0-134-68599-1

זה מזהה ספר ספציפי לפי ה-ISBN שלו. כנס לכל חנות ספרים בעולם, תן להם את המספר הזה, והם יודעים בדיוק לאיזה ספר אתה מתכוון. המזהה עובד ללא קשר לאיזה מדף הוא מונח, באיזה מחסן הוא מאוחסן, או באיזה אתר הוא נמכר.

urn:isbn:978-0-134-68599-1                      — ספר
urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66   — מזהה ייחודי
urn:ietf:rfc:3986                               — מסמך RFC

המחיר ברור: URN מזהה משהו לצמיתות, אבל הוא לא מספר לך כיצד להשיגו. אתה צריך מערכת נפרדת — קטלוג ספרייה, שירות מפענח, מנוע חיפוש — כדי להפוך את המזהה הזה למשהו שאפשר לאחזר בפועל.

ההבדל המרכזי

URL הוא הבטחה לגבי מיקום. URN הוא הבטחה לגבי זהות.

הבטחות לגבי מיקום נשברות כשדברים זזים. הבטחות לגבי זהות — לא.

זה משפיע על האופן שבו מערכות נבנות:

  • מאמרים אקדמיים משתמשים ב-DOIs (סוג של URN) כי מאמרים מצוטטים לאורך עשרות שנים בזמן שאתרי כתבי עת מתארגנים מחדש ללא הרף
  • ספרים משתמשים ב-ISBNs כי אותו ספר עשוי להימכר אצל אלפי קמעונאים שונים
  • רשומות מסד נתונים משתמשות ב-UUIDs כי רשומות עוברות בין מערכות

לחיצה על קישורים — כתובות URL מספיקות. אבל כשמדובר בהפניות שצריכות לשרוד מעבר, ארגון מחדש, ואת מבחן הזמן — דרושים URNs.

מדוע כולם מבלבלים ביניהם

כמעט כל URI שנתקלים בו ברשת הוא URL. כשמישהו אומר "URI" הוא בדרך כלל מתכוון ל-"URL." זה לא שגוי — רק לא מדויק.

ההבחנה חשובה רק כאשר בונים מערכות עם מזהים קבועים, מעצבים API עם הפניות יציבות, או עובדים בהקשרים שבהם משאבים זזים אבל ההפניות אליהם לא אמורות להישבר.

לשאר, המונחים ניתנים להחלפה. וזה בסדר גמור.

שאלות נפוצות על URIs, URLs ו-URNs

האם כל URL הוא URI?

כן. URL הוא סוג ספציפי של URI — אחד שמזהה משאב לפי מיקומו. כל URL הוא URI, אבל לא כל URI הוא URL (חלקם הם URNs).

מתי כדאי להשתמש ב-URN במקום URL?

כשהמשאב עלול לזוז. אם עלול לעבור לספק אחסון אחר, להתארגן מחדש, או להיות נגיש דרך ערוצים מרובים — URN מספק הפניה יציבה שתישאר תקפה גם לאחר מעבר. אם צריך פשוט להצביע על משהו במיקום ידוע, URL הוא הפתרון הפשוט יותר.

האם משאב יכול להיות בעל גם URL וגם URN?

כן, ורבים כאלה. לספר יש URN (urn:isbn:978-0-134-68599-1) שמזהה אותו לצמיתות, ובנוסף מספר URLs שמצביעים על קמעונאים עכשוויים. ה-URN הוא הזהות. כתובות ה-URL הן המיקומים הנוכחיים. כשבארנס אנד נובל מארגנת מחדש את האתר שלה, ה-ISBN עדיין עובד.

מה קורה כש"לוחצים" על URN?

כלום, כברירת מחדל. URNs לא מכילים הוראות גישה — זו הפשרה עבור הקביעות. כדי לאחזר משאב שמזוהה ב-URN, נדרש מפענח: מערכת שממפה את ה-URN לכתובת URL עכשווית. מפענחי DOI עושים זאת עבור מאמרים אקדמיים. מערכות ספרייה עושות זאת עבור ISBNs.

এই পৃষ্ঠাটি কি সহায়ক ছিল?

😔
🤨
😃