نگاهی به پروتوکل HTTP و URL
تا این مرحله از این فصل، متوجه شدیم که وب سرور چیست و کامپیوترهای سرور چه وظیفه ای بر عهده دارند. حال نوبت به آن رسیده تا نگاهی کوتاه به رخدادهایی بیاندازیم که بین وب سرور و مرورگر کامپیوتر ما روی می دهد چرا که دانستن این نکات برای شما به عنوان توسعه دهنده وب یا موبایل بسیار مفید واقع خواهد شد.
احتمالا تا به حال نام HTTP را زیاد شنیده اید. این کلمه مخفف Hypertext Transfer Protocol است و به عنوان یک پروتوکل انتقال داده فرامتنی بین سیستم های مختلف به حساب می آید. در واقع HTTP پایه اصلی وب به حساب می آید. به همین خاطر لازم است که شما به عنوان یک توسعه دهنده وب درک مناسبی نسبت به آن داشته باشید. به طور کلی ارتباط میان یک کاربر از طریق مرورگر نصب شده روی سیستم عامل اش با یک وب سرور از طریق مفهومی تحت عنوان Request/Response صورت می گیرد. واژه Request به معنی “درخواست”، واژه Response به معنی “پاسخ” است. به طور خلاصه اگر بخواهیم که با یک سرور ارتباط برقرار سازیم می بایست دو کار صورت پذیرد:
– در گام نخست درخواستی را برای سرور ارسال کنیم،
– و در گام بعد یک پاسخ از سمت سرور دریافت خواهیم کرد.
به طور کلی، در پس هر ارتباطی در شبکه جهانی وب درخواستی قرار دارد که این درخواست از طریق یک URL عملی می گردد:
همان طور که در تصویر فوق مشخص است، پروتوکل http در ابتدای این درخواست قرار دارد. سپس نام ساب دامین قرار دارد که در مثال فوق animals است. اگر بخواهیم به صورت خیلی ساده وظیفه ی ساب دامین ها را توضیح دهیم، بایستی بگوییم که ما با استفاده از ساب دامین ها خواهیم توانست تا روی یک فضای میزبانی وب، چندین سایت مجزا از یکدیگر قرار دهیم. لازم به ذکر است که در اکثر مواقع ما ساب دامین ها را مشاهده نمی کنیم چرا که اکثر سایت ها محتوای اصلی خود را روی همان دامین اصلی قرار می دهند. سپس نام دامین اصلی قرار دارد که در این مثال example است که پس از آن com. آمده است که اصطلاحا Top-level Domain نامیده می شود. از جمله پسوندهای دامین معروف می توان به com, ir و org اشاره کرد.
فرض کنیم که در دایرکتوری (پوشه) اصلی سایت ما که روی سرور هاست قرار گرفته است فولدری داریم تحت عنوان dogs که مسئول نگهداری فایل های مرتبط با سگ ها است. حال اگر بخواهیم به فایلی که روی سایت ما قرار دارد دست پیدا کنیم می بایست پس از نام دامین، نام آن فولدر را بیاوریم که تحت عنوان Resource Path یا “مسیر مرتبط با منابع سایت” یا به طور خلاصه Path شناخته می شود. نیاز بدانیم که چنانچه مثلا داخل فولدر dogs یک فولدر دیگر داشته باشیم تحت عنوان poodle، به سادگی با قرار دادن یک علامت / پس از نام فولدر dogs و نوشتن نام فولدر مد نظر خواهیم توانست به فولدر زیر شاخه دست پیدا کنیم. به عبارت دیگر dogs/poodle.
در نهایت به Query می رسیم. به طور کلی منظور از کوئری «داده ای» است که از طریق URL انتقال داده می شود. در واقع زمانی که از طریق HTTP درخواستی برای سرور ارسال می شود، سرور اقدام به پیدا نمودن داده مرتبط با درخواست می کند. حال این داده درخواستی می تواند یک فایل مثلا با پسوند اچ تی ام ال و یا داده های مختلفی باشد. در مورد اول که مشخص است، فایل اچ تی ام ال برای کاربر ارسال می شود اما در صورتی که درخواست چیزی از جنس داده و یا اجرای یک برنامه باشد، سرور بایستی آن برنامه را اجرا نموده و خروجی آن برنامه را برای کاربر ارسال نماید. با این تفاسیر، این کوئری آدرسی است که برای دسترسی به بخش خاصی از آن برنامه ارسال می شود. بنابراین پس از اجرای برنامه مد نظر، داده های مورد نظر تولید شده و سپس در اختیار مرورگر قرار خواهند گرفت. در مثال فوق، ما یک کوئری را برای سرور ارسال کرده ایم که حاوی دو پارامتر است که یکی از آن ها color و دیگری puppy نام دارد. برای آن که به این پارامترها یک Value یا مقدار اختصاص دهیم هم از علامت = استفاده کرده ایم که مقدار پارامتر اول black و مقدار پارامتر دوم false است. لازم به ذکر است که برای مجزا سازی پارامترها از علامت & که اصطلاحا Ampersand نامیده می شود استفاده می کنیم.