URL در مقابل URI

باید ها و نباید های URL و URI

در این مقاله قصدر دراریم در مورد “URL در مقابل URI” صحبت کنیم و از شما میخوایم تا اخر مقاله با ما همراه باشید .

URL چیست؟
آدرس‌های URL در واقع یک آدرس جهانی برای اسناد و پروتکل‌های مختلف هستند که به واسطه‌ی آن‌ها می‌توان منابع یک شبکه‌ی رایانه‌ای را بازیابی کرد. URLها اغلب با عنوان صفحات وب(HTTP) توصیف می‌شوند، اما می‌توان از آن‌ها برای دسترسی به پایگاه داده با استفاده از JDBC، ایمیل(mailto)، پروتکل انتقال فایل(FTP) و بسیاری از کاربردهای دیگر نیز استفاده کرد. شایان ذکر است که URL مخفف Uniform Resource Locator یا اصطلاح «تعیین کننده‌ی موقعیت منابع یکسان» می‌باشد.

URI چیست؟
URI چیست؟
URI رشته‌ای طویل متشکل از کاراکترهای مختلفی است که یک منبع فیزیکی یا منطقی را از سایر موارد موجود متمایز می‌کند. URI برای اطمینان از یکنواختی و عدم تکرار از قوانین سینتکس با «بخش‌های مختلف» بهره می‌برد. علاوه بر این، URI می‌تواند از طریق طرح نامگذاری سلسله مراتبی، قابلیت توسعه و تمدید را هم حفظ کند. URI مخفف
Uniform Resource Identifier به معنای «تعیین کننده‌ی هویت منابع یکسان» می‌باشد.

همانطور که در تصویر بالا مشاهده می‌کنید، دو نوع URI وجود دارد:

URL: URL یک محل مشخص بر روی شبکه‌ی رایانه‌ای را تعیین کرده و تکنیک بازیابی آن را ارائه می‌دهد.

URN: نام منبع یکسان یا URN نوعی منبع اینترنتی است که طرح یا Scheme مربوط به URN را مشخص می‌کند.

URL و URI
نمودار وِن برای URIها و URL
همانطور که در نمودار فوق هم ذکر شده است، نام شما می‌تواند URI باشد، زیرا به واسطه‌ی آن شما شناسایی می‌شوید. این نام نمی‌تواند URL باشد زیرا در پیدا کردن آدرس منزل شما به کسی کمک نمی‌کند.

از سوی دیگر، آدرس منزل شما می‌تواند هم URI و هم URL باشد. این دلیل این امر هم این است که این آدرس هم می‌تواند تعیین کننده‌ی موقعیت مکانی شما و هم هویت شما باشد.

ترکیب یا سینتکس URL

در این بخش سینتکس یا بخش‌های URL نمایش داده شده است:

http://www.domainname.com/folder-name/web page-file-name.htm

ما می‌توانیم آدرس یا همان URL فوق را به قسمت‌های زیر تقسیم کنیم:

پروتکل: که همان قسمت ابتدایی URL می‌باشد. در این مثال پروتکل آدرس ما «پروتکل» انتقال نوشتار ترکیبی» یا همان «HTTP» است.
دامنه: قسمت http://www.domainname.com نام دامنه‌ی شما است. این دامنه همچنین به عنوان شناسه‌ی سرور یا شناسه‌ی میزبان هم شناخته می‌شود.
قسمت /folder-name/: این قسمت از آدرس فوق نشان دهنده‌ی آن است که صفحه‌ی وب در کدام «پوشه» از وب‌سرور مورد نظر ما بایگانی شده است.
قسمت web-page-file-name.htm: این بخش در واقع نام فایل صفحه‌ی اینترنتی مورد نظر ما است. بخش انتهایی آدرس که با «.htm» نمایش داده شده، یک افزونه برای فایل HTML است که نشان می‌دهد این صحفه یک صفحه‌ی اینترنتی «ایستا» یا «استاتیک» می‌باشد. نام فایل‌های می‌توانند افزونه‌های مختلفی داشته باشند و یا بسته به نحوه‌ی تنظیم سرور وب تغییر کنند. حتی ممکن است هیچ افزونه‌ای وجود نداشته باشد و آدرس URL ما تنها با یک خط مورد یا / پایان یابد.
چند مثال:

این آدرس که به عنوان یک نمونه ارائه شده است، دارای پوشه‌بندی بوده و هیچ افزونه‌ای ندارد:

https://career.guru99.com/category/heavy-industries/

در این نمونه هم آدرس URL هیچ پوشه‌ای ندارد:

https://www.guru99.com/what-is-sap.html

در این مثال هم آدرس URL هیچ افزونه‌ای ندارد:

https://career.guru99.com/top-33-investment-banking-interview-questions-answers/

ترکیب یا سینتکس URI:
در این بخش ترکیب یا همان سینتکس URI را بررسی می‌کنیم. مثال:

URI = scheme:[//authority]path[?query][#fragment]

URI فوق شامل بخش‌های زیر است:
مولفه‌های Scheme یا طرح: این بخش یک جزء غیرخالی است(نباید خالی باشد) که پس از آن علامت دو نقطه قرار می‌گیرد. مولفه‌ی Scheme یا طرح شامل یک دنباله از کاراکترهای مختلف است که با یک حرف آغاز شده و پس از آن هر ترکیبی از اعداد، حروف، نقطه، علامت منفی و علامت مثبت را می‌توان قرار داد.

نمونه‌هایی از مولفه‌های Scheme شناخته شده عبارتند از HTTP، HTTPS، mailto، فایل، FTP و مواردی از این دست. مولفه‌ی Scheme یا طرح URL همیشه باید در ادامه‌ی شماره‌های اختصاص داده شده به اینترنت یا IANA ثبت شوند.

بخش Authority یا اختیارات: این بخش کاملاً اختیاری بوده و با علامت // آغاز می‌شود. مولفه‌ی اختیارات از بخش‌های زیر تشکیل شده است:
زیرمجموعه‌ی اطلاعات کاربری اختیاری که ممکن است شامل نام کاربری و رمز عبور باشد.
یک مولفه‌ی میزبان یا هاست فرعی که حاوی آدرس IP یا یک نام ثبت شده می‌باشد.
یک پورت فرعی اختیاری که پس از آن علامت دو نقطه قرار می‌گیرد.
بخش Path یا مسیر: یک مسیر شامل دنباله‌ای از بخش‌های مختلف است که توسط علامت / جدا می‌شود.
بخش Query یا پرسش: این بخش اختیاری بوده و در صورت استفاده پیش از آن یک علامت سوال قرار می‌گیرد. مولفه‌ی پرسش شامل یک رشته‌ی داده‌های غیر سلسله‌ مراتبی است.
مولفه‌ی Fragment یا قطعه‌قطعه: این قسمت نیز اختیاری بوده و در صورت استفاده پیش از آن یک علامت هشتگ(#) قرار می‌گیرد. این جزء شامل یک شناسه‌ی Fragment است که به یک منبع ثانویه جهت می‌دهد.

یک مثال از URI:
در این آدرس هیچ پروتکلی ذکر نشده است:

www.guru99.com

در این مثال هم به هیچ دامنه‌ای اشاره نشده است:

what-is-sap.html

در این مثال پروتکل ذکر شده است:

ldap://[2001:db8::7]/c=GB?objectClass?one

mailto:[email protected]

tel:+1-816-555-1212

telnet://192.0.2.16:80/

سردرگمی‌های موجود در رابطه با URN

یک اشتباه رایج در رابطه با URN وجود دارد و این است که اگر پروتکل‌هایی مانند FTP، HTTPS و غیره را پیاده‌سازی کنید، به آن می‌توان URL گفت، حتی اگر یک URI باشد.

مشکل اینجاست که RFC مناسب بسیار متراکم است وحتی گاهی اوقات می‌تواند متناقض باشد. به عنوان مثال RFC 3986 اعلام می‌کند که URI می‌تواند هم یک اسم، هم یک موقعیت و یا هردو آن‌ها باشد.

چرا URL؟
در این بخش دلایل مهمی ارائه می‌شود که چرا باید از URL‌ استفاده کرد:

اطلاعاتی که در URL نوشته می‌شود این امکان را به شما می‌دهند که فقط با یک کلیک از یک صفحه‌ی اینترنتی به صفحه‌ی دیگری بروید.
آدرس URL به شما می‌گوید که چطور به یک منبع خاص دسترسی پیدا کنید.
هر زمان که آدرس URL را در مرورگر اینترنتی خود وارد کرده و بر روی یک لینک کلیک کنید، نرم‌افزار مرورگر شما یک درخواست برای سرور ارسال کرده تا یک یا چند فایل را دانلود کند.
آدرس‌های URL منحصر به فرد بوده و هرکدام تنها به یک پرونده‌ی خاص منتهی می‌شود.
آدرس URL‌ یا دامنه‌ی یک وب‌سایت یکی از مهم‌ترین قسمت‌های وب‌سایت شما محسوب می‌شود. با استفاده از کلمات بسیار ساده و یا رشته‌ای از اعداد و حروف که معمولاً با .org، .com یا .net به پایان می‌رسد و با استفاده از آن می‌تواند به وب‌سایت مدنظر خود مراجعه کنید.
چرا URI؟
در این بخش دلایل مهمی ارائه می‌شود که چرا باید از URI استفاده کرد:

تعیین کننده‌ی هویت منابع یکسان یا همان URI برای شبکه‌ی سیمانتیک بسیار مهم و اساسی است، زیرا از ابهام جلوگیری می‌کند.

URI هم نام و هم موقعیت مکانی منبع یا پرونده‌ی مورد نظر را جستجو می‌کند، مشخصاتی که فرمت یکسانی دارد.

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

URI روشی ارائه می‌کند که به واسطه‌ی آن سایر سیستم‌های موجود بر روی شبکه‌ی جهانی وب یا رایانه‌های یک شبکه هم می‌توانند به منابع دسترسی داشته باشند. از این روش برای مرورگرهای اینترنتی و نرم‌افزارهای اشتراک‌گذاری فایل نقطه به نقطه(P2P) جهت یافتن و دانلود فایل استفاده می‌شود.

URI اجازه می‌دهد تا بدون تاثیرگذاری بر روی پرونده‌های قدیمی‌تر، انواع جدید‌تری از فایل‌ها تعریف شوند.

شما می‌توانید برای ارتباط با چندین نماینده از یک منبع واحد استفاده کنید.

URL در مقابل URI
URL در مقابل URI
URI URL
تعیین کننده‌ی هویت منابع یکسان مخفف «تعیین کننده‌ی موقعیت منابع یکسان»
URI یک مجموعه‌ی بزرگ‌تر از URL است که با استفاده از URL یا URN(نام منحصر به فرد منبع) و یا هردو می‌تواند هویت منبع را متمایز و مشخص کند. URL یک زیرمجموعه‌ی URI است که تعیین‌کننده‌ی موقیت یک منبع بوده و مکانیسم بازیابی آن را مشخص می‌کند.
هدف از URI پیدا کردن یک منبع و تمایز آن از سایر منابع با استفاده از نام یا مکان آن است. هدف دستیابی به موقعیت و یا آدرس یک منبع است.
از URI در HTML، XML و سایر فایل‌های XSLT(نوعی زبان برنامه‌نویسی) و موارد دیگر استفاده می‌شود. URL تنها برای یافتن صفحات وب مورد استفاده قرار می‌گیرد.
در URI مولفه‌ی Scheme می‌توانند هرچیزی از جمله پروتکل، مشخصات، نام و غیره باشد. مولفه‌ی Scheme آن باید یک پروتکل مانند HTTP، HTTPS، FTP و غیره باشد.
در URI هیچ اطلاعات پروتکلی داده نمی‌شود. اطلاعات پروتکل در URL ارائه می‌شود.
یک نمونه از URI:
urn:isbn:0-486-27557-4

یک نمونه از URL:
https://google.com

URI شامل مولفه‌هایی مانند طرح، authority، مسیر، پرسش، مولفه‌ی قطعه‌ و غیره است. URL شامل مولفه‌هایی مانند پروتکل، دامنه، مسیر، هش، رشته‌ی پرسش و غیره است.
از آنجا که یک URI می‌تواند به جای موقعیت تنها یک نام باشد، از این رو همه‌ی URIها نمی‌توانند URL باشند. همه‌ی URLها می‌توانند URI باشند.

تفاوت‌های کلیدی:
URL زیرمجموعه‌‌ای از URI است که تعیین‌کننده‌ی موقعیت یک منبع فعلی بوده و مکانیسم بازیابی آن را تعیین می‌کند، درحالیکه URI یک مجموعه‌ی بالاتر از URL است که هویت یک منبع را مشخص می‌کند.

هدف اصلی از URL دریافت و مشخص کردن موقعیت یا آدرس یک منبع است، درحالیکه هدف URI یافتن منابع می‌باشد.

از URL تنها برای یافتن صفحات وب استفاده می‌شود، از سوی دیگر از URI برای یافتن HTML، XML و فایل‌های دیگر استفاده می‌شود.

URL شامل مولفه‌هایی از جمله پروتکل، دامنه، مسیر، هش‌، و غیره است؛ در حالیکه URI شامل مولفه‌هایی همچون scheme، authority، path، query و غیره است.

برای یک مثال از URL می‌تواند به آدرس « https://google.com» اشاره کرد، درحالیکه URI به شکل urn:isbn:0-486-27557-4 می‌باشد.