Sobes.tech
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: Informacyjne
    • 2xx: Sukces - 200 OK
    • 3xx: Przekierowania
    • 4xx: Błąd klienta - 404 Not Found
    • 5xx: 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).