متد get و post در php چه تفاوتی دارند و کدام برای ارسال اطلاعات بهتر است؟

متد get و post در php چه تفاوتی دارند و کدام برای ارسال اطلاعات بهتر است؟
آکادمی آی تی
آکادمی آی تی
dots

متد get و post در php چه تفاوتی دارند و کدام برای ارسال اطلاعات بهتر است؟

زمان مورد نیاز برای مطالعه 5 دقیقه

متد get و متد post روش هایی برای ارسال اطلاعات در php هستند که ما در این مقاله ابتدا آموزش کار با فرم دو متد پست و گت و سپس فرق این دو روش را به شما آموزش میدهیم

دپارتمان ‌ها: آموزش برنامه نویسی
1399/02/14
7,465 بازدید

در سایت های داینامیک ما وقتی می خواهیم اطلاعات خود را از سمت کاربر به سمت سرور ارسال کنیم از روش های مختلفی می توانیم بهره بگیریم که دو متد گت و پست از رایج ترین آن ها می باشند. زبان برنامه نویسی PHP یکی از زبان های محبوب سمت سرور است که از این دو روش برای ارسال اطلاعات استفاده می کند. در این مقاله به طور کامل تفاوت متد get و post و هم چنین روش کار با فرم هر دو را توضیح می دهیم پس در ادامه  با این قسمت از آموزش php همراه ما باشید.

 

آموزش کار با متد post در PHP

متد post یکی از رایج ترین متدهای http است. هنگام استفاده از متد پست، اطلاعات را در URL مرورگر خود مشاهده نمی کنید که به همین دلیل امنیت مناسبی دارد. این متد، داده ها را به صورت بسته بندی شده با پروتکل های مخصوص به سرور ارسال می کند. این روش باعث شده است توسعه دهندگان از متد پست بیشتر استفاده کنند. هم چنین در این متد علاوه بر داده های متنی می توان فایل ها را از جمله عکس، فیلم و ... ارسال کرد.

به کد زیر که یک فرم برای دریافت اطلاعات نام کاربری و پسورد کاربر است دقت کنید: 

متد آن را post انتخاب کرده و action را به صفحه check.php ارجاع داده ایم یعنی تمامی اطلاعاتی را که وارد می کنیم به این صفحه ارسال می شوند. تا دستورات لازم برای کار با داده ها را در زبان برنامه نویسی سمت سرور که در این جا PHP است، نوشته شود.
 

آموزش کار با متد post در PHP

 

با اجرای کد بالا، فرم در صفحه ی مرورگرتان به صورت زیر نمایش داده می شود. که شامل نام کاربری و پسورد و هم چنین یک دکمه برای ارسال اطلاعات است.

فرم ارسال اطلاعات در مرورگر

 بعد از پر کردن فرم با کلیک بر روی دکمه ارسال، اطلاعات وارد شده از سمت کاربر به صفحه ی check.php ارسال می شوند تا از داده های وارد شده در صفحه check.php بهره بگیریم. چیزی که در صفحه ی مرورگرتان می بینید همان دستوراتی هستند که در صفحه ی check.php از شما خواسته شده است. که در اینجا گفته شده username و password ای که با post method گرفته شده است را چاپ کند.

کار با متد post

ارسال اطلاعات با روش پست

 

مقاله مرتبط: mvc چیست؟

آموزش کار با متد get در PHP

اگر از متد get برای ارسال اطلاعات استفاده می کنید، تمام اطلاعاتی را که در فرم وارد می کنید را در بخش URL مرورگرتان مشاهده خواهید کرد. در این روش می توان در URL، کوئری استرینگ اجرا کرد. Query string همان داده هایی هستند که به انتهای آدرس در نوار مرورگر اضافه می شوند. یعنی اطلاعات هنگام تایپ شدن در فرم در بخش آدرس بار مرورگر هم  وارد می شوند که این اطلاعات از این طریق به سمت سرور فرستاده می شوند. اگر از این متد استفاده شود با اجرای Query string دلخواه می توان داده ها را بوک مارک کرد. برنامه نویسان برای داده های حساس کاربران مثل اطلاعات کارت بانکی، رمز عبور ایمیل و ... از روش گت استفاده نمی کنند.

 همان قطعه کدی را که برای متد post استفاده کرده ایم را مجددا استفاده می کنیم با این تفاوت که method فرم را این بار get انتخاب می کنیم و action ما همان صفحه check.php خواهد بود تا کار با متد گت را برای شما آموزش دهیم.

آموزش کار با متد get  در PHP

ارسال اطلاعات از طریق get

 

هم چنین مثل روش post فرم را پر کنید و بر روی دکمه ارسال اطلاعات کلیک کنید. هنگام ارسال داده های فرم به صفحه ی check.php تمامی اطلاعات وارد شده، در URL مرورگرتان کاملا قابل مشاهده است. این داده ها در URL بعد از آدرس کامل، هر کدام با نام و مقدار وارد شده، بعد از علامت سوال نشان داده می شوند. 

فرم ارسال با روش GET

 

در این مثال بعد از علامت سوال عبارت "username=BILGISAYAR" برای نام و مقدار وارد شده آن که در فرم پر کرده ایم را ملاحظه می کنید. این کار را مرورگر حین وارد کردن داده در فرم به URL اضافه می کند. اگر اطلاعات شما بیشتر از یک مقدار باشد در URL  بین مقادیر علامت & قرار می گیرد. که در نهایت آدرس ما به صورتی که در شکل بالا آمده است خواهد بود.

 

تفاوت متد get و post

اگر چه از هر دو متد برای ارسال داده ها استفاده می شود اما یک سری تفاوت بین آن ها وجود دارد. تعدادی از تفاوت های اساسی که باعث شده است این دو متد از هم متمایز باشند در ادامه آمده است:

  •     اگر برفرض مثال بخواهیم 1 مگا بایت داده در متد POST ارسال کنیم در متد GET این حجم داده 5 مگابایت یا بیشتر است.
  •     داده ها در متد گت در cache و یا حافظه مرورگر ذخیره می شوند ولی در پست به این شکل نمیباشد.
  •     در روش POST هیچ محدودیتی برای ارسال داده های چند رسانه ای وجود ندارد ولی برای GET تنها داده های متنی باید ارسال شوند.
  •     Query string  تنها در متد گت اجرا می شود. چون همه ی داده ها را در URL داریم ولی این کار را با متد پست نمی توانیم انجام بدهیم.
  •    داده ها درروش گت در نوار مرورگر نشان داده می شوند ولی برای پست به این صورت نیست.

این ویژگی های گفته شده تفاوت بین post method  و get method، روش هایی برای ارسال دیتا بود که در سایت PHP.NET و سایت W3SCHOOL هم بررسی شده اند.  

 

چرا استفاده از متد POST به لحاظ امنیتی پیشنهاد داده می شود؟

طبق مطالب گفته شده، متد پست امنیت بالایی دارد و اصولی تر است، همچنین داده ها در URL با روش پست قابل نمایش نیستند. این ها دلیل برتری متد post در برابر متد get است. حال  اگر علاقه مند به مسائل امنیتی در php  هستید، مقاله امنیت php را مطالعه نمائید.