DELETE

Μέθοδος HTTP

Προδιαγραφή της μεθόδου HTTP DELETE

Η μέθοδος DELETE ζητά από τον διακομιστή προέλευσης να καταργήσει τη συσχέτιση μεταξύ του πόρου-στόχου και της τρέχουσας λειτουργικότητάς του. Στην πραγματικότητα, η μέθοδος αυτή είναι παρόμοια με την εντολή rm στο UNIX: εκφράζει μια λειτουργία διαγραφής στην αντιστοίχιση URI του διακομιστή προέλευσης και όχι μια προσδοκία ότι οι πληροφορίες που είχαν συσχετιστεί προηγουμένως θα διαγραφούν.

Εάν ο πόρος-στόχος έχει μία ή περισσότερες τρέχουσες αναπαραστάσεις, αυτές μπορεί να καταστραφούν ή όχι από τον διακομιστή προέλευσης και ο σχετικός αποθηκευτικός χώρος μπορεί να ανακτηθεί ή όχι, ανάλογα με τη φύση του πόρου και την υλοποίησή του από τον διακομιστή προέλευσης (που είναι εκτός του πεδίου εφαρμογής της παρούσας προδιαγραφής). Ομοίως, άλλες πτυχές της υλοποίησης ενός πόρου μπορεί να χρειαστεί να απενεργοποιηθούν ή να αρχειοθετηθούν ως αποτέλεσμα μιας DELETE, όπως οι συνδέσεις βάσης δεδομένων ή πύλης. Σε γενικές γραμμές, θεωρείται ότι ο διακομιστής προέλευσης θα επιτρέπει την DELETE μόνο σε πόρους για τους οποίους διαθέτει έναν προδιαγεγραμμένο μηχανισμό για την πραγματοποίηση της διαγραφής.

Σχετικά λίγοι πόροι επιτρέπουν τη μέθοδο DELETE -- η κύρια χρήση της είναι για απομακρυσμένα περιβάλλοντα συγγραφής, όπου ο χρήστης έχει κάποιες οδηγίες σχετικά με το αποτέλεσμά της. Για παράδειγμα, ένας πόρος που είχε προηγουμένως δημιουργηθεί με τη χρήση μιας αίτησης PUT, ή είχε αναγνωριστεί μέσω του πεδίου επικεφαλίδας Location μετά από μια απάντηση 201 (Created) σε μια αίτηση POST, μπορεί να επιτρέψει μια αντίστοιχη αίτηση DELETE για την αναίρεση αυτών των ενεργειών. Ομοίως, προσαρμοσμένες υλοποιήσεις πρακτόρων χρήστη που υλοποιούν μια λειτουργία συγγραφής, όπως οι πελάτες ελέγχου αναθεώρησης που χρησιμοποιούν το HTTP για απομακρυσμένες λειτουργίες, θα μπορούσαν να χρησιμοποιήσουν το DELETE με βάση την υπόθεση ότι ο χώρος URI του διακομιστή έχει διαμορφωθεί έτσι ώστε να αντιστοιχεί σε ένα αποθετήριο εκδόσεων.

Εάν μια μέθοδος DELETE εφαρμοστεί επιτυχώς, ο διακομιστής προέλευσης ΘΑ ΠΡΕΠΕΙ να στείλει έναν κωδικό κατάστασης 202 (Αποδεκτή) εάν η ενέργεια πιθανώς θα πετύχει αλλά δεν έχει ακόμη πραγματοποιηθεί, έναν κωδικό κατάστασης 204 (Χωρίς περιεχόμενο) εάν η ενέργεια έχει πραγματοποιηθεί και δεν πρέπει να παρασχεθούν περαιτέρω πληροφορίες, ή έναν κωδικό κατάστασης 200 (OK) εάν η ενέργεια έχει πραγματοποιηθεί και το μήνυμα απόκρισης περιλαμβάνει μια αναπαράσταση που περιγράφει την κατάσταση.

Ένα ωφέλιμο φορτίο μέσα σε ένα μήνυμα αίτησης DELETE δεν έχει καθορισμένη σημασιολογία- η αποστολή ενός σώματος ωφέλιμου φορτίου σε μια αίτηση DELETE ενδέχεται να προκαλέσει την απόρριψη της αίτησης από ορισμένες υπάρχουσες υλοποιήσεις.

Οι απαντήσεις στη μέθοδο DELETE δεν μπορούν να αποθηκευτούν στην προσωρινή μνήμη. Εάν ένα αίτημα DELETE περάσει από μια κρυφή μνήμη που έχει μία ή περισσότερες αποθηκευμένες απαντήσεις για το πραγματικό URI του αιτήματος, αυτές οι αποθηκευμένες απαντήσεις θα ακυρωθούν (βλ. ενότητα 4.4 του [RFC7234]).

Η μέθοδος HTTP DELETE έχει καθοριστεί στην ενότητα 4.3.5 του εγγράφου RFC 7231 από την Internet Engineering Task Force (IETF) και το World Wide Web Consortium (W3C).

Περιγραφή της μεθόδου DELETE

έργο σε εξέλιξη

Παράδειγμα για τη μέθοδο HTTP DELETE

Request header:
DELETE /data/item/123 HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Response header:
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-store