دیروز تو گروه تلگرام مون (@cleverdevs) بحث بود در باره تفاوت های متد GET و POST بود و گفتم بیام تو یه پست کوتاه در بارشون توضیح بدم
وقتی که کابر با یک سرور از طریق وب ارتباط برقرار میکنه این پروسه توسط پروتکل Hypertext Transfer Protocol (HTTP) فعال میشه. HTTP یک پروتکل درخواست-پاسخ هست که بین کلاینت و سروره
متد های GET و POST دو متد رایج HTTP هستن از اونا برای گرفتن یا ارسال کردن داده به سرور استفاده میشه اینا بخش جدایی ناپذیر مدل client-server هستن که ارتباط بین کلاینت و سرور رو از طریق وب (WWW) فعال میکنن.
متد GET برا درخواست داده از یک منبع خاص استفاده میشه که میتونه هر داده قابل دیدنی رو برای یوزر بازیابی کنه مثل سند HTML , تصاویر ، ویدوها و ...
برای فرستادن درخواست GET یک کلاینت نیاز به ادرس خاصی از منبعی که میخواد اطلاعتو ازش بگیره داره بعدش درخواست به سرور ارسال میشه که درخواست رو پردازش میکنه و داده رو برمیگردونه
متد POST داده رو به سرور میفرسته تا یه یه رکوردی تو منبع ایجاد کنه یا اپدیتش کنه مثلا بیشتر برای ثبت کردن اطلاعات فرم HTML استفاده میشه
برای فرستادن یک درخواست POST یک کلاینت نیاز داره تا ادرس خاصی از منبعی که میخواد دیتارو براش بفرسته و همچنین خود دیتا رو داشته باشه بعدش درخواست به سرور ارسال میشه که پردازش کنه و پاسخ رو به کاربر برگردونه
متد پست اغلب برای ثبت کردن فرم ها یا اپلود فایل روی سرور استفاده میشه
وقتی از GET استفاده میکنید داده های توی url گنجونده میشن و برای هر کسی قابل دیدن هستن اما موقع استفاده از POST دیتا تو url نمایش داده نمیشه بلکه تو بدنهی درخواست HTTP هس
متد GET نسبت به POST امنیت کمتری داره چرا که URL شامل بخشی از دیتای ما میشه از طرفی POST امن تره چون پارامتر ها توی گزارش های وبسرور یا هیستوری مرورگر ثبت نمیشن.
درخواست GET میتونه کش بشه و تو هیستوری مرورگر بمونه درحالی که POST نمیتونه . این معنیش اینه که درخواست های GET میتونن نشانه گذاری بشن ، به اشتراک گذاشته بشن و بازیابی بشن درحالی که درخواست های POST اینطور نیستن
درخواست های GET در واقع برای بازیابی داده از سرور هستن نه تغیر تو وضعیت سرور از طرفی درخواست های POST برای ارسال داده به سرور برای پردازش و شاید تغیر تو سرور هستن
متد GET محدودیت کاراکتر داره در حالی که متد POST هیچ محدودیت اینچنینی نداره این به خاطر اینه که متد GET داده هارو از طریق URL میفرسته که محدودیت طول داره درحالی که متد POST دیتارو از طریق HTTP message body (بدنهی پیام HTTP) میفرسته که همچین محدودیتی نداره
متد GET فقط رشته رو پشتیبانی میکنه درحالی که متد POST انواع مختلف دیتارو پشتیبانی میکنه
تو این پست تفاوت بین GET و POST رو برسی کردیم هردو متد برای ارتباط بین سرور و کلاینت ضروری هستن و اهداف و محدودیت های متفاوتی دارن مهم اینه که متد مناسب رو برای نیاز خاصمون انتخاب کنیم
و اما اگه دوست داشتید لطفا لایک کنید و اگه ایرادی دیدید کامنت بزارید❤️
منبع :