محمد حسن خدامی
محمد حسن خدامی
خواندن ۲ دقیقه·۱ سال پیش

"GET" VS "POST"

سلام، میدونم خیلی وقته نبودم. منم دلم براتون تنگ شده بود!

این مدتی که نبودم کلی مطالب جدید یاد گرفتم مثل Django و postgresql و... که البته هنوزم دارم یاد میگیرم!

امروز یه مقالک کوچیک داریم که فرق بین GET و POST چی و کجاها از این دو استفاده میکنیم

خب برای درک بهتر این جمله رو باید خوب متوجه بشیم:

اگر که ما METHOD رو تعریف نکنیم... به صورت پیشفرض بر روی GET تنظیم خواهد شد.

خب پس یعنی GET بهتره ؟ نه! ربطی نداره اتفاقا امنیت POST بیشتره! بذارید موضوع رو براتون بازش کنم

بیاید از داکیومنت خود Django کمک بگیریم ببینیم چی میگه

Any request that could be used to change the state of the system - for example, a request that makes changes in the database - should use POST. GET should be used only for requests that do not affect the state of the system.
GET would also be unsuitable for a password form, because the password would appear in the URL, and thus, also in browser history and server logs, all in plain text. Neither would it be suitable for large quantities of data, or for binary data, such as an image. A web application that uses GET requests for admin forms is a security risk: it can be easy for an attacker to mimic a form’s request to gain access to sensitive parts of the system. POST, coupled with other protections like Django’s CSRF protection offers more control over access.

حالا به طور خلاصه بخوایم توضیح بدیم :

1- برای زمانی که قراره تغییری روی دیتابیس صورت بگیره باید از POST استفاده کرد فقط زمانی از GET استفاده میکنیم که تغییر بر کارکرد دیتابیس و یا سیستم نداشته باشه

2- یادمون باشه که هر دو برای ارسال اطلاعات هستند فقط به شیوه های متفاوت

3- امنیت POST بیشتره

4- متد GET برای ارسال پسورد بسیار خطرناک هست چونکه اون رو در url نشون میده (با ذکر مثال توضیح میدم یعنی چی)

5- متد POST محافظت CSRF انجام میده و برای پسورد ها و صفحه های مدیریتی خیلی مناسب تر هست.


خب پس با توجه به این 5 مورد اصلا نباید از GET استفاده کرد؟ چرا باید استفاده کرد کجا ؟ مثال توی بخش Search ! این مثال رو نگاه کنید

قسمت search وب سایت Django از متد GET استفاده میکنه بنابراین کلید واژه ای که ما سرچ میکنیم رو داخل url میاره ! هیچ نیازیم نیست که بخوایم نگران امنیت یا... باشیم

پس بهتره بگیم POST --> وقتی که میخوایم اطلاعات مهمی رو ارسال کنیم و یا اطلاعاتی رو ارسال کنیم که قرار است تغییری در کارکرد سیستم و یا دیتابیس داشته باشه

متد GET --> برای نشون دادن اطلاعات به کاربر و اطلاعاتی که قرار است در اختیار کاربران قرار بگیره


خب ! تموم شد! مرسی که این مقاله رو خوندید نظرتونو حتما برام بنویسید.


وب سایتبرنامه نویسیpythondjangohtml
نوشته ها و آموزش های یک برنامه نویس که بنظر خودش خسته هست اما به نظر دیگران خستگی نمیشناسه. بیشترم راجب پایتون و جنگو نظر میده ! سایت شخصیشم فعلا Down شده چون پول هاستشو نداده!
شاید از این پست‌ها خوشتان بیاید