Οι μέθοδοι αιτημάτων HTTP εξηγημένες
Το HTTP ορίζει εννέα τυπικές μεθόδους αιτημάτων, αλλά η καθημερινή κίνηση χρησιμοποιεί μόνο λίγες. Αυτός ο πίνακας εξηγεί κάθε μέθοδο, αν είναι ασφαλής και idempotent, και τους κωδικούς που επιστρέφει μια επιτυχημένη κλήση.
| Μέθοδος | Σκοπός | Ασφαλής; | Idempotent; | Κατάσταση επιτυχίας |
|---|---|---|---|---|
| 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 είναι ασφαλείς.
- Idempotent σημαίνει ότι η επανάληψη της κλήσης δίνει το ίδιο αποτέλεσμα με μία κλήση: ισχύει για 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 είναι idempotent, οπότε η επανάληψη δίνει το ίδιο αποτέλεσμα· το PATCH γενικά όχι.
- Τι κάνει η μέθοδος HEAD;
- Το HEAD συμπεριφέρεται όπως το GET αλλά δεν επιστρέφει σώμα απόκρισης. Είναι χρήσιμο για να ελέγξετε αν υπάρχει ένας πόρος, το μέγεθός του ή οι κεφαλίδες του, χωρίς να κατεβάσετε όλο το περιεχόμενο.