URL در مقابل URI

امروزه همهی ما در زندگی روزمره مان از url ها استفاده میکنیم. بعضی اوقات آن ها را تایپ می کنیم و گاهی هم توسط آن ها هدایت میشویم. جالب است بدانید بر خلاف تصور همهی ما، http://google.com و یا persian-college.com که فکر میکنیم در واقع url هستند، URI هستند. URI ها در واقع مجموعه ی عظیمی از URL ها و دیگر موارد که URN نامیده میشوند را شامل میشوند. در واقع میتوان اینطور نتیجه گرفت که تمامی URL ها URI هستند. ولی عکس این موضوع صحیح نیست.
چرا؟
زیرا URI ها میتوانند منبع یک نام و یا یک مکان باشند. ولی URL تنها یک مکان است. برای روشن شدن موضوع یک مثال ساده و قابل فهم را عنوان میکنیم:
فرض کنید نام شما علی است و آدرس مکانی که در آن زندگی میکنید خیابان ولیعصر کوچه ی سوم باشد. نام شما در واقع همان URN شماست و آدرس شما همان URL. شما با استفاده از نام و یا آدرستان به عنوان یک شخص یکتا شناسایی میشوید. آن هویت یکتا URI شماست. گرچه نام شما نیز میتواند هویت یکتای شما باشد (URI)، ولی نمیتواند URL شما باشد زیرا نام شما به کسی در پیدا کردن آدرس شما کمک نخواهد کرد. به عبارت دیگر، URI (که میتوانند URN) باشند، URL نیستند.
حال بیاید به دنیای اینترنت قدم بگذاریم. در این نوشته، ما دربارهی چیستی URL و URI ها بحث خواهیم کرد و گذری هم به تفاوت هایشان خواهیم زد.
ولی قبل از آن، تا حالا از خودتان پرسیده اید:
- چگونه URL و URI به وجود آمدند؟
- چه کسی آن ها را به وجود آورد و بر چه اساسی پرورششان داد؟
- و این که چرا افراد میان این دو گیج میشوند؟
به من اعتماد کنید، بعد از خواندن این نوشته از آن پشیمان نخواهید شد چرا که قرار است اطلاعات جالبی دربارهی این موضوع به دست آورید.
حتما تا به حال باید نام (W3C (World Wide Web Consortium و (IETF (Internet Engineering Task Force به گوشتان خورده باشد. مدل www که امروزه ما استفاده میکنیم ساختهی موسس W3C یعنی تیم برنرز لی میباشد و همینطور وب و HTML نیز از منسوب به ایشان است. W3C مشارکت کننده در تعریف URI و URI میباشد. IETF نیز بر روی استاندارد های مربوطه اینترنت کار میکند. بدین منظور، W3C و IETF پیوسته در حال تلاشند و در حالی که IETF تعاریف مختلفی برای URL و URI ارایه میدهد، برخی از متخصصان وب به طور نامناسب از آن استفاده میکنند و درگیر کج فهمی میشوند.
یک URI چیست؟
URI مخفف Uniform Resource Identifier است. میتواند یک نام، مکان نما و یا هر دو باشد. URI میتواند شامل URL و URN باشد. اگرچه، زمانی که URI فقط یک نام باشد، بدین معنیست که نمیتواند یک URL باشد.
URI شامل طرح، اعتبار، مسیر، پرس و جو و قطعه در ترتیب مشابه است. بعضی از مشهور ترین طرح های URI که ما استفاده میکنیم HTTP و https و ftp و Idap و mailto و telnet و gopher و new و … هستند.
ساختار کلی URI از IEFTs RFC 3986 پیروی میکند.
ساختار به صورت زیر میباشد:
URI = scheme “:” hier-part [ “?” query ] [ “#” fragment ]
مثال)
https://persian-college.com/courses
این یک نمونه از رایج از URI هاست که ما آن را به عنوان URL میشناسیم.
ولی این چطور:
نمونه ی بالا یک URI است و نه یک URL. یک منبع را مشخص میکند. یک منبع میتواند هرچیزی باشد. نیازی ندارد که همیشه یک وب سرویس باشد. ممکن است یک عکس باشد و یا یک سند و یا حتی یک مجموعه از چندین منبع دیگر.
در واقع، یک URI میتواند موارد زیر باشد:
- URL
- URN
URL
حالا که میدانیم URI چیست مفهوم URL باید بسایر واضح تر شود. همیشه به یاد داشته باشید، URI میتواند شامل URL باشد ولی URL فقط آدرس یک منبع را مشخص میکند. همان طور که از نامش پیداست، یک مکاننما است. URI گسترده تر از URL میباشد.
URL شامل اطلاعات زیر است:
- پروتکل مورد نیاز برای دستیابی به منبع موردنظر. مثل : HTTP و https و ftp و … .
- مکان سرور با استفاده از آیپی آدرس و یا نام دامنه. برای مثال، persian-college.com نام دامنه است. در اینجا منبع با آدرس آیپی https://51.15.149.64 مشخص میشود.
- شماره پورت بر روی سرور. برای مثال http://localhost:8080 ، که 8080 در واقع همان پورت است. البته نیازی نیست که پورت ذکر شود.
- مکان دقیق در ساختار مسیر بر روی سرور. برای مثال، آدرس https://persian-college.com/courses یک مکان دقیق است که اگر یک کاربر بخواهد تا به صفحهی دوره ها دسترسی داشته باشد میتواند از آن استفاده کند.
- یک بخش مشخص کنندهی انتخابی. برای مثال، https://www.google.com/search?ei=ARDsXO-1EL7az7sPvbWigAo&q=URL مقداری که بعد از =q وارد میشود در واقع همان رشته کوئری است که کاربر وارد میکند.
چگونه URI را از URL متمایز کنیم؟
خب، اگر بخواهید بفهمید که ‘چیزی’ URI است و یا URL، باید همیشه آن را یک URI در نظر بگیرید زیرا تمامی URL ها در واقع URI نیز هستند.
مقایسه دقیق URI و URL
امیدواریم که در این مقایسهی شانه به شانه کامل مفهوم هر یک را متوجه شوید و گیج نشوید.
URI | URL |
مشخص کننده یک منبع | مکاننمای یک منبع |
گستردهتر از URL | نوعی از URI |
ساختار: scheme:[//authority]path[?query][#fragment] where authority = [userinfo@]host[:port] |
ساختار:
[protocol]://www.[domain_name]:[port 80]/[path or exaction resource location]?[query]#[fragment] |
اسکیما میتواند هرچیزی باشد. مثل، پروتکل – نام و … | اسکیما همیشه یک پروتکل مثل HTTP و یا ftp و … باید باشد. |
وظیفهی اصلی آن مشخص کردن یک منبع و متمایز ساختن آن با استفاده از مکان و یا نام از دیگر منابع است. | وظیفهی اصلی آن به دست آوردن آدرس و یا مکان یک منبع است. |
مثال:
contact: +1 883-345-1111, urn:isbn:1234567890 |
مثال: |
در HTML و XML و کتابخانه های برچسبی مثل XSLT و jstl به منظور مشخص کردن منابع به کار میروند. | URL فقط برای پیدا کردن صفحات وب است. |
نتیجه گیری
با این که لغت URL رایجتر است و در زندگی روزمره ما بیشتر از آن استفاده میکنیم، ولی میتوان از URI در مبحث های بزرگ تر به عنوان یک مفهوم فراگیر تر استفاده کرد. URL و URN هردو مشخص هستند و محدود هستند. تفاوت میان URI و URL بسیار نامحسوس است و تنها زمانی قابل درک است که URI نشان دهندهی نام است. ولی زمانی که بحث مکان است، URI به مانند URL است.
مطالب زیر را حتما بخوانید
-
جنگو در مقابل لاراول: در سال 2019 کدام چارچوب را انتخاب کنید؟
791 بازدید
-
ویندوز در مقابل لینوکس: کدام سیستم عامل بهترین گزینه برای شما است؟
783 بازدید
-
NGINX در مقابل Apache: بیشتر بدانید
173 بازدید
-
اسکریپت نویسی Cross-site در innerHTML.
143 بازدید
-
چگونه با 3 خط کد،همزمانی را در پایتون ایجاد کنیم
236 بازدید
پاسخی بگذارید