מה ההבדל בין HTTP GET ו- HTTP POST?

טופס זה מכיל מידע שעלול להיות רגיש, לכן עליך להשתמש ב- POST ולא ב- GET.

GET vs. פוסט

במובהק, ההבדל בין GET ו- POST טמון באופן העברת היישומים. המידע ב- GET מועבר לכתובת האתר. אם ראית פעם כתובת אתר הכוללת סימני שאלה וסמלי איחוד, חיפשת בקשת GET: example.com/request.php?var1=foo&var2=bar היא מחרוזת GET המקודדת את המשתנה "var1" "foo" והמשתנה "var2" כ"בר ". המידע POST כלול בגוף הבקשה, ואינו גלוי במחרוזת כתובת האתר (ולכן, אינו גלוי למשתמש).

הנחיות פורמליות

באופן רשמי, הנחיות HTML קובעות שיש להשתמש ב- GET עבור בקשות "idempotent" או בקשות שאינן משנות דבר. לדוגמה, דמיינו דף אינטרנט שמחזיר את מזג האוויר המקומי: "example.com/weather.php?zipcode=12345". מעשה הגשת הבקשה שוב ושוב אינו משנה דבר. יש להשתמש ב- POST ליישומים שאינם idmpotent. לדוגמה, נניח שביצעת רכישה באמצעות כרטיס האשראי שלך. הצגת בקשה זו שוב ושוב עלולה להוביל לשינויים גדולים למדי. מאחר שלשליחה חוזרת של בקשת POST יש השלכות (גם אם הן קטין), דפדפני אינטרנט בדרך כלל מציגים בקשה עבור המשתמש כדי לאשר שהם באמת רוצים לשלוח מחדש את טופס השאילתה.

היתרונות של GET

GET יש מספר יתרונות על פני POST. מכיוון ש- GET מקודד כחלק מכתובת אתר, תוכל לגזור ולהדביק את כתובת האתר ולשתף אותה עם אנשים אחרים. ניתן גם לסמן בקשות GET. אם אתה מעת לעת לבדוק את הזמן, אתה יכול להוסיף "example.com/weather.php?zipcode=12345" לסרגל "המועדפים" של הדפדפן שלך, כך שכאשר אתה לוחץ על קישור זה אתה לטעון באופן אוטומטי את דף מזג האוויר מותאם אישית. מכיוון ש- GET בקשות גלויים (וניתנים לעריכה) על ידי המשתמש, הם יכולים גם להיות פיראטיים. לדוגמה, אם האתר מזג האוויר לא הציע דרך ברורה לשנות את המיקום של הבקשה מזג האוויר, אתה יכול לשנות באופן ידני "12345" ל "99762" להסתכל על מזג האוויר ב Nome, אלסקה במקום מזג האוויר ב Schenectady.

מתי להשתמש ב- POST

גם במצבים שהם idmpotent, POST יש שימושים ברורים מדי פעם. חלקם מבוססים על ביטחון או חוקיות. המשתנים GET מועברים "ברורים", מכיוון שאתה לא רוצה לשלוח מידע על כרטיסי אשראי, מספרי ביטוח לאומי, סיסמאות או מידע משתמש סודי באמצעות GET. מאז נתוני POST מקבל כהה, עדיף במצבים אלה. POST משמש גם להעברת כמויות גדולות של נתונים, גם אם הנתונים אינם רגישים. מבחינה טכנית, כתובות (ולכן משתנים GET) יכול להיות אורך בלתי מוגבל. עם זאת, מכיוון שדפדפנים רבים מגבילים את כמות השטח ש- URL יכול לקבל, GET נחשבת בדרך כלל מספקת רק עבור בקשות קצרות יחסית.