تفاوت URL و URI

دانستن تفاوت بین URI و URL می تواند مسیر توسعه وب سایت شما را ساده تر کند. به عنوان مثال، می‌توانید راحت‌تر یک REST API طراحی کنید، یک URI یا یک URL هر منبع را در وب شناسایی می‌کند.URL : Uniform Resource Locatorیک URL شناسه ای است که فقط مکان یک صفحه وب را نشان می دهد. به آدرس وب و HTTP، FTP و mailto اشاره دارد.URI: Uniform Resource Identifierیک URI رشته ای از کاراکترها است که به طور کلی هر منبع وب را با استفاده از نام، مکان یا هر دو شناسایی می کند. یک URL و یک (uniform resource name) URN دو نوع URI هستند.به طور خلاصه، تفاوت اصلی بین URI و URL این است که اولی می تواند یک نام، یک مکان یا هر دو باشد، در حالی که دومی فقط مکان یک resource را ارائه می دهد.پروتکل های وب مانند HTTP و HTTPS از URI برای برقراری ارتباط با resources در اینترنت استفاده می کنند. معماری URI ها رشته ای از کاراکترها است که نشان دهنده آدرس یک منبع وب است که معمولاً ترکیبی از نام و آدرس منبع است.اجزای URI protocol://[authority]path[?query][#fragment]۱. پروتکل: قبل از اینکه یک URI بتواند به یک منبع دسترسی پیدا کند، باید نوع پروتکل مشخص شود.http://این پروتکل پرکاربردترین پروتکل در اینترنت است. مخفف عبارت HyperText Transfer Protocol است که برای دسترسی به منابع در اینترنت استفاده می شود.https://این شبیه به http است، اما داده‌های در حال انتقال را با استفاده از یک ارتباط امن (SSL/TLS) رمزگذاری می‌کند.mailtoاین پروتکل برای ارسال و دریافت ایمیل استفاده می‌شود.ftpاین پروتکل که مخفف «پروتکل انتقال فایل» است، فایل‌ها را داخل یک شبکه انتقال می‌دهد.2. authorityاطلاعات کاربر: شامل نام کاربری و پسورد که با colon جدا می‌شوند. دامنه: نام منحصر به فردی است که وب سایت را در اینترنت شناسایی می کند. ( میدانیم که دامین مربوبه به ip هاست/سرور میباشد. پس میتوانیم ip نیز بنویسیم) شماره پورت: این جز اختیاری است و شماره پورت مورد استفاده برای دسترسی به منبع را مشخص می کند.۳. آدرس/path: مکان/آدرس منبع را در ساختار دایرکتوری سرور مشخص می کند. میبایست خالی باشد یا با یک " / " از سایر بخشها جدا شود. برای مثال ۴. کوئری/Query string: این جز اختیاری است و اطلاعات اضافی را مشخص می کند که هنگام درخواست منبع، به سرور ارسال شود.5. Fragment Component:این جز اختیاری شامل یک شناسه قطعه (fragment identifier) است که یک منبع دوم را مشخص می‌کند. این جز به بخش دیگری از منبع اولیه اشاره دارد. قبل از یک قطعه یک نماد هشتگ وجود دارد و با پایان یک URI خاتمه می یابد.یک مثالhttps://example.ir/test/test1?search=test-question#part2protocol = https://domain = example.irpath = /test/test1query = ?search=test-questionfragment = part2دلایلی که باید از URI استفاده کنیمInteroperability یکURI نسبت به URL قابلیت استفاده بیشتری دارد زیرا می‌تواند در سیستم‌ها و پروتکل‌های مختلف استفاده شوند. از سوی دیگر، URLها مختص اینترنت هستند و فقط توسط مرورگرهای وب و سایر برنامه‌های مبتنی بر اینترنت استفاده می‌شوند.برای مثال ISAN یک سریال برای شناسایی آثار صوتی/تصویری مانند فیلم‌ها و مستندها و ... است. با استفاده از urn: scheme یک URI می‌تواند سریال ‌ISAN را بدون استفاده از پروتکل شناسایی کند. برای مثال urn:isan:0000-0000-2CEA-0000-1-0000-0000-Y فیلم سینمای اسپایدر من است. Namespace independenceیک URL مختص اینترنت است و از یک DNS استفاده می کند، در حالی که URIها به یک طرح نامگذاری خاص یا DNS متصل نیستند. این بدان معناست که URI ها می توانند منابع را در هر سیستم نام گذاری ای شناسایی کنند، در حالی که URL ها فقط می توانند منابع موجود در فضای نام اینترنت را شناسایی کنند.Identify abstract and physical resourcesدر واقع URI می‌توانند هر منبعی، مانند شماره تلفن، مکان‌ها، کتاب‌ها و افراد را مشخص کنند. این منبع لزوما محدود به صفحات وب نیست که از طریق اینترنت قابل دسترسی هستند.Multiple URIs can be linked with one resourcبه عنوان مثال، داده های http://www.example.com/abc/2022/Q1 ممکن است در http://www.example.com/abc/Q12022 در دسترس باشد.این باعث می شود client-server بهتر به یک منبع اشاره کند.هزینه‌های URIURIs should be permanentهنگامی که یک URI ایجاد کردید، تغییر آن می تواند به وب سایت شما آسیب برساند. Not compatible with all browsersاگرچه URI ها را می توان در بسیاری از مرورگرهای محبوب مانند Google Chrome و Mozilla Firefox استفاده کرد، برخی از مرورگرهای نسخه قدیمی مانند Internet Explorer 5،6،7 یا Safari 5 و 6 توسط URIs پشتیبانی نمی شوند.چه زمانی از URL استفاده کنیم؟Referring to an email addressRetrieving web pagesRedirecting a resourceمی توانید از یک URL برای هدایت یک سورس قدیمی به آدرس جدید استفاده کنید. معمولاً برای جابجایی یک صفحه وب استفاده می شود. به عنوان مثال، اگر آدرس وب سایت خود را از https://www.blog.example.com به https://www.example.com/blog تغییر دهید، می توانید 301 redirect را پیاده سازی کنید. انجام این کار بازدیدکنندگان را از دریافت HTTP status code مانندخطای 404 جلوگیری می کند.Referring to an internal pageیک URL را می توان بدون پروتکل و نام دامنه نمایش داد، اما فقط یک مسیر را نشان می دهد. از آن برای پیوند دادن یک فایل خاص در همان دامنه استفاده می شود که می توان آن را URL نسبی نامید. به عنوان مثال، URL = https://www.example.com/news/business/elative URL = /news/business/نتیجه گیریدرک تفاوت بین URI یا URL و استفاده از آنها ضروری است. به عنوان مثال، ساختن یک REST API با استفاده از یک URI یا یک URL می تواند عملکرد REST API را بهبود بخشدیک URI مخفف یک شناسه منبع یکنواخت است، یک رشته کاراکتر که به طور کلی یک منبع را با نام، مکان یا هر دو، در اینترنت شناسایی می کند. همچنین، یک URI می تواند انواع فایل ها و منابع دیگر را متمایز کند.از سوی دیگر، URL رشته ای از کاراکترها است که آدرس منبع و نحوه دسترسی به آن را در صفحه وب نشان می دهد. از آنجایی که URL بخشی از یک URI است، آنها از ساختار مشابهی پیروی می کنند.منابع:https://refine.dev/blog/uri-vs-url/https://www.hostinger.com/tutorials/uri-vs-url