Hvad er PUT?
PUT-metoden bruges til at opdatere den ressource, der er tilgængelig på serveren. Det erstatter typisk det, der findes på mål-URL'en, med noget andet. Du kan bruge den til at oprette en ny ressource eller overskrive en eksisterende. PUT anmoder om, at den vedlagte enhed skal lagres under den leverede anmodede URI (Uniform Resource Identifier).
I denne vejledning lærer du:
- Hvad er PUT?
- Hvad er POST?
- Eksempel på PUT
- Eksempel på POST
- Forskel mellem PUT og POST
- Test af en API med PUT-anmodninger
- Test af en API med POST-anmodninger
- Fordele ved PUT-metoden
- Fordele ved POST-metoden
Hvad er POST?
POST er en metode, der understøttes af HTTP og
viser, at en webserver accepterer de data, der er inkluderet i meddelelsens brødtekst, som der anmodes om. POST bruges ofte af World Wide Web til at sende brugergenererede data til webserveren, eller når du uploader en fil.
Nøgleforskelle:
- PUT-metoden kaldes, når du skal ændre en enkelt ressource, mens POST-metoden kaldes, når du skal tilføje en underressource.
- PUT-metodesvar kan caches, men du kan ikke cache PUT-metodesvar.
- Du kan bruge UPDATE-forespørgsel i PUT, mens du kan bruge Opret forespørgsel i POST.
- I PUT-metoden beslutter klienten hvilken URI-ressource der skal have, og i POST-metoden beslutter serveren hvilken URI-ressource der skal have.
- PUT fungerer som specifikt, mens POST fungerer som abstrakt.
- Hvis du sender den samme PUT-anmodning flere gange, forbliver resultatet det samme, men hvis du sender den samme POST-anmodning flere gange, vil du modtage forskellige resultater.
- PUT-metoden er idempotent, mens POST-metoden ikke er idempotent.
Eksempel på PUT
Her er webservereksemplet på en PUT-metode:
HTTP PUT http://www.google.com/users/234
HTTP PUT http://www.google.com/users/234/accounts/567
Anmodning
PUT /new.html HTTP/1.1Host: example.comContent-type: text/htmlContent-length: 20New File
Svar
Hvis målressourcen har den aktuelle repræsentation og ændres med tilstanden for den vedlagte repræsentation, skal serveren sende to svar. Den første svarkode er 200 (OK), og den anden svarkode er 204 (Intet indhold).
Hvis målressourcen ikke har nogen repræsentation, skal serveren informere brugeren ved at sende et 201-kode (oprettet) svar.
HTTP/1.1 201 CreatedContent-Location: /new.html
Eksempel på POST
Her er et eksempel på POST-metode:
HTTP POST http://www.google.com/users
HTTP POST http://www.google.com/users/234/accounts
En formular, der bruger standardapplikationen / x-www-form-urlencoded indholdstype:
POST /test HTTP/1.1Host: abc.exampleContent-Type: application/x-www-form-urlencodedContent-Length: 40field1=value1&field2=value2
Forskel mellem PUT og POST
Her er den vigtige forskel mellem PUT- og POST-metoden:
SÆTTE | STOLPE |
Denne metode er idempotent. | Denne metode er ikke idempotent. |
PUT-metoden er kald, når du skal ændre en enkelt ressource, som allerede er en del af ressourceindsamlingen. | POST-metoden er kald, når du skal tilføje en underordnet ressource under ressourceindsamling. |
RFC-2616 viser, at PUT-metoden sender en anmodning om en lukket enhed, der er gemt i den leverede anmodnings-URI. | Denne metode beder serveren om at acceptere den enhed, der er vedlagt i anmodningen. |
PUT-metodesyntaks er PUT / spørgsmål / {spørgsmål-id} | POST-metodesyntaks er POST / spørgsmål |
PUT-metodesvar kan caches. | Du kan ikke cache PUT-metodens svar. |
PUT / vi / juice / orders / 1234 angiver, at du opdaterer en ressource, der er identificeret med "1234". | POST / vi / juice / ordrer angiver, at du opretter en ny ressource og returnerer en identifikator til beskrivelse af ressourcen. |
Hvis du sender den samme anmodning flere gange, forbliver resultatet det samme. | Hvis du sender den samme POST-anmodning mere end én gang, modtager du forskellige resultater. |
PUT fungerer som specifikt. | POST fungerer som abstrakt. |
Vi bruger UPDATE-forespørgsel i PUT. | Vi bruger Opret forespørgsel i POST. |
I PUT-metoden beslutter klienten hvilken URI-ressource, der skal have. | I POST-metoden beslutter serveren, hvilken URI-ressource der skal have. |
Test af en API med PUT-anmodninger
Her er trinene til at teste API med PUT-anmodninger:

Trin 1) Opdater ressourcer med PUT-anmodning.
Trin 2) Brug GET-metoden til ressource. Hvis PUT-anmodningen lykkes, modtager du nye data. Denne metode mislykkes, hvis de leverede data i anmodningen er ugyldige. Derfor opdaterer den ikke noget.
Test af en API med POST-anmodninger
Her er trinene til at teste API med POST-anmodninger:

Trin 1) Opret en ressource ved hjælp af POST-anmodning, og sørg for, at den returnerer 200 statuskode.
Trin 2) Lav en GET-anmodning om den ressource, og gem dataene i det korrekte format.
Trin 3) Du skal tilføje tests, der sikrer, at POST-anmodninger mislykkes med forkerte data.
Fordele ved PUT-metoden
Her er fordele / fordele ved at bruge PUT-metoden:
- Det hjælper dig med at gemme den leverede enhed under den leverede URI
- Hvis den leverede enhed allerede findes, kan du udføre opdateringshandlingen, eller du kan oprette med den URI.
- Du kan oprette en ressource så mange gange som du vil.
- Oprettelse af en ressource med PUT-metoden er meget let.
- Du behøver ikke kontrollere, om brugeren har klikket på knappen Send flere gange eller ej.
- Det kan identificere den enhed, der er vedlagt anmodningen.
Fordele ved POST-metoden
Her er fordele / fordele ved at bruge POST-metoden:
- Denne metode hjælper dig med at bestemme ressource-URI.
- Det er meget nemt at angive en ny ressourceplacering ved hjælp af placeringsoverskrift.
- Du kan sende en anmodning om at acceptere enheden som en ny underordnet ressource, som identificeres af URI.
- Du kan sende brugergenererede data til webserveren.
- Det er meget nyttigt, når du ikke kender URL til at beholde nogen ressource.
- Brug POST, når du har brug for serveren, som styrer URL-generering af dine ressourcer.
- POST er en sikker metode, da dens anmodninger ikke forbliver i browserhistorikken.
- Du kan ubesværet overføre en stor mængde data ved hjælp af post.
- Du kan holde dataene private.
- Denne metode kan bruges til at sende binære såvel som ASCII-data.