Jak działa protokół HTTP?
sobes.tech AI
Odpowiedź od AI
HTTP (Hypertext Transfer Protocol) — protokół warstwy aplikacji używany do pobierania zasobów, takich jak strony internetowe. Działa na modelu "klient-serwer".
Klient (zazwyczaj przeglądarka) wysyła żądanie do serwera, który przetwarza żądanie i wysyła odpowiedź.
Główne elementy wiadomości HTTP:
-
Linia startowa: Określa typ wiadomości (żądanie lub odpowiedź) i główne parametry.
- Żądanie: Metoda (GET, POST, PUT, DELETE itp.), ścieżka do zasobu, wersja protokołu.
- Odpowiedź: Wersja protokołu, kod statusu (200 OK, 404 Not Found, 500 Internal Server Error itp.), tekstowy opis statusu.
GET /index.html HTTP/1.1 // Przykład linii startowej żądaniaHTTP/1.1 200 OK // Przykład linii startowej odpowiedzi -
Nagłówki (Headers): Zawierają metainformacje o wiadomości i ciele wiadomości. Każdy nagłówek przedstawiony jest jako "NazwaNagłówka: Wartość".
- Nagłówki żądania: Host, User-Agent, Accept, Content-Type, Content-Length itp.
- Nagłówki odpowiedzi: Content-Type, Content-Length, Server, Set-Cookie itp.
Host: example.com // Przykład nagłówka Host User-Agent: Mozilla/5.0 // Przykład nagłówka User-Agent -
Pusta linia: Oddziela nagłówki od ciała wiadomości.
-
Ciało wiadomości (Body): Zawiera przesyłane dane. Może nie występować w niektórych żądaniach (np. GET) i odpowiedziach (np. 204 No Content). W żądaniach z metodami POST lub PUT ciało zazwyczaj zawiera przesyłane dane. W odpowiedziach ciało zawiera żądany zasób (np. kod HTML, obrazy, JSON).
<!DOCTYPE html> <html> <head> <title>Przykład</title> </head> <body> <h1>Cześć!</h1> </body> </html>
Główne metody HTTP:
| Metoda | Opis | Użycie |
|---|---|---|
| GET | Żąda zasobu z określonego URL. | Pobieranie danych bez zmiany stanu serwera. |
| POST | Wysyła dane do przetworzenia na serwerze. | Wysyłanie formularzy, ładowanie plików, tworzenie zasobów. |
| PUT | Aktualizuje lub tworzy zasób pod wskazanym URL. | Aktualizacja istniejących zasobów. |
| DELETE | Usuwa zasób pod wskazanym URL. | Usuwanie zasobów. |
| HEAD | Żąda nagłówków zasobu bez jego ciała. | Pobieranie metadanych zasobu. |
HTTP to protokół bezstanowy (stateless). Każde żądanie jest niezależne. Do utrzymania stanu używa się mechanizmów takich jak cookies i sesje.