מתודות בקשות HTTP מוסברות
HTTP מגדיר תשע מתודות בקשה סטנדרטיות, אבל רוב התעבורה היומיומית משתמשת רק בחלק מהן. טבלה זו מסבירה כל מתודה, האם היא בטוחה ואידמפוטנטית, ואת הקודים שמחזירה קריאה מוצלחת.
| מתודה | מטרה | בטוחה? | אידמפוטנטית? | סטטוס הצלחה |
|---|---|---|---|---|
| GET | Retrieve a resource | Yes | Yes | 200 OK |
| HEAD | Retrieve headers only, no body | Yes | Yes | 200 OK |
| POST | Create a resource or trigger an action | No | No | 201 Created |
| PUT | Replace a resource entirely | No | Yes | 200 OK / 204 No Content |
| PATCH | Apply a partial update | No | No | 200 OK |
| DELETE | Remove a resource | No | Yes | 200 OK / 204 No Content |
| OPTIONS | CORS preflight; list allowed methods | Yes | Yes | 204 / 200 OK |
| TRACE | Echo the request back for diagnostics | Yes | Yes | 200 OK |
| CONNECT | Open a tunnel, e.g. HTTPS via a proxy | No | No | 200 OK |
הערות
- בטוחה פירושו שהמתודה אף פעם לא משנה את מצב השרת: רק GET, HEAD, OPTIONS ו־TRACE הן בטוחות.
- אידמפוטנטית פירושו שחזרה על הקריאה נותנת את אותה תוצאה כמו קריאה אחת: PUT, DELETE ו־GET עומדות בכך; POST ו־PATCH לא.
- כשמסלול לא מקבל מתודה מסוימת, השרת עונה 405 Method Not Allowed ובדרך כלל כולל כותרת Allow.
שאלות נפוצות
- מה ההבדל בין GET ל־POST?
- GET מאחזר משאב ללא תופעות לוואי וניתן לחזור עליו בבטחה; הפרמטרים מועברים ב־URL. POST יוצר משהו או מפעיל פעולה, עשוי לשנות מצב, ואין לחזור עליו בלי מחשבה.
- מה הכוונה שמתודת HTTP היא בטוחה?
- מתודה בטוחה אף פעם לא משנה את מצב השרת, כך שאפשר לקרוא לה בלי סיכון. GET, HEAD, OPTIONS ו־TRACE בטוחות; POST, PUT, PATCH ו־DELETE לא.
- מה ההבדל בין PUT ל־PATCH?
- PUT מחליף את כל המשאב במה שאתם שולחים; PATCH מחיל שינוי חלקי רק על שדות נבחרים. PUT אידמפוטנטית, כך שחזרה עליה נותנת אותה תוצאה; PATCH בדרך כלל לא.
- למה משמשת מתודת HEAD?
- HEAD מתנהגת כמו GET אך אינה מחזירה גוף תגובה. היא שימושית לבדיקת קיום משאב, גודלו או הכותרות שלו, בלי להוריד את כל התוכן.