متدهای اصلی در پروتکل اچ تی تی پی


پیش از این توضیح دادیم که پروتکل HTTP این وظیفه را دارا است تا مابین کلاینت -یا بهتر بگوییم کاربر- و سرور ارتباط برقرار سازد که این ارتباط همان طور که قبلا هم توضیح دادیم از طریق یک ارتباط Request/Response صورت می پذیرد. دو مورد از پرکاربردترین متدهای پروتکل HTTP برای برقراری ارتباط مابین کلاینت و سرور عبارتند از GET و POST که در این آموزش قصد داریم به بررسی خصوصیات هر کدام از آن ها به همراه تفاوتی هایی که متدهای GET وPOST با یکدیگر دارند بپردازیم. متد GET در قالب یک جفت Parameter/Value یا به عبارتی پارامتر/مقدار از طریق یو آر ال ارسال می شود. برای مثال، یو آر ال زیر را می توان مد نظر قرار داد:

http://www.sokanacademy.com/demo.php?name=value

همان طور که در یو آر ال فوق می بینیم، پس از نام دامنه و فایل demo.php، یک علامت سوال قرار گرفته سپس نام پارامتر که در اینجا name است مساوی با مقدار آن که value است در نظر گرفته شده است. از جمله ویژگی های متد GET می توان به موارد زیر اشاره کرد:
- درخواست هایی از جنس GET قابلیت Cache شدن دارند.
- درخواست هایی از جنس GET در تاریخچه ی مرورگر کاربر باقی می مانند.
- درخواست هایی از جنس GET را می توان Bookmark کرد.
- درخواست هایی از جنس GET را هرگز نمی بایست برای داده های حساس مثل اطلاعات حساب کاربری مورد استفاده قرار داد.
- درخواست هایی از جنس GET از لحاظ حجم داده ها دارای محدودیت هستند. حداکثر کاراکتری که از طریق یو آر ال می توان ارسال کرد، چیزی در حدود 2048 کاراکتر است.
- درخواست هایی از جنس GET بهتر است که بیشتر برای دریافت اطلاعات مورد استفاده قرار گیرند.
- در صورتی که صفحه ای که یک متد GET داخل یو آر ال آن وجود دارد را اصطلاحاً رفرش کنیم، هیچ اتفاق خاصی رخ نخواهد داد و این کار اختلالی در کارکرد وب اپلیکیشن ایجاد نمی کند.
- درخواست هایی از جنس GET دارای امنیت پایینی هستند چرا که داده ها به عنوان بخشی از یو آر ال ارسال می شوند.
- درخواست هایی از جنس GET به سادگی با مشاهده ی یو آر ال قابل رویت هستند.
- از متد GET هرگز نمی توان برای داده های باینری مثل تصاویر و … استفاده نمود.

نکته
در صورتی که بخواهیم به صورت غیر فنی مفهوم Cache را توضیح دهیم، بایستی بگوییم که منظور از Cache فضایی است که داده های پرکاربرد به صورت موقت ذخیره می شوند تا فرایند دریافت اطلاعات از سمت سرور با سرعت بیشتری صورت گرفته و در نتیجه تجربه ی کاربری به مراتب بهتری برای کاربران سایت ایجاد گردد. به طور مثال، مرورگرهایی مثل فایرفاکس یا گوگل کروم از Browser Caching برای ذخیره سازی برخی داده های صفحات وب استفاده می کنند تا کاربران در مراجعات بعدی به همان صفحات، با سرعت بیشتری بتوانند صفحات مد نظر خود را باز کنند. به عبارت دیگر، وقتی شما یک صفحه ی وب را مشاهده می کنید، بسیاری از داده های موجود در آن صفحه همچون تصاویر، لوگو، فونت و ... در کش مرورگر ذخیره شده و در صورتی که بعدا مجدد به آن صفحه سر بزنید، به جای آن که مرورگر برای بارگذاری عناصر موجود در صفحه درخواستی برای سرور ارسال کند، آن ها را از داخل کش -که سرعت به مراتب بیشتری نسبت به فراخوانی از سرور دارد- بارگذاری خواهد کرد.

متد POST یکی دیگر از پرکاربرد ترین متدهای پروتکل HTTP است. به طور مثال، در استفاده از سایت های اینترنتی بسیاری مواقع برای ما پیش می آید که مجبوریم در سایتی ثبت نام کنیم. برای ثبت نام در سایت مد نظر بایستی سوالاتی که در قالب یک فرم در اختیار ما قرار می گیرد را پر کنیم. مثلاً اولین سوالی که از ما پرسیده می شود نام و نام خانوادگی ما است. فرض کنیم کاربری با نام "احمد" و نام خانوادگی "پورصمد" می خواهد در سایت ثبت نام کند. پس از وارد کردن عبارت احمد در فیلد مربوط به نام و همچنین عبارت "پورصمد" در فیلد مربوط به نام خانوادگی در این فرم، این دو داده از طریق POST گرفته شده و سپس داده ای حاوی عبارت احمد پورصمد ایجاد می گردد و به سمت سرور ارسال می گردد (در فرم های اینترنتی اصطلاحا به فضاهای یک فرم که قابلیت پر شد دارند Field گفته می شود.) از جمله ویژگی های متد POST می توان به موارد زیر اشاره کرد:
- درخواست هایی از جنس POST هرگز Cache نمی شوند.
- درخواست هایی از جنس POST در تاریخچه ی مرورگر باقی نخواهند ماند.
- درخواست هایی از جنس POST قابلیت Bookmark شدن ندارند.
- هیچ گونه محدودیتی در ارتباط با میزان داده هایی که از طریق متد POST می توان به سمت سرور فرستاد وجود ندارد.
- در صورت رفرش کردن صفحه ای که از متد POST داخل آن استفاده شده است، اطلاعاتی مجدد به سمت سرور ارسال خواهند شد که همین مسئله می توان منجر به ایجاد اختلال در کار وب اپلیکیشن شود که می بایست جلوی آن را گرفت.
- درخواست هایی از جنس POST دارای امنیت به مراتب بالاتری نسبت به متد GET هستند چرا که داده ها در مرورگر ذخیره نخواهند شد.
- درخواست هایی از جنس POST در یو آر ال قرار نگرفته بنابراین در معرض دید کاربران هم قرار نمی گیرند.
- از متد POST می توان برای انتقال داده های باینری مثل تصاویر و … استفاده نمود.

سایر متدهای پروتوکل HTTP عبارتند از HEAD, PUT, DELETE, OPTIONS, CONNECT.

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
amirbig44
amirbig44
ممنونم از شما
خیلی دلم میخواست مفهوم کش رو بفهمم که خوب فهمیدم.😎
امیر
امیر
با سلام یک سوال داشتم
در برخی سایت ها وقتی نام کاربری و رمز عبور رو میزنیم احتمالا از متد post استفاده شده است ...
در صورت درست بودن چرا در دفعات بعدی رمز و نام کاربری رو بهمون نشون میده ؟ مگه نباید توی حافظه اش ذخیره نکند ؟