GET ja POST ovat kaksi yleisimmin käytettyä HTTP-pyyntömenetelmää. Tyypillisesti GET-pyyntöjä käytetään verkkosivujen pyytämiseen, kun taas POST-pyyntöä käytetään tietojen lähettämiseen verkkopalvelimelle, esimerkiksi verkkolomakkeen kautta.
Vinkki: Vaikka niitä kutsutaan HTTP-menetelmiksi, sekä GET- että POST-menetelmiä käytetään myös HTTPS:ssä.
Yksi tärkeimmistä eroista on, että kaikki GET-pyyntöihin sisältyvät parametrit sisältyvät itse URL-osoitteeseen, kun taas POST-pyyntöjen parametrit ovat osa pyynnön runkoa.
Esimerkiksi GET-pyynnön URL-osoite voi näyttää muodossa "GET.php?parameter=value", kun taas POST-pyynnön URL-osoite näyttää muotolta "POST.php", ja sen jälkeen pyynnön rungossa on "parameter=value".
Yksi tämän tärkeimmistä seurauksista on, että kun verkkopalvelimet lokipyynnöt pyytävät, pyydetty URL kirjataan aina lokiin. Joten GET-pyyntöjen parametrit kirjataan myös lokiin. POST-pyyntöjen tapauksessa arvoja ei kuitenkaan kirjata lokiin, koska pyynnön runkoa ei kirjata lokiin. Tämä on erityisen tärkeää lomakkeille, jotka sisältävät arkaluontoisia tietoja, kuten salasanoja tai PII-tietoja (Personally Identifiable Information), koska POST-testin käyttö tarkoittaa, että nämä tiedot eivät kirjaudu verkkopalvelimiin.
Muita eroja GET:n ja POST:n välillä ovat se, että GET-pyynnöt voidaan tallentaa välimuistiin selaimen tai kolmannen osapuolen välimuistiin, GET-pyynnöt sisältyvät selainhistoriaan ja ne voidaan lisätä kirjanmerkkeihin. Vertailun POST-pyyntöjä ei koskaan tallenneta välimuistiin, niitä ei tallenneta selainhistoriaan, eikä niitä voida lisätä kirjanmerkkeihin.
Lomakkeet voidaan määrittää käyttämään GET-pyyntöä tietojen lähettämiseen verkkopalvelimelle, mutta se on huono idea, koska kaikki nämä tekijät vaikuttavat. Se on erityisen tärkeää arkaluontoisille lomakkeille, kuten kirjautumislomakkeille, sillä jos tämä pyyntö kirjattaisiin, se paljastaisi käyttäjän salasanan, ja jos vastauksen on tallentanut välimuistiin kolmas osapuoli, se voi antaa muiden käyttäjien kirjautua sisään käyttäjän tilille.