DELETE

HTTP-menetelmä

HTTP-menetelmän DELETE määrittely

DELETE-menetelmä pyytää alkuperäistä palvelinta poistamaan kohderesurssin ja sen nykyisen toiminnallisuuden välisen yhteyden. Käytännössä tämä menetelmä muistuttaa UNIXin rm-komentoa: se ilmaisee alkuperäispalvelimen URI-kartoitukseen kohdistuvan poisto-operaation sen sijaan, että se ilmaisisi odotuksen siitä, että aiemmin yhdistetty tieto poistetaan.

Jos kohderesurssilla on yksi tai useampi nykyinen esitys, alkuperäispalvelin saattaa tuhota ne tai olla tuhoamatta niitä, ja siihen liittyvää tallennustilaa saatetaan tai ei voida ottaa takaisin, mikä riippuu täysin resurssin luonteesta ja sen toteutuksesta alkuperäispalvelimella (jotka eivät kuulu tämän määrittelyn piiriin). Samoin resurssin muut toteutuksen osat, kuten tietokanta- tai yhdyskäytäväyhteydet, saatetaan joutua poistamaan käytöstä tai arkistoimaan DELETE-toiminnon seurauksena. Yleisesti ottaen oletetaan, että alkuperäinen palvelin sallii DELETE-menetelmän vain resursseille, joille sillä on määrätty mekanismi poiston toteuttamiseksi.

Vähemmän moni resurssi sallii DELETE-menetelmän - sen ensisijainen käyttö on etäkirjoitusympäristöissä, joissa käyttäjällä on jonkinlainen ohjeistus sen vaikutuksesta. Esimerkiksi resurssi, joka on aiemmin luotu PUT-pyynnöllä tai joka on tunnistettu Location-otsikkokentän avulla POST-pyyntöön annetun 201 (Created) -vastauksen jälkeen, saattaa sallia vastaavan DELETE-pyynnön näiden toimien peruuttamisen. Vastaavasti mukautetut käyttäjäagenttitoteutukset, jotka toteuttavat kirjoitustoiminnon, kuten HTTP:tä etätoimintoihin käyttävät versiohallinta-asiakkaat, saattavat käyttää DELETEa olettaen, että palvelimen URI-avaruus on muokattu vastaamaan versiohallintavarastoa.

Jos DELETE-menetelmän käyttö onnistuu, alkuperäisen palvelimen PITÄÄ lähettää tilakoodi 202 (Hyväksytty), jos toiminto todennäköisesti onnistuu, mutta sitä ei ole vielä toteutettu, tilakoodi 204 (Ei sisältöä), jos toiminto on toteutettu eikä lisätietoja tarvitse toimittaa, tai tilakoodi 200 (OK), jos toiminto on toteutettu ja vastaussanoma sisältää tilaa kuvaavan esityksen.

DELETE-pyyntösanomassa olevalla hyötykuormalla ei ole määriteltyä semantiikkaa; hyötykuormarungon lähettäminen DELETE-pyynnössä saattaa johtaa siihen, että jotkin nykyiset toteutukset hylkäävät pyynnön.

DELETE-menetelmän vastaukset eivät ole välimuistissa. Jos DELETE-pyyntö kulkee sellaisen välimuistin läpi, jossa on yksi tai useampi tallennettu vastaus kyseiselle pyynnön URI:lle, nämä tallennetut vastaukset mitätöidään (ks. [RFC7234] kohta 4.4).

IETF (Internet Engineering Task Force) ja W3C (World Wide Web Consortium) ovat määritelleet HTTP-menetelmän DELETE asiakirjan RFC 7231 kohdassa 4.3.5.

Menetelmän DELETE kuvaus

keskeneräinen työ

Esimerkki HTTP-menetelmästä 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