نگاهی به پروتوکل 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 نامیده می شود استفاده می کنیم.

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
محسن
محسن
در ادامه مطلب بالا
در url ممکن هست که www باشن، بودن یا نبودن این مورد رو میشه از راه های مختلفی از جمله بخش redirect در هاست تنظیم کرد، که مثلا چه کابر آدرس سایت رو با www تایپ کرد یا بدون اون، سایت ریدایرکت بشه به نسخه دارای www و با این حالت در آدرس بار نشون داده بشه

این تنظیمات در سئو هم خیلی مهم هست و باید یک حالت به عنوان نسخه اصلی در گوگل وب مستر ثبت بشه

همینطور پروتکل https هم مخفف Hyper Text Transfer Protocol Secure هست که د این حالت دیتای در حال انتقال به صورت کد شده منتقل میشه، سایت هایی که تراکنش های مالی یا دسترسی به اطلاعات در اونها انجام میشه معمولا از https استفاده می کنن، البته هر سایتی می تونه این گواهینامه رو تهیه کنه
(سکان آکادمی هم https هست)
داشتن https هم در سئو تاثیر مثبت داره
Insight
Insight
در کنار آشنایی با پروتکل HTTP یا انتقال فرامتن، خوبه که با REST یا REpresentational State Transfer که این روزها طرافدارن زیادی رو داره، هم آشنا بشیم.
REST یک الگوی معماری بر پایه‌ی اچ‌تی‌تی‌پی ست که یک سری خواص رو برای وب‌اپلیکیشن ما تعریف میکنه.
میتونید به صفحه‌ی ویکیپدیا هم مراجعه کنید.
https://en.wikipedia.org/wiki/Representational_state_transfer
کاربر میهمان
کاربر میهمان
سلام اقای مرادی من یه سوال داشتم من ابتدا باید تمام فصل های این مجموعرو بخونم بعد شروع به یاد گیری کد نویسی یا زبان ها کنم ؟!
کاربر میهمان
کاربر میهمان
با سلام و خسته نباشید. میخواستم کوئری را بیشتر توضیح دهید و مثال واضحتر بزنید از این جهت که هنوز درک آن گنگ است. با تشکر
کاربر میهمان
کاربر میهمان
با تشکر از سایت آموزنده شما. ممکنه خواهش کنم معنی عبارت URL را بنویسید؟ با سپاس فراوان.
Farhad
Farhad
URL مخفف عبارت Uniform Resource Locator به معنی نشانی وب یا مکان یکنواخت منبع است.

در پاسخ به

کاربر میهمان
کاربر میهمان
منظورم اینه که چون برنامه نویسی با یه بخش های متفاوت دیگه از کامپیوتر در ارتباطه(همین طور برنامه های مرتبط با برنامه نویسی مثل اکلیپس)که خودتون بهترمیدونید ممکنه مشکلی برای pcایجاد بشه مثلا خراب بشه
بهزاد مرادی
بهزاد مرادی دولوپر، کپی‌رایتر و علاقمند به کامیونیتی اپن‌سورس
واقعیت امر اینه که اگر کسی در سطح مبتدی کار کنه، آنقدر مهارت پیدا نکرده که بتونه به سخت افزار سیستم لطمه بزنه. در دوره های مقدماتی کاربران بیشتر برنامه های کنسولی می نویسن به این شکل که برنامه های ایشان یک خروجی را در کنسول مثلا اکلیپس نمایش می دهد که چیز خیلی ساده ای است اما به هر حال همیشه احتمال ایجاد مشکل وجود خواهد داشت.

در پاسخ به

کاربر میهمان
کاربر میهمان
ببخشید ممکنه که این برنامه نویسی به کامپیوتر صدمه بزنه؟
بهزاد مرادی
بهزاد مرادی دولوپر، کپی‌رایتر و علاقمند به کامیونیتی اپن‌سورس
سلام. لطفا منظور خود را دقیق تر بفرمایید چیست!

در پاسخ به