url چیست؟

Change concepts with red paper airplane leading among white

url مخفف uniform resource locatorه که شکل ظاهری نشانی یه صفحه اینترنتی رو تشکیل میده.

url همون کاراکترهاییه که در قسمت بالای address bar مرورگر خود مشاهده می کنین.

نام دامنه رو میشه بخشی از url دونست.چون نام دامنه هم شکل ظاهری یه صفحه رو تشکیل میده و بخشی از نشانی صفحات سایته.

urlا دارای کاراکترای استانداری هستن و هر کاراکتری رو نمیشه در اونا استفاده کرد.(url غیر استاندارد چیه رو بخونین)

urlا به دو شکل اصلی هستن.یا براساس query string هستن و یا به صورت جداگونه.

query string به معنی رشته تقاضاست و به صفحات، مقادیری رو می فرسته .query string با علامت سوال در url شروع می شه و دارای نام متغیره که با علامت مساوی از مقدار اون جدا می شه و با علامت & از متغیر دیگه جدا می شه.مثلا:

http://example.com?id=50

همونطور که مشاهده می کنین، بعد از علامت سوال، id هست که نام متغیره و با مقدار ۵۰ مقدار دهی شده.به مثالی که می خوام بزنم توجه کنین:

http://example.com/products?id=50&name=htc-mobile

مقدار query string بالا برابر با مقدار زیره:

id=50&name=htc-mobile

و دارای یه متغیر id دارای مقدار ۵۰ و یه متغیر name با مقدار htc-mobileه.

query string واسه برنامه نویسان و طراحان سایت کاربرد داره.وقتی میخوان محصولی نشون بدن و صفحه محصول اونا productه، از راه نشانی url به کمک query string میفهمن که کاربر قصد مشاهده محصول شماره ۵۰ با نام htc-mobile رو داره.بنابر این اطلاعات مربوطه رو از سرور دریافت می کنن و به کار نشون میدن.پس هر صفحه می تونه بی انتها query string داشته باشه.

حالت دیگه url بدون query stringه.در این حالت، صفحات بدون کاراکتر اضافی نشون داده می شن.مانند زیر:

http://example.com/products/htc-mobile-50

این نشانی دهی در سئو بسیار مناسبه و urlا بسیار تمیز و خوانا و قابل درک هستن.واسه نشانی دهی به این شکل باید برنامه نویس و طراح سایت اقدام کنه تا بتونه مقادیر Query string رو به این شکل تبدیل کندسیستم مدیریت محتوای اماده وردپرس، اینجور امکانی رو به صورت پیش فرض قرار داده و دروپال و جوملا هم با افزونه س ایی، توانایی تبدیل url به این شکل رو دارن.در سیستمایی که اختصاصی با php نوشته شدن هم این کار، تقریبا راحته و با وب سایتایی که با Asp.NET نوشته شدن، کار مشکل تریه.هم اینکه از نظر موتورای جستجو، هر کدوم یکی page حساب می شن.اما در نشانی دهی که از query string استفاده شده باشه، همه صفحات زیر یه صفحه حساب می شن(بعد از کاراکتر ؟ صفحه جداگونه به حساب نمیاد)

http://example.com/products?id=50&name=htc-mobile

http://example.com/products?id=90&name=samsung-mobile

http://example.com/products?model=sony

urlا هم اینکه می تونن دارای مقدار # باشن.این کاراکتر تنها سمت کاربر روی مرورگر قابل استفاده س.طراحان سایت و برنامه نویسان، با به کار گیری این کاراکتر و مقداری که بعد از اون قرار میگیره،اسکرول صفحه کاربر رو به جایی که مد نظرشونه منتقل می کنن(در همون صفحه).مثلا یه صفحه زیر رو در نظر بگیرین:

http://en.wikipedia.org/wiki/Uniform_resource_locator

اگه روی اون کلیک کنین به صفحه url در ویکی پدیا منتقل میشین.اما اگه روی لینک زیر کلیک کنین:

http://en.wikipedia.org/wiki/Uniform_resource_locator#Protocol-relative_URLs

به همون صفحه منتقل میشین اما اسکرول شما روی قسمت Protocol relative URLs قرار میگیره.روی هر قسمت دیگری در اون صفحه که انتهای لینک اون # قرار داره، کلیک کنین، بدون ریفرش، اسکرول صفحه شما به اون قسمت منتقل می شه.

نشونه گذاری اینکه هر نام مربوط به کدوم قسمته با مشخصه id در فایل html هر صفحه انجام می شه(آموزش پایه HTML رو بخونین).مثلا قسمت Protocol relative URLs در لینک نامبرده به شکل زیر (با مشخصه id) نشونه گذاری شده.بنابر این اگه بعد از # مقدار id هر قسمتی قرار بگیره، اسکرول مرورگر، به اون قسمت منتقل می شه:

<span class="mw-headline" id="Protocol-relative_URLs">Protocol-relative URLs</span>