מה ההבדל בין בקשות לפרסם ולקבל?

GET ו-POST הן שתי שיטות בקשת HTTP הנפוצות ביותר. בדרך כלל בקשות GET משמשות לבקשת דפי אינטרנט בעוד POST משמש לשליחת נתונים לשרת האינטרנט כגון באמצעות טופס אינטרנט.

טיפ: בעוד שהן נקראות שיטות HTTP, גם GET וגם POST משמשות ב-HTTPS.

אחת ההבחנות החשובות היא שכל הפרמטרים הנכללים בבקשות GET נכללים בכתובת ה-URL עצמה, בעוד שהפרמטרים בבקשות POST הם חלק מגוף הבקשה.

לדוגמה, כתובת אתר לבקשת GET עשויה להיראות כמו "GET.php? parameter=value" בעוד שכתובת האתר עבור בקשת POST תיראה כמו "POST.php" ולאחר מכן ה-"parameter=value" מוגדר בגוף הבקשה.

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

הבדלים נוספים בין GET ל-POST כוללים את העובדה שניתן לאחסן בקשות GET במטמון על ידי הדפדפן או מטמונים של צד שלישי, בקשות GET כלולות בהיסטוריית הדפדפן וניתן לסמן אותן כסימניות. בקשות POST בהשוואה לעולם אינן מאוחסנות במטמון, אינן נשמרות בהיסטוריית הדפדפן ולא ניתן לסמן אותן.

אפשר להגדיר טפסים לשימוש בבקשת GET כדי לשלוח נתונים לשרת האינטרנט, אבל לעשות זאת הוא רעיון רע מכיוון שכל הגורמים הללו נכנסים לתמונה. זה חשוב במיוחד לטפסים רגישים כגון טפסי התחברות, כי אם בקשה זו נרשמה היא תחשוף את סיסמת המשתמש, ואם התגובה נשמרה על ידי צד שלישי היא יכולה לאפשר למשתמשים אחרים להיכנס לחשבון של המשתמש חֶשְׁבּוֹן.