HTTP (ang. Hypertext Transfer Protocol) – protokół stworzony przez Tima Bernersa-Lee na potrzeby komunikacji między klientem a serwerem w sieci WWW (ang.
World Wide Web). Najnowszą specyfikację HTTP stanowi dokument RFC 2616 ↓. Przy pomocy protokołu klienci HTTP komunikują się z serwerami, zamawiając pliki składające się na strony internetowe oraz dostarczają niezbędne do tego informacje, np. treści wprowadzane w formularzach.
Określa on formę żądań klienta (tj. np. przeglądarki www) dotyczących danych oraz formę odpowiedzi serwera na te żądania. W oryginalnych implementacjach był protokołem bezstanowym (ang. stateless), bowiem nie zachowywał żadnych informacji o poprzednich transakcjach z klientem. Pozwalało to znacznie zmniejszyć obciążenie serwera, jednak jest kłopotliwe w sytuacji, gdy np. trzeba zapamiętać konkretny stan dla użytkownika, który wcześniej łączył się już z serwerem. Jeszcze w latach 90. XX wieku firma Netscape wprowadziła początkowo nieformalne, a następnie ustandaryzowane rozszerzenie znane jako ciasteczka. Inne podejścia to m.in. sesje po stronie serwera, ukryte parametry – gdy aktualna strona zawiera formularz – oraz parametry umieszczone w URL-u (jak np. /index.php?userid=3).
Serwery obsługujące HTTP standardowo nasłuchują na porcieTCP numer 80.
W 2015 opublikowana została kolejna wersja protokołu HTTP/2, a w 2022 kolejna HTTP/3.
Metoda CONNECT nie jest częścią standardu HTTP/1.1, jednak jest powszechnie implementowana na podstawie dokumentu internet-draft wygasłego w 1999 roku.
Typowe zapytanie HTTP
GET / HTTP/1.1 (prośba o zwrócenie dokumentu o URI / zgodnie z protokołem HTTP 1.1)
Host: example.com (wymagany w HTTP 1.1 nagłówek Host służący do rozpoznania hosta, jeśli serwer na jednym IP obsługuje kilka VirtualHostów)
Expires: Thu, 19 Nov 1981 08:52:00 GMT (czas wygaśnięcia zawartości zwróconego dokumentu. Data w przeszłości zabrania umieszczenie dokumentu w pamięci podręcznej. Jest to stara metoda zastąpiona przez Cache-Control)
Cache-Control: no-store, no-cache, must-revalidate (no-store zabrania przechowywania dokumentu na dysku, nawet gdy nie jest to pamięć podręczna. must-revalidate nakazuje bezwzględnie stosować się do wytycznych i sprawdzić świeżość dokumentu za każdym razem)
HTTP do obsługi połączeń Keep-Alive wymaga, aby odpowiedź od serwera miała znaną długość (przez podanie Content-Length lub użycie Transfer-Encoding: chunked). W przeciwnym wypadku koniec odpowiedzi sygnalizuje zerwanie połączenia i Keep-Alive nie może działać.
Nagłówek Keep-Alive jest rozszerzeniem HTTP/1.0. W HTTP/1.1 ten nagłówek nie jest potrzebny, gdyż połączenia Keep-Alive są domyślne (zachowanie zmienia Connection: close).
This article uses material from the Wikipedia Polski article HTTP, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Treść udostępniana na licencji CC BY-SA 4.0, jeśli nie podano inaczej. Images, videos and audio are available under their respective licenses. ®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Polski (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.