What is a post method?

HTTP POST-anmodning: En dybdegående guide

25/10/2016

Rating: 4.21 (12080 votes)

Internettet, som vi kender det, er bygget på en konstant kommunikation mellem din browser (klienten) og de webservere, der hoster de hjemmesider, du besøger. Denne kommunikation styres af et sæt regler kendt som Hypertext Transfer Protocol (HTTP). Kernen i HTTP er anmodnings-svar-modellen, hvor klienten sender en anmodning, og serveren returnerer et svar. For at specificere formålet med en anmodning bruges forskellige metoder eller 'verber'. De to mest almindelige er GET og POST. Mens GET bruges til at hente data, har POST en anden, afgørende rolle: at sende data til en server for at oprette eller opdatere en ressource. Denne artikel vil dykke ned i, hvad en POST-anmodning er, hvordan den fungerer, og hvorfor den er så fundamental for den moderne weboplevelse.

What is the difference between HTTP GET and post?
By design, the POST request method requests that a web server accepts the data enclosed in the body of the request message, most likely for storing it. It is often used when uploading a file or when submitting a completed web form. In contrast, the HTTP GET request method retrieves information from the server.
Indholdsfortegnelse

Hvad er en POST-anmodning?

En POST-anmodning er en HTTP-metode, der bruges til at sende data til en webserver. I modsætning til en GET-anmodning, hvor data sendes som en del af URL'en (hvilket gør dem synlige og begrænsede i længde), sender en POST-anmodning dataene i anmodningens 'krop' (request body). Dette gør metoden ideel til at håndtere følsomme oplysninger, store datamængder og handlinger, der medfører en ændring på serveren, såsom at oprette en ny bruger, indsende en kontaktformular eller uploade en fil.

Tænk på det som at sende et brev. Med en GET-anmodning skriver du din besked på ydersiden af konvolutten for alle at se. Med en POST-anmodning lægger du beskeden inde i en forseglet konvolut, hvilket holder indholdet privat og sikkert under transporten.

What is a POST request?
POST is used to send data to a server to create/update a resource. The data sent to the server with POST is stored in the request body of the HTTP request: Some notes on POST requests: The following table compares the two HTTP methods: GET and POST. application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data

Nøgleegenskaber ved POST-anmodninger

POST-metoden har flere distinkte egenskaber, der adskiller den fra andre HTTP-metoder:

  • Ikke cachelagret: POST-anmodninger bliver aldrig gemt i browserens cache. Hver anmodning behandles som unik af serveren.
  • Ingen browserhistorik: Data sendt via POST gemmes ikke i browserhistorikken. Dette er en vigtig sikkerhedsfunktion, især for loginoplysninger.
  • Kan ikke bogmærkes: Da anmodningen indeholder data, der skal behandles, kan den ikke gemmes som et bogmærke.
  • Ingen datalængdebegrænsninger: Der er ingen teoretiske begrænsninger for mængden af data, du kan sende i en POST-anmodning, i modsætning til GET, som er begrænset af URL'ens maksimale længde.

Sammenligning: GET vs. POST

For fuldt ud at forstå styrken ved POST er det vigtigt at sammenligne den direkte med dens modpart, GET. Selvom begge er essentielle, tjener de vidt forskellige formål. Nedenstående tabel fremhæver de vigtigste forskelle.

EgenskabGETPOST
Tilbage-knap / GenindlæsUfarlig. Siden genindlæses normalt.Data vil blive genindsendt. Browseren advarer typisk brugeren om dette for at undgå duplikerede handlinger (f.eks. at bestille en vare to gange).
BogmærkerKan bogmærkes.Kan ikke bogmærkes.
CacheKan cachelagres.Bliver ikke cachelagret.
BrowserhistorikParametre gemmes i browserhistorikken.Parametre gemmes ikke i browserhistorikken.
DatalængdeBegrænset af URL'ens maksimale længde (typisk omkring 2048 tegn).Ingen begrænsninger.
DatatyperKun ASCII-tegn er tilladt.Alle datatyper, inklusive binære data (f.eks. filer), er tilladt.
SikkerhedMindre sikker, da data er synlige i URL'en. Bør aldrig bruges til følsomme oplysninger.Mere sikker, da data er skjult i anmodningens krop. Dette er standarden for følsomme data.
SynlighedData er synlige for alle i URL'en.Data vises ikke i URL'en.

Forskellen på POST og PUT

En anden metode, der ofte forveksles med POST, er PUT. Begge bruges til at sende data til en server, men der er en afgørende filosofisk og teknisk forskel: idempotens.

What is a POST request?
POST is used to send data to a server to create/update a resource. The data sent to the server with POST is stored in the request body of the HTTP request: Some notes on POST requests: The following table compares the two HTTP methods: GET and POST. application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data

En handling er idempotent, hvis det at udføre den flere gange har samme resultat som at udføre den én gang. PUT-anmodninger er idempotente. Hvis du sender en PUT-anmodning for at opdatere en brugers profil med de samme oplysninger flere gange, vil resultatet på serveren være det samme efter den første anmodning. Du opdaterer den specifikke ressource (f.eks. `/brugere/123`) til en bestemt tilstand.

POST-anmodninger er derimod ikke idempotente. Hvis du sender den samme POST-anmodning for at oprette en ny bruger flere gange, vil du sandsynligvis oprette flere identiske brugere. Hver anmodning resulterer i en ny ressource. Derfor bruges POST typisk til at oprette nye underordnede ressourcer (f.eks. at sende til `/brugere` for at oprette en ny bruger).

What is the difference between put and POST HTTP method?
The POST HTTP method sends data to the server. The type of the body of the request is indicated by the Content-Type header. The difference between PUT and POST is that PUT is idempotent: calling it once is no different from calling it several times successively (there are no side effects).

Praktisk anvendelse af POST

Du interagerer med POST-anmodninger hver dag uden at tænke over det. Her er nogle almindelige eksempler:

  • Login-formularer: Når du indtaster dit brugernavn og din adgangskode, sendes disse oplysninger via en POST-anmodning for at holde dem skjulte.
  • Oprettelse af konto: Når du tilmelder dig en ny tjeneste, sendes alle dine oplysninger (navn, e-mail osv.) via POST for at oprette din profil i databasen.
  • Upload af filer: Når du uploader et billede til sociale medier eller en fil til en cloud-tjeneste, bruges POST til at sende selve fil-dataene.
  • Indsendelse af kommentarer: At skrive en kommentar til en blog eller et forum indebærer at sende teksten i en POST-anmodning.

I HTML-formularer styres dette typisk via `method="post"`-attributten i `

`-tagget. Derudover specificerer `enctype`-attributten, hvordan dataene skal kodes. De mest almindelige er:

  • application/x-www-form-urlencoded: Standardkodningen for simple tekstdata. Nøgle-værdi-par adskilles med `&`.
  • multipart/form-data: Bruges, når formularen indeholder filer, binære data eller ikke-ASCII-tegn. Hver værdi sendes som en separat datablok.

Ofte Stillede Spørgsmål (FAQ)

Er en POST-anmodning fuldstændig sikker?

Nej. POST skjuler data fra URL'en, browserhistorikken og serverlogs, hvilket gør den markant mere sikker end GET til følsomme data. Dog sendes dataene stadig i klartekst over netværket, medmindre du bruger en krypteret forbindelse. For ægte sikkerhed er det afgørende at kombinere POST med HTTPS (HTTP Secure), som krypterer hele kommunikationen mellem klient og server.

Hvornår skal jeg bruge POST i stedet for GET?

Du bør altid bruge POST, når:

  1. Handlingen medfører en ændring på serveren (oprettelse, opdatering, sletning).
  2. Du sender følsomme oplysninger som adgangskoder, personlige data eller betalingsoplysninger.
  3. Du skal sende en stor mængde data, der overstiger URL-længdebegrænsningen.
  4. Du har brug for at sende binære data, f.eks. en fil.

Hvad sker der, hvis jeg genindlæser en side, der blev vist efter en POST-anmodning?

De fleste moderne browsere vil vise en advarsel, der spørger, om du er sikker på, at du vil indsende formularen igen. Dette er en sikkerhedsforanstaltning for at forhindre utilsigtede duplikerede handlinger, som f.eks. at foretage det samme køb to gange.

Hvis du vil læse andre artikler, der ligner HTTP POST-anmodning: En dybdegående guide, kan du besøge kategorien Teknologi.

Go up