GET i POST to metody HTTP używane m.in. do przesyłania danych z formularzy HTML do serwera.
Metoda GET
W metodzie GET dane formularza są dopisywane do adresu URL jako parametry zapytania, np.:
/login.php?user=adam&haslo=1234
Cechy GET:
- dane są widoczne w pasku adresu przeglądarki,
- mogą zostać zapisane w historii przeglądarki,
- mogą trafić do logów serwera lub systemów pośredniczących,
- nadaje się głównie do danych jawnych, np. wyszukiwania lub filtrowania.
GET nie powinien być używany do przesyłania haseł, tokenów ani danych osobowych.
Metoda POST
W metodzie POST dane są przesyłane w treści żądania HTTP, a nie w adresie URL.
Przykład formularza:
<form method="post" action="https://example.com/login.php">
<input type="password" name="haslo">
<button type="submit">Zaloguj</button>
</form>
Cechy POST:
- dane nie są widoczne w adresie URL,
- lepiej nadaje się do logowania, rejestracji i wysyłania formularzy z danymi poufnymi,
- pozwala przesyłać większe ilości danych niż GET.
Czy POST sam w sobie jest bezpieczny?
Nie. POST przez HTTP nadal nie szyfruje danych. Osoba podsłuchująca ruch sieciowy może odczytać przesyłane informacje.
Najbezpieczniejszym wyborem dla danych poufnych jest:
POST + HTTPS
POST ukrywa dane przed adresem URL, a HTTPS szyfruje transmisję między przeglądarką a serwerem.