Rozdział 22 · Tworzenie stron internetowych z Python

HTTP: żądania, odpowiedzi, metody i kody stanu

Wspólny zestaw reguł, według których przeglądarka i serwer wymieniają wiadomości.

HTTP (HyperText Transfer Protocol) to protokół wymiany aplikacji Wiadomości między klientem a serwerem w sieci: określa wspólny zestaw reguł, na podstawie których Przeglądarka i serwer wymieniają żądania i odpowiedzi. Każda wiadomość — prośba lub odpowiedź — składa się z podobnych części.

HTTP-żądanieHTTP- odpowiedź
Metoda: Co robić (GET, POST...)Kod statusu: jak poszło (200, 404...)
Ścieżka: jaki zasób jest potrzebnyTytuły: Metadane odpowiedzi
Nagłówki: metadane żądaniaSedno: Treść – HTML, JSON, plik...
Ciało: dane opcjonalne (np. formularz)

Podstawowe metody HTTP

MetodaZnaczenie zwyczajne
GETUzyskaj dane — otwórz stronę, zobacz lista
POSTWyślij nowe dane — dodaj zadanie, wyślij formularz
PUTCałkowicie zastąpić istniejący zasób
PATCHCzęściowa modyfikacja istniejącego zasobu
DELETEUsuń zasób

Są to powszechne konwencje, a nie prawo fizyczne: żadna z tych metod zmusza serwer do określonego zachowania – Flask wykona każdy kod, który ty zapis do handlera, niezależnie od metody. Ale przestrzeganie tych konwencji rzeczywiście Aplikacja jest zrozumiała dla innych deweloperów oraz dla narzędzi takich jak pamięć podręczna przeglądarki. Nie każda aplikacja korzysta ze wszystkich pięciu metod — mała strona sobie radzi tylko GET i POST jak w sekcji 22.5.

GET nie jest „bezpieczniejszy” niż POST — i odwrotnie
GET i POST nie różnią się w ochronie przesyłanych danych: jest to określane przez protokół (HTTP lub HTTPS, sekcja 22.10), a nie przez metodę. Różnica jest inna: z definicji HTTP GET przeznaczony do odbierania danych i nie powinien powodować stopniowych zmian na serwerze — to podstawa zachowania przeglądarek, proxy cache'owych i innych narzędzi, które uznają GET za bezpieczne do powtarzania: odświeżanie strony lub zakładki nie powinno nic zmieniać. Dlatego usunięcie zadania przez link GET- jest złym pomysłem (sekcja 22.35 pokazuje poprawne): przypadkowe odświeżenie strony przez przeglądarkę nie powinno niczego usuwać.

Kody statusowe: Jak przebiegło żądanie

ZakresZnaczeniePrzykłady
2xxSukces200 OK, 201 Created
3xxPrzekierowanie302 Found, 303 See Other — „zasób musi być wyświetlany pod innym adresem”
4xxBłąd klienta400 Bad Request, 404 Not Found
5xxBłąd serwera500 Internal Server Error

Rozdział 22.13 pokazuje kod 303 w działaniu — jako część wzorca POST-Redirect-GET, a sekcja 22.31 — kody 400 i 404 podczas obsługi błędów wejściowych.

Treści wiadomości to nie tylko HTML

Ciało odpowiedzi HTTP- może zawierać stronę HTML-, ale równie łatwo — dane w formacie JSON (sekcja 22.15), obraz, plik CSS-, plik JavaScript- lub dowolny inny plik. To właśnie nagłówek Content-Type informuje przeglądarkę, jak zrozumieć ciało Odpowiedź — text/html, application/json, image/png i tak dalej.

Praktyka: Klasyfikacja kodów statusowych
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →