کالبد شکافی URL

نویسنده پوریا ستایش پوریا ستایش
1399/05/01
0
88
زمان مطالعه 7 دقیقه
کالبد شکافی URL

از وقتی پروتکل HTTP مطرح شد ، URL به‌عنوان یکی از مفاهیم کلیدی وب مطرح شد. ولی واقعاً URL به چه معناست؟ آیا نام دامنه همان URL است؟

آیا URL فقط برای دسترسی به فایل‌هاست؟ نام دامنه چیست؟ چرا URL منحصر به فرد است؟

در این مقاله به پرسش‌های بالا با ذکر مثال پاسخ خواهیم داد.

URL چیست؟

در اصل ، URL مجموعه‌ای از عبارت‌ها است که کاربران را به‌جاهایی که علاقه دارند می‌رساند.

URL مخفف عبارت Uniform Resource Locator است. به‌طور خلاصه URL یک آدرس است که به‌وسیله مرورگر برای رسیدن به یک هدف در وب استفاده می‌شود. این هدف ممکن است آدرس یک سایت مثل google ، لینک دانلود یک فیلم و...  باشد، که هر کدام را «Resource» یا منبع می‌گویند.

چنین منابعی می‌توانند یک صفحه HTML ، یک فایل CSS، یک تصویر و ... باشند. در واقع نوع منبع اهمیتی ندارد؛ تنها چیزی که مهم است وجود داشتن فایل مورد نظر در سرور است. URL چیزی بیشتر از آدرس یک منبع منحصر به فرد در وب نیست.

موارد استثنائی نیز وجود دارد که همه ما آن‌ها را می‌شناسیم. به‌عنوان مثال URL ای داریم که به منبعی اشاره می‌کند که دیگر وجود ندارد و در نتیجه آن با عبارت «404» یا «صفحه موردنظر یافت نشد» مواجه می‌شویم. از نظر فنی وظیفه مدیر یک سرور است که صحت یک URL را بررسی کرده و از کارکرد آن اطمینان داشته باشد. چون منبع توسط URL در اختیار کاربران قرار می‌گیرد و خود URL نیز توسط سرور مدیریت می‌شود.

در اینجا چند نمونه از URL ها نوشته شده است:

https://dornam.com
https://dornam.com/blog/seven-tips-for-start-learning-language
 

هر یک از این URL ها را می‌توانید در نوار آدرس مرورگر خود تایپ کنید تا به مرورگر دستور دهید که URL مورد نظر را برای شما باز کند.

آیا URL همان نام دامنه است؟

بسیاری از افراد این‌گونه گمان می‌کنند؛‌ باکمال تعجب باید بگوییم پاسخ منفی است.

اما اصطلاحات نام دامنه و URL بعضی اوقات به‌جای یکدیگر استفاده می‌شوند. باید دانست تفاوت‌هایی بین این دو وجود دارد.

به‌طور خلاصه نام دامنه بخشی از URL است. تفاوت را می‌توانید از تصویر زیر مشاهده کنید:

URL و تفاودتش با دامنه

بگذارید کمی بیشتر در مورد داستان دامنه و URL توضیح دهیم.

نام دامنه چیست؟

چند کامپیوتر که به یکدیگر متصل می‌شوند یک شبکه را تشکیل می‌دهند. همان‌طور که می‌دانید شبکه اینترنت مجموعه‌ای از سایت‌ها است که هر سایتی روی یک کامپیوتر قرار دارد که به آن کامپیوتر، سرور می‌گویند.

برای اینکه رایانه‌ها در شبکه با یکدیگر صحبت کنند، به زبانی متشکل از اعداد و حروف تکیه می‌کنند که به آن آدرس IP می‌گویند. هر دستگاهی که به اینترنت متصل شود دارای یک آدرس IP منحصر به فرد است و چیزی شبیه به دو عبارت زیر است:

22.231.113.64
3ffe:1900:4545:3:200:f8ff:fe21:67cf

فرض کنید به‌جای تایپ عبارت google.com مجبور بودیم عبارت بالا را تایپ کنیم. پس تایپ کردن آدرس IP برای کاربر به هیچ عنوان مورد پسند نیست.

در نتیجه نام دامنه ایجاد شده است برای جایگزینی آدرس IP با چیزی که به‌آسانی در یادها می‌ماند. می‌توانید نام دامنه را به‌عنوان لقب برای آدرس IP در نظر بگیرید. و حالا باید بدانیم یک URL نه تنها شامل نام دامنه می‌شود همچنین شامل اطلاعات دیگری نیز برای هدایت کاربران به یک منبع در اینترنت است.

هر صفحه وب دارای یک URL منحصر به فرد است. این منحصر به فرد بودن از کجا آمده است؟ نام دامنه است که باعث منحصر به فرد بودن URL ها شده است. هیچ‌وقت با تایپ google.com انتظار باز شدن صفحه‌ای متفاوت را نداریم چون منحصر به فرد است.

تجزیه یک URL

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

http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument

پروتکل در URL یعنی چی؟

پروتکل در URL

در ابتدا باید بدانیم، پروتکل یک روش برای انتقال داده‌ها از طریق اینترنت است. HTTP در ابتدای URL، نشان‌دهنده پروتکل است. قسمت اول URL نشان می‌دهد، مرورگر از چه پروتکلی باید استفاده کند.

برای وب سایت‌ها از پروتکل HTTP یا نسخه امن آن یعنی HTTPS استفاده می‌شود. اما مرورگرها می‌دانند چگونه می‌توانند پروتکل‌های دیگر را کنترل کنند. به مثال‌های زیر توجه داشته باشید تا اگر URLهایی را دیدید که شامل چنین پروتکل‌هایی بودند، تعجب نکنید.

  • mailto برای باز کردن یک سرویس ایمیلی استفاده می‌شود.
  • ftp پروتکلی است که برای انتقال فایل استفاده می‌شود.

نام دامنه در URL

نام دامنه در URL

عبارت مشصخ شده در بالا نام دامنه است. این نشان می‌دهد از کدام سرور درخواست می‌شود. سرور گوگل است؟ سرور یاهو است؟ یا ...

همان‌طور که قبلاً اشاره کردیم می‌توان مستقیماً از یک آدرس IP استفاده کرد ، اما از آنجا که بسیار سخت‌تر است، استفاده نمی‌شود.

پورت در URL

پورت در URL

عدد ۸۰ درست بعد از نام دامنه و بعد از نوشتن دو نقطه، نشان دهنده پورت است. پورت یک نشانگر فنی است که برای دسترسی به منابع روی سرور استفاده می‌شود. پورت پیش‌فرض برای همه سرورها در پروتکل http، ۸۰ در نظر گرفته شده است. همچنین پورت 443 به‌صورت پیش‌فرض برای پروتکل HTTPS در نظر گرفته شده است. یعنی وارد کردن یا نکردن آن هیچ تفاوتی ایجاد نخواهد کرد.

می‌توانید دو عبارت زیر را در مرورگر خود وارد کنید و نتیجه را مشاهده بفرمایید:

  • http://google.com:80
  • https://google.com:443

مسیر یا Path در URL

path در url

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

Query String در URL

query string در url

عبارت مشخص شده در تصویر بالا، پارامترهای اضافی هستند که برای پردازش‌های متفاوت به سمت سرور ارسال می‌شوند. اصطلاحاً به آن‌ها Query String گفته می‌شود. این پارامترها لیستی از جفت‌های «کلید و مقدار» هستند که با نماد & از هم جدا شده‌اند. سرور می‌تواند از این پارامترها برای انجام کارهایی، قبل از برگرداندن فایل یا صفحه موردنظر استفاده کند. این کارها می‌تواند فیلتر قیمت برای محصولات، مرتب سازی بر اساس معیارهای مختلف و انتخاب دسته‌بندی‌ها در فیلتر باشد.

به موتور جستجوی گوگل سر بزنید و مقداری را جستجو کنید. عبارات شبیه به تصویر بالا را در قسمت نوار آدرس مرورگر خودتان خواهید دید. البته باید بدانیم، هر سرور قوانین مربوط به پارامترهای خود را دارد.

Anchor در URL

abchor در URL

عبارت مشخص شده در تصویر بالا بخشی از صفحه است که اصطلاحاً به آن anchor گفته می‌شود.

یک anchor نوعی نشانگر برای بخشی از محتوای یک صفحه است و به مرورگر دستور می‌دهد محتوای واقع در آن نقطه را نمایش دهد.

به‌عنوان مثال، اگر در فایل HTML عنصری با شناسه footer داشته باشیم و لینکی بسازیم که anchor آن #footer باشد با کلیک روی لینک به footer سایت هدایت خواهید شد. در واقع در یک فایل HTML مرورگر به نقطه‌ای که anchor تعریف شده باشد خواهد رفت.

شایان ذکر است، بخشی که پس از # که بانام «fragment identifier» نیز شناخته می‌شود ، هرگز به سمت سرور درخواست ارسال نمی‌کند.

مثال کاربردی از URL

حال با اطلاعات کسب شده، بیایید فرض کنیم می‌خواهیم نامه‌ای را به آدرس پستی خاصی ارسال کنیم. به URL مانند یک آدرس پستی فکر کنید:

  • پروتکل نشان دهنده سرویس پستی مورد نظر شما برای استفاده است.
  •  نام دامنه شهر یا استان است.
  • پورت مانند کد پستی است.
  • «path» یا مسیر، بیان کننده ساختمانی است که نامه شما باید تحویل داده شود.
  • پارامترها شامل اطلاعات اضافی مانند تعداد آپارتمان‌ها در ساختمان هستند.
  • anchor یا قسمتی که بعد از علامت # می‌آید نمایانگر شخصی است که نامه خود را برای آن می‌فرستید.

در نهایت امیدوارم این مطلب به شما کمک کرده باشد و سؤالات شما را تا حد زیادی حل کرده باشد. اگر سؤالی در مورد این مبحث دارید خوش‌حال می‌شویم در قسمت نظرات عنوان کنید.