HTML-anmodningsmetoder

Hvad er HTTP?

HyperTekstOverførselsProtokol (Hypertext Transfer Protocol, forkortet HTTP) er designet til at muliggøre kommunikation mellem klient og server.

HTTP fungerer som en anmodnings-responsprotokol mellem klient og server.

Eksempel: Klient (browser) sender HTTP-anmodning til serveren; derefter returnerer serveren svaret til klienten. Svaret indeholder statusinformation om anmodningen, og det kan også indeholde det anmodede indhold.

HTTP-metode

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

De mest almindelige metoder er: GET og POST.

GET-metode

GET bruges til at anmode om data fra en specifik ressource.

GET er en av de mest vanlige HTTP-metodene.

Vær oppmerksom på at søkestrengen (navn/verdi-par) sendes i GET-forespørselens URL:

/test/demo_form.php?name1=value1&name2=value2

Noen andre kommentarer om GET-forespørsel:

  • GET-forespørsel kan lagres i cache
  • GET-forespørsel blir lagret i browserhistorikken
  • GET-forespørsel kan gemmes som bokmærke
  • GET-forespørsel bør ikke brukes når man håndterer sensitive data
  • GET-forespørsel har lengdebegrensninger
  • GET-forespørsel bør kun brukes til å hente data (ikke endre)

POST-metoden

POST brukes til å sende data til serveren for å opprette/oppdatere en ressurs.

Dataene som sendes til serveren via POST lagres i HTTP-forespørselens forespørselsbody:

POST /test/demo_form.php HTTP/1.1
Host: codew3c.com
name1=value1&name2=value2

POST er en av de mest vanlige HTTP-metodene.

Noen andre kommentarer om POST-forespørsel:

  • POST-forespørsel blir ikke lagret i cache
  • POST-forespørsel blir ikke lagret i browserhistorikken
  • POST kan ikke gemmes som bokmærke
  • POST-forespørsel har ingen krav om datalengde

PUT-metoden

PUT brukes til å sende data til serveren for å opprette/oppdatere en ressurs.

Forskjellen mellom POST og PUT er at PUT-forespørselen er idempotent (idempotent). Det vil si at flere kall på samme PUT-forespørsel alltid vil generere samme resultat. I motsetning til dette har flere kall på POST-forespørsel bivirkninger om å opprette samme ressurs flere ganger.

HEAD-metoden

HEAD er nesten samme som GET, men uten responsbody.

Med andre ord, hvis GET /users returnerer en liste over brukere, vil HEAD /users sende den samme forespørselen, men uten å returnere en liste over brukere.

HEAD-forespørselen er nyttig for å sjekke innholdet som GET-forespørselen vil returnere før GET-forespørselen faktisk sendes (for eksempel før nedlasting av store filer eller responsinnhold).

DELETE-metoden

DELETE-metoden sletter den spesifiserte ressursen.

OPTIONS-metoden

OPTIONS-metoden beskriver kommunikasjonsvalgene for måleresursen.

Sammenlign GET med POST

Følgende tabell sammenligner to HTTP-metoder: GET og POST.

  GET POST
Tilbakeknapp/oppfrisk Harmløs Dataene vil bli sendt inn på nytt (browseren bør informere brukeren om at dataene vil bli sendt inn på nytt).
Bokmærke Kan gemmes som bokmærke Kan ikke gemmes som bokmærke
Cache Kan gemmes i cache Kan ikke cachen
Kodningstype application/x-www-form-urlencoded application/x-www-form-urlencoded eller multipart/form-data. Brug flere encodninger for binære data.
Historik Parametre gemmes i browserhistorikken. Parametre gemmes ikke i browserhistorikken.
Begrænsninger for datalængden Ja. Når data sendes, tilføjer GET-metoden data til URL'en; længden af URL'en er begrænset (URL's maksimale længde er 2048 tegn). Ingen begrænsninger.
Begrænsninger for datatypen Kun ASCII-tegn er tilladt. Ingen begrænsninger. Tillader også binære data.
Sikkerhed

GET er mindre sikkert sammenlignet med POST, fordi de sendte data er en del af URL'en.

Brug aldrig GET til at sende adgangskoder eller andre følsomme oplysninger!

POST er mere sikkert end GET, fordi parametrene ikke gemmes i browserhistorikken eller webserverens log.
Synlighed Data er synlige for alle i URL'en. Data vises ikke i URL'en.