URL نسبی یا مطلق؟

نویسنده پوریا ستایش پوریا ستایش
1399/05/01
0
103
زمان مطالعه 6 دقیقه
URL نسبی یا مطلق؟

در این مقاله با URLهای نسبی (Relative) و مطلق (Absolute) که برای آدرس‌دهی در فایل هایی مثل HTML و CSS و JavaScript کاربرد دارند آشنا خواهید شد.

قبلا در مقاله‌ای در مورد اجزاء یک URL به طور کامل صحبت کردیم که عنوانش «کالبد شکافی URL» بود. پیشنهاد می‌کنم مطالعه بفرمایید.

چگونه از URL استفاده می‌کنیم؟

هر URL را می‌توانیم در نوار آدرس مرورگر تایپ کنیم تا به منبع مورد نظر دسترسی پیدا کنیم. اما این تمام ماجرا نیست!

چرا مفهوم URL در HTML اهمیت دارد؟

چون در زبان HTML از URLهای زیادی استفاده می‌شود که عبارت اند از:

  • برای ایجاد لینک به فایل‌های دیگر با تگ <a>
  • لینک کردن یک فایل از طریق تگ‌های مختلفی از جمله <link> یا <script>
  • نمایش فایل‌های رسانه‌ای مانند تصاویر (با تگ <img>) ، فیلم‌ها (با تگ <video>) ، صداها (با تگ<audio>) و ...
  • برای نمایش سایر فایل‌های HTML با تگ <iframe>

فناوری‌های دیگری مانند CSS یا JavaScript ، از URL ها استفاده می‌کنند ولی HTML واقعاً قلب وب است و در استفاده از لینک حرف اول را می‌زند.

انواع URL

به طور کلی URLها به دو دسته زیر تقسیم می‌شوند:

  • نسبی (Relative)
  • مطلق (Absolute)

URL مطلق چیست؟

در URL مطلق شما نیاز خواهید داشت آدرس را به صورت کامل به همراه پروتکل و نام دامنه و ... استفاده کنید. مثل عبارت زیر :

https://dornam.com/blog

منظور از بستر فایل چیست؟

قبلا از ادامه بحث باید بگویم، کلمه ای چند بار در متن استفاده شده که بد نیست بدانیم مفهوم آن چیست! این کلمه «بستر» است. وقتی در مورد بستر یک فایل صحبت می‌کنیم یعنی دقیقا آن‌جایی که فایل قرار دارد. به عنوان مثال فایل ممکن است در ریشه اصلی سایت باشد؛ بستر ما عبارت زیر خواهد بود:

 

یا اینکه فرض کنید در فولدری مثل iran باشد، بستر ما عبارت زیر خواهد بود:

http://example.com/iran/

URL نسبی چیست؟

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

وقتی شما در نوار آدرس مرورگر یک URL را وارد می‌کنید چون هیچ بستری برایش مشخص نیست، شما می‌بایست URL را به صورت کامل وارد نمایید. البته منظور من پروتکل و پورت نیست. منظور من بستر URL است که اشاره به نام دامنه و ... دارد. ما می‌دانیم در قسمت آدرس مرورگر لازم نیست پروتکل را درج کنیم؛ مرورگر به‌طور پیش فرض از HTTP استفاده می‌کند؛ یا پورت که فقط در صورت استفاده از پورت غیرمعمول مورد نیاز است، ولی نوشتن تمام قسمت‌های دیگر URL الزامی است.

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

از قسمت «path» یا مسیر URL که با کاراکتر «/» شروع شود ، مرورگر بدون مراجعه به بستر ارائه شده توسط فایل فعلی ، آن منبع را از ریشه اصلی سرور ارائه می‌کند. منبع می‌تواند یک فایل HTML، یک فایل CSS، یک عکس و هر چیز دیگری باشد. چیزی که اینجا اهمیتی ندارد، نوع فایل است.

نمونه‌هایی از URL های نسبی

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

https://example.com/iran/tehran/Learn

یک URL با پروتکل نسبی

//example.org/iran/tehran/Learn

 اگر همچین چیزی را در فایل HTLM بنویسیم یعنی اجازه دادیم مرورگر به بستر نگاه کند و پروتکل مد نظر را انتخاب کند. چون بستر مشخص است مشکلی پیش نخواهد آمد. (به دو / در ابتدای آن دقت کنید!)

یک URL بانام دامنه نسبی

/iran/tehran/Learn

 

این رایج‌ترین مورد استفاده برای URL نسبی در یک فایل HTML است.

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

توجه: حذف نام دامنه بدون حذف پروتکل امکان پذیر نیست.

بررسی منابع فرعی در دایرکتوری

Skills/Infrastructure/Understanding

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

بنابراین در این مثال ، ما در واقع می‌خواهیم به این URL برسیم :

 https://example.com/iran/tehran/Learn/Skills/Infrastructure/Understanding

 

برگشت به دایرکتوری

../CSS/display

 

برای اینکه به مرورگر بگوییم می‌خواهیم به یک فولدر عقب‌تر برویم، ما از عبارت «/..» استفاده کردیم.

در واقع ما این URL را وارد کرده‌ایم:

https://example.com/iran/tehran/Learn/../CSS/display

که می‌تواند به عبارت زیر ساده شود:

https:// example.com /iran/tehran/CSS/display

 

URL نسبی یا مطلق کدام بهتر است؟

به طور خلاصه بستگی به استراتژی شما در سئو و طراحی سایت دارد. ولی هر کدام از URL ها دارای یک سری فواید و مضرات هستند که با هم دیگر بررسی خواهیم کرد.

بررسی URL مطلق - Url نسبی

چرا از URL نسبی استفاده کنیم؟

  • در توسعه سایت‌های بزرگ نوشتنش راحت تر است.
  • برای انتقال به پروژه‌های دیگر دردسری نداریم.
  • صفحاتی که از URLهای نسبی استفاده می‌کنند سرعت بارگذاری بالاتری دارند.

چرا از URLهای مطلق استفاده کنیم؟

می توانیم به بررسی موارد زیر بپردازیم:

یکسان بودن پروتکل و دامنه در URL مطلق

از یک پروتکل و نوع دامنه در کل سایت استفاده کرده ایم و مواردی از این دست را نخواهیم داشت:

  • http://www.dornam.com
  • http://dornam.com
  • https://www.dornam.com
  • https://dornam.com

از نظر گوگل ۴ عبارت بالا، ۴ نوع سایت مختلف است که به شدت روی سئو سایت تاثیر منفی می‌گذارد. البته راه‌هایی برای کنترلش هست که در این مقاله به آن‌ها نمی‌پردازیم.

جلوگیری از ترک کردن خزندگان گوگل

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

با استفاده از URL مطلق می توانید از این وضعیت جلوگیری کنید تا به Google کمک کنید، روند خزیدن را ساده تر کند، نه تنها باعث صرفه جویی در وقت می شود بلکه باعث خزیدن صفحات بیشتر نیز می شود. مطابق نیاز SEO خود استراتژی مناسب را انتخاب کنید. در اکثر موارد ، URL های مطلق فواید بیشتری نسبت به مضرات دارند و به بهبود سئوی سایت شما کمک می کنند. با این وجود زمان هایی وجود دارند که بسته به نیاز سایت خود از URL های نسبی استفاده خواهید کرد.

تاثیر روی استراتژی لینک سازی داخلی

هنگام نویسی یک URL در فایل ها، احتمالا به لینک سازی داخلی فکر می‌کنید. اگر نگ <a> دارید که به اشتباه در سایت به همراه URL های نسبی پیاده سازی شده است ، صفحه ای ایجاد می کند که در صفحه خطای 404 رخ خواهد داد. به عنوان مثال ممکن است فراموش کرده باشید / را در ابتدای یک url قرار دهید. با استفاده از URL های مطلق ، این نوع اتفاقات برایتان رخ نمی‌دهد.

و در نهایت

  • ما فقط با نگاه کردن به قسمت «path» یا مسیر URL می‌توانیم بین یک URL مطلق و یک URL نسبی تمایز قائل شویم.
  • URL مطلق کامل است ولی URL نسبی قسمت هایی را از دست داده است که به بستر ربط خواهد داشت.
  • نظر شخصی که میتونه کاملا غلط باشه : استفاده از URL مطلق یا نسبی بستگی به نیاز و استراتژی شما دارد. ولی شاید استفاده از URLهای مطلق منطقی تر به نظر برسد!

امیدوارم این مطلب راهنمای شما بوده باشد. همچنین خوشحال می‌شویم اگر سوال یا نظری دارید در قسمت نظرات عنوان بفرمایید.