HTML-pyyntömenetelmät

Mikä on HTTP?

Hyperlinkin siirto protokolla (Hypertext Transfer Protocol, lyhennys HTTP) on suunniteltu mahdollistamaan asiakkaan ja palvelimen välisen viestinnän.

HTTP toimii asiakkaan ja palvelimen välisenä pyynnön-vastausprotokollana.

Esimerkki: asiakas (selain) lähettää HTTP-pyynnön palvelimelle; sitten palvelin palauttaa vastauksen asiakkaalle. Vastaus sisältää pyynnön tilatiedot ja voi sisältää pyydetyn sisällön.

HTTP-metodi

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

Kaksi yleisimmin käytettyä metodia ovat: GET ja POST.

GET-metodi

GET käytetään datan pyytämiseen määritetystä resurssista.

GET on yksi yleisimmistä HTTP-metodeista.

Huomaa, että kyselymerkkijono (nimi/arvo-para) lähetetään GET-pyynnön URL:ssä:

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

Muutamia GET-pyynnöistä:

  • GET-pyynnöt voidaan tallentaa
  • GET-pyynnöt säilytetään selaimen historialleessa
  • GET-pyynnöt voidaan tallentaa kirjanmerkkeihin
  • GET-pyynnöitä ei tulisi käyttää arkaluontoisten tietojen käsittelyssä
  • GET-pyynnöillä on pituusrajoitus
  • GET-pyynnöt tulisi käyttää vain tiedon hakemiseen (ei muokkaamiseen)

POST-metodi

POST käytetään datan lähettämiseen palvelimelle luodaksesi/päivittääksesi resurssin.

POST:llä lähetettävät tiedot tallennetaan HTTP-pyynnön pyydettävään sisältöön:

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

POST on yksi yleisimmistä HTTP-metodeista.

Muutamia POST-pyynnöistä:

  • POST-pyynnöt eivät voi tallentaa
  • POST-pyynnöt eivät säilytetä selaimen historialleessa
  • POST ei voi tallentaa kirjanmerkkeihin
  • POST-pyynnöllä ei ole pituusrajoitusta

PUT-metodi

PUT käytetään datan lähettämiseen palvelimelle luodaksesi/päivittääksesi resurssin.

POST ja PUT välillä on ero, että PUT-pyyntö on idempotentti (ei-toistuva). Tämä tarkoittaa, että useat saman PUT-pyynnön kutsut tuottavat aina saman tuloksen. Päinvastoin, useat POST-pyynnön kutsut voivat vaikuttaa useita kertoja saman resurssin luomiseen.

HEAD-metodi

HEAD on lähes sama kuin GET, mutta ilman vastauskenttää.

Toisin sanoen, jos GET /users palauttaa käyttäjälistan, niin HEAD /users lähettää saman pyynnön, mutta ei palauta käyttäjälistaa.

HEAD-pyyntö on hyödyllinen, jos haluat tarkistaa GET-pyynnön palauttaman sisällön ennen kuin lähetät GET-pyynnön (esim. ennen suurten tiedostojen tai vastauskenttien lataamista).

DELETE-metodi

DELETE-metodi poistaa määritellyn resurssin.

OPTIONS-metodi

OPTIONS-metodi kuvaa kohdevedonlyönnin viestintävalintoja.

Vertaa GET:iä ja POST:ää

Seuraava taulukko vertailee kahta HTTP-metodia: GET ja POST.

  GET POST
Takaisin-nappi/Päivitä Harmiton Tiedot toimitetaan uudelleen (selaimeen tulisi ilmoittaa käyttäjälle, että tiedot toimitetaan uudelleen).
Kirjanmerkit Voit tallentaa kirjanmerkkeihin Ei voi tallentaa kirjanmerkkeihin
Tallennus Voit tallentaa Ei voi tallentaa
Koodausmuoto application/x-www-form-urlencoded application/x-www-form-urlencoded tai multipart/form-data. Käytä monikerroksista koodausta binaaridataa varten.
Historia Parametrit säilyvät selaimen historialle. Parametrit eivät tallennu selaimen historialle.
Rajoitukset tietojen pituudelle Kyllä. Kun lähetät tietoja, GET-metodi lisää tiedot URL:ään; URL:n pituus on rajoitettu (URL:n enimmäispituus on 2048 merkkiä). Rajoituksetta.
Rajoitukset datatyypille Vain ASCII-merkit sallittuja. Ei rajoituksia. Sallii myös binaaridata.
Turvallisuus

GET:n turvallisuus on heikompi kuin POST:n, koska lähetettävät tiedot ovat osa URL:ää.

Älä koskaan käytä GET:iä lähettämään salasanoja tai muita arkaluonteisia tietoja!

POST on turvallisempi kuin GET, koska parametrit eivät tallennu selaimen historialle tai verkkoserverin lokitiedostoihin.
Näkyvyys Data on näkyvää kaikille URL:ssä. Data ei näy URL:ssä.