مقایسه دو متد get و post
در این مقاله قصد داریم به مقایسه دو متد get و post بپردازیم . یکی از وظایف مهم سایتها دریافت اطلاعات مختلف از کاربران و ارسال این اطلاعات به سرورهای سایت میباشد. داده و اطلاعات ارزش بسیار زیادی دارند و در دنیای مدرن امروزی متخصصانی وجود دارند که شغل آنها کار با داده هاست. حالا سوال پیش میآید که سایتها چطوراین دادهها را از کاربران میگیرند. مرورگر وب برای ارتباط با سرور از دو متد HTTP معروف استفاده میکند. متدهای GET و POST برای ارسال اطلاعات از طرف کاربر به سرور استفاده میشوند و هر کدام مزایا و معایب خودشان را دارند. در ادامه به طور مفصل دربارهتفاوت متد GET و POST صحبت خواهیم کرد.
متدهای مختلف پروتکل HTTP
- HEAD:
- PUT
- DELETE: متد Delete یک منبع مشخص را از سرور حذف میکند
- CONNECT:
- OPTIONS
- TRACE
- PATH
متد Get چیست؟
روزانه از سایتهای زیادی بازدید میکنیم و فرمهای زیادی را در این سایتها پر میکنیم. فرمهای معروفی که در سایتها استفاده میشود عبارتند از: فرم تماس با ما، فرم ثبت نام یا ورود به سایت، فرم عضویت در خبرنامه و غیره. متد Get به طور پیش فرض برای ارسال اطلاعات فرمها به سرور استفاده میشود.
این متد دادههای فرمها را برای سرویس دهنده ارسال میکند، به این شکل که به انتهای URL یک “نام/مقدار” را اضافه کرده و پارامترها را به کمک query string به سرور میفرستد. احتمالا برایتان سوال پیش بیاید که Query String چیست؟ Query String قطعه متنی است که پس از علامت سوال (؟) در URL میآید. به آدرس زیر دقت کنید:
———————————————————————————————————————————————————————–
?sitename =7Learn
———————————————————————————————————————————————————————–
راجع به زوج “نام/مقدار” همانطور که از اسم آن میتوانید متوجه شوید، بخش اول نشان دهنده نام موردنظر ما و دومین بخش نشان دهنده مقدار مورد استفاده برای ذخیره سازی میباشد. زوج “نام/مقدار” به صورت خودکار یا اتوماتیک مقادیر متناظر را از فرم دریافت میکند. یک فرم میتواند شامل textbox، checkbox یا موارد دیگر باشد، پس نام استفاده شده در متد GET همان نام کنترل استفاده شده در فرم بوده و محتویاتی که کاربر در کنترل مورد نظر وارد میکند، مقدار را مشخص میکند.
در مثال بالا بعد از ؟ زوج “نام/مقدار” با عنوان sitename =7Learn آمده که sitename نام مدنظر ما و 7Learn مقدار مرتبط با آن است. مرورگر زمانی که میخواهد صفحه را برای سرویس دهنده ارسال کند، این اطلاعات را به صورت خودکار به انتهای URL اضافه میکند. پس آدرس ما در نهایت به شکل خواهد شد:
———————————————————————————————————————————————————————-
https://7learn.com/page.php?sitename=7Learn
———————————————————————————————————————————————————————–
به همراه یک URL میتوان بیشتر از یک زوج “مقدار/نام” را ارسال کرد. برای این کار باید هرزوج “مقدار/نام” را با علامت “&” که به آن ampersand هم میگویند از یکدیگر جدا کنیم. تکه کد زیر از دو زوج sitename=7Learn و webmaster=Loghman استفاده کرده و این دو با “&” از هم جدا شده اند.
———————————————————————————————————————————————————————–
https://7learn.com/page.php?sitename=7Learn&webmaster=Loghman
———————————————————————————————————————————————————————–
همانطور که کمی قبلتر اشاره کردیم، بخش اضافه شده به URL را Query String میگويند. مشاهده کردید که به کمک متد GET اطلاعات را به وب سرور خود ارسال کردیم، اما متد GET تنها روش ارسال داده بين سرويس گيرنده و سرويس دهنده نمیباشد و برای ارسال اطلاعات میتوانیم از متد POST هم استفاده کنیم.
مزایا و معایب استفاده از متد GET
- از آنجایی که اطلاعات فرستاده شده با متد GET در URL آدرس صفحه نمایش داده میشوند، میتوانید صفحه را با مقادیر query string خاص خود بوک مارک (Bookmark) کنید
- متد GET مناسب ارسال اطلاعات حساس و مهمی مثل نام کاربری، رمز عبور، اطلاعات کارت بانکی و غیره نیست، به خاطر اینکه اطلاعات به طور کامل در query string آدرس صفحه قابل مشاهده است و اینکه در حافظه مرورگر کاربر به عنوان یک صفحه بازدید شده ذخیره میشود
- از آنجا که متد GET دیتا را در یک متغیر داخل محیط سرور ذخیره میکند، طول URL محدود شده و در نتیجه کل داده ارسالی ما محدود میشود
متد POST چیست؟
متد POST دادهها را به صورت یک پکیج و در ارتباطی جداگانه به سرور ارسال میکند. داده هایی که به کمک متد POST ارسال میشوند در URL صفحه نمایش داده نمیشوند و از لحاظ امنیتی انتخاب بسیار مناسبی میباشد.
مزایا و معایب استفاده از متد POST
- امنیت این روش ارسال اطلاعات بسیار بالاست و اطلاعاتی که کاربر تایپ میکند به هیچ عنوان در مرورگر قابل مشاهده نمیباشد، همینطور در گزارشات (Logs) سرور هم ذخیره نمیشوند
- از آنجایی که اطلاعات ارسال شده با POST در URL دیده نمیشوند، به همین خاطر نمیشود صفحه را در مرورگر Bookmark کرد
- در متد POST محدودیت بسیار بیشتری برای ارسال اطلاعات وجود دارد، به کمک POST میتوان دادههای متنی و باینری (آپلود فایل) ارسال کرد.
دیدگاهتان را بنویسید