Intern
Czym jest HTTP?
sobes.tech AI
Odpowiedź od AI
Protokół transferu hipertekstu. Protokół sieciowy warstwy aplikacji do wymiany danych.
Główne cechy:
- Architektura klient-serwer: Klient (np. przeglądarka) wysyła żądanie do serwera, który przetwarza żądanie i zwraca odpowiedź.
- Bezstanowy (stateless): Każde żądanie jest przetwarzane niezależnie od poprzednich. Stan sesji jest utrzymywany na wyższych poziomach (np. za pomocą plików cookie).
- Używa TCP: Domyślnym protokołem transportowym jest TCP, zapewniający niezawodną dostawę danych.
- Port 80: Standardowy port dla HTTP.
- Metody żądań (HTTP methods/verbs): Określają typ działania, które ma zostać wykonane na zasobie.
GET: Pobranie danych z określonego zasobu.POST: Wysłanie danych do przetworzenia lub utworzenia nowego zasobu.PUT: Aktualizacja istniejącego zasobu lub utworzenie nowego pod wskazanym URI.DELETE: Usunięcie wskazanego zasobu.PATCH: Częściowa aktualizacja zasobu.HEAD: Żądanie nagłówków odpowiedzi, podobne do GET, ale bez ciała.OPTIONS: Żądanie informacji o dostępnych metodach i innych opcjach komunikacji dla docelowego zasobu.
- Kody statusu odpowiedzi (Status Codes): Trzycyfrowe liczby wskazujące wynik żądania.
1xx: Informacyjne2xx: Sukces -200 OK3xx: Przekierowania4xx: Błąd klienta -404 Not Found5xx: Błąd serwera -500 Internal Server Error
Struktura wiadomości HTTP:
| Część | Żądanie (Request) | Odpowiedź (Response) |
|---|---|---|
| Linia startowa | Metoda URI Wersja HTTP (np. GET / HTTP/1.1) |
Wersja HTTP Kod statusu Fraza statusu (np. HTTP/1.1 200 OK) |
| Nagłówki | Para "Nazwa-Wartość" (np. Host: example.com) |
Para "Nazwa-Wartość" (np. Content-Type: text/html) |
| Pusta linia | Oddziela nagłówki od ciała. | Oddziela nagłówki od ciała. |
| Ciało | Opcjonalne. Zawiera dane do wysłania (np. formularze). | Opcjonalne. Zawiera żądane dane (np. strona HTML). |
Przykład żądania HTTP:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Przykład odpowiedzi HTTP:
HTTP/1.1 200 OK
Date: Tue, 25 Jun 2024 10:00:00 GMT
Server: Apache/2.4.1 (Unix)
Content-Type: text/html; charset=UTF-8
Content-Length: 1234
<!DOCTYPE html>
<html>
<head>
<title>Strona indeksowa</title>
</head>
<body>
HelloWorld!
</body>
</html>
Używany do przesyłania dokumentów hipermedialnych (HTML, obrazy, wideo) w World Wide Web. HTTPS to bezpieczna wersja HTTP z użyciem szyfrowania (SSL/TLS).