Metody GET i POST w HTTP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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.