URI چیست؟ تفاوت آن با URL چیست؟

زمانی که اولین بار با مفهوم REST آشنا شده بودم عبارت URI توجهم را جلب کرده بود. بعد از جستجو در گوگل متوجه شدم که URI مخفف Uniform Resource Identifier است و کمی بیشتر که جستجو کردم با شکل زیر مواجه شدم که بیانگر این موضوع است که URI دربرگیرنده URL می‌باشد و در REST برای نامگذاری منابع از URI استفاده می‌شود (و نه URL). در واقع هر URI یک سری کاراکتر است که دسترسی به یک منبع(resource) را مشخص می‌کند.

رابطه URI، URL و URN

رابطه URI، URL و URN

تعریف URI مطابق با RFC 3986 (سال ۲۰۰۵):

URI مجموعه‌ای از کاراکترهایی است که مشخص‌کننده یک منبع می‌باشد.

مثال:

ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:John.Doe@example.com
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2

تعریف URN مطابق با RFC 2141 (سال ۱۹۹۷):

URN ها (مخفف: Uniform Resource Names) شناسه‌هایی ماندگار (persistent)  و مستقل از موقعیت (location-independent) برای دسترسی به منبع هستند. به طور کلی URNها از سینتکس زیر پیروی می‌کنند:

<URN> ::= "urn:" <NID> ":" <NSS>

مثال:

urn:issn:1082-9873
urn:doi:10.1000/1
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
urn:isbn:0451450523

تعریف URL مطابق با RFC 1738 (سال ۱۹۹۴):

URL ها (مخفف: Uniform Resource Locators) برای یافتن موقعیت منابع استفاده می‌شود که این کار با استفاده از شناسه‌ای که بیانگر مکان منبع می‌باشد صورت می‌گیرد. به طور کلی URLها از سینتکس زیر تبعیت می‌کنند:

<scheme>:<scheme-specific-part>

مثال:

http://sdncentral.ir/?p=7063

مقایسه URL، URI و URN

یک URI می‌تواند  Locator یا Name و یا هردو باشد. URL یک URI است که علاوه بر هویت دادن به یک منبع (resource)، روش دسترسی به آن را نیز مشخص می‌کند (مثلا موقعیت آن در شبکه). ولی URN یک شناسه منحصر به فرد است که هیچ‌گاه تغییر نمی‌کند. URL ای که مرتبط با یک منبع است ممکن است تغییر کند (مثلا آدرس یک صفحه وب می‌تواند توسط ادمین آن سایت ویرایش شود) ولی یک URN هیچگاه تغییر نمی‌کند چون آدرس آن منبع نیست و در واقع هویت آن منبع است! مثلا ISBN یکی از URN های معروف می‌باشد که بیانگر شناسه یک کتاب است و همیشه ثابت می‌باشد ولی لینک دانلود و خرید آن کتاب می‌تواند تغییر کند.

جمع‌بندی

  1.  یک URL نوعی URI است و درست نیست شخصی بگوید که URL درست است و URI اشتباه است.
  2. همه URL ها URI می‌باشند  ولی همه URI ها URL نمی‌باشد(شکل فوق). همه پروانه‌ها پرواز می‌کنند ولی هرچیزی که پرواز کند پروانه نیست!
  3.  اگر فرض کنیم انسان یک منبع است، URN  همانند کدملی شخص بیانگر هویت یکتای منبع می‌باشد و URL  بیانگر آدرس خیابان شخص است. به عبارت دیگر، URN هویت یک آیتم را تعریف می‌کند درحالیکه URL روش دسترسی به آن را مشخص می‌نماید.
  4.  قسمتی که URI را تبدیل به URL می‌کند “روش دسترسی” یا “آدرس شبکه” است؛ مثلا //:http یا //:ftp.
  5.  URN شناسه‌ی “بصورت جهانی منحصر به فرد” آن منبع می‌باشد؛ و حتما باید یک نام یکتا باشد.

 

منابع:

 

URI چیست؟ تفاوت آن با URL چیست؟
میانگین 5 امتیاز از 2 رای

(4) دیدگاه

  • ناشناس پاسخ

    درود برشما وب سایت خیلی خوبییی بود
    ممنون از اشتراک گذاریتون
    موفق و پیروز باشید دوست عزیز

    ۱۸ بهمن ۱۳۹۶ در ۱:۲۱ ب.ظ
  • payam پاسخ

    خدا خیرتان بدهد

    ۵ اسفند ۱۳۹۶ در ۲:۰۹ ب.ظ
  • محمد پاسخ

    باسلام و خدا قوت بابت سایت خوبتان
    در مورد4 عبارت URI به عبارت URN اصلاح گردد.
    با تشکر

    ۱۱ فروردین ۱۳۹۷ در ۶:۲۷ ق.ظ
  • آریا جهان پاسخ

    از مطالب خوبتون استفاده میکنیم?

    ۷ اردیبهشت ۱۳۹۷ در ۱۲:۳۷ ب.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *