Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

HTTP

Z Wikipedii, wolnej encyklopedii
(Przekierowano zHypertext Transfer Protocol)
Zapytanie HTTP w terminalu protokołu Telnet w systemie Linux Ubuntu.

HTTP (ang. Hypertext Transfer Protocol) –protokół stworzony przezTima Bernersa-Lee na potrzeby komunikacji między klientem a serwerem wsieciWWW (ang.World Wide Web). Najnowszą specyfikację HTTP stanowi dokumentRFC 2616 ↓. Przy pomocy protokołu klienci HTTP komunikują się z serwerami, zamawiającpliki 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ę odpowiedziserwera 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 firmaNetscape wprowadziła początkowo nieformalne, a następnie ustandaryzowane rozszerzenie znane jakociasteczka. Inne podejścia to m.in.sesje po stronie serwera, ukryte parametry – gdy aktualna strona zawiera formularz – oraz parametry umieszczone wURL-u (jak np./index.php?userid=3).

Serwery obsługujące HTTP standardowo nasłuchują naporcieTCP numer 80[1].

W 2015 opublikowana została kolejna wersja protokołuHTTP/2, a w 2022 kolejnaHTTP/3.

Metody HTTP

[edytuj |edytuj kod]
  1. GET – pobranie zasobu wskazanego przezURI, może mieć postać warunkową, jeśli w nagłówku występują pola warunkowe takie jak „If-Modified-Since”
  2. HEAD – pobiera informacje o zasobie, stosowane do sprawdzania dostępności zasobu
  3. PUT – przyjęcie danych przesyłanych od klienta do serwera, najczęściej, aby zaktualizować wartośćencji
  4. POST – przyjęcie danych przesyłanych od klienta do serwera (np. wysyłanie zawartości formularzy)
  5. DELETE – żądanie usunięcia zasobu, włączone dla uprawnionych użytkowników
  6. OPTIONS – informacje o opcjach i wymaganiach istniejących w kanale komunikacyjnym
  7. TRACE – diagnostyka, analiza kanału komunikacyjnego
  8. CONNECT – żądanie przeznaczone dlaserwerów pośredniczących pełniących funkcje tunelowania
  9. PATCH – aktualizacja części danych

Metoda CONNECT nie jest częścią standardu HTTP/1.1, jednak jest powszechnie implementowana na podstawie dokumentuinternet-draft wygasłego w 1999 roku[2].

Typowe zapytanie HTTP

[edytuj |edytuj kod]
  1. GET / HTTP/1.1 (prośba o zwrócenie dokumentu oURI / zgodnie z protokołem HTTP 1.1)
  2. Host: example.com (wymagany w HTTP 1.1 nagłówekHost służący do rozpoznania hosta, jeśli serwer na jednym IP obsługuje kilka VirtualHostów)
  3. User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7 (nazwaaplikacji klienckiej)
  4. Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8 (akceptowane (bądź nieakceptowane dla q=0) przezklienta typyplików)
  5. Accept-Language: pl,en-us;q=0.7,en;q=0.3 (preferowany język strony – nagłówek przydatny przyLanguage negotiation)
  6. Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 (preferowane kodowanie znaków, patrzstrona kodowa)
  7. Keep-Alive: 300 (czas, jaki klient chce zarezerwować do następnego zapytania w przypadku połączeniaKeep-Alive)
  8. Connection: keep-alive (chęć nawiązania połączenia stałegoKeep-Alive zserwerem HTTP/1.0)
  9. znak powrotu karetki i nowej linii (CRLF)

HTTP/1.1 dopuszcza wysłanie kilku żądań naraz (pipelining). HTTP/1.0 zakłada jedno żądanie i jedną odpowiedź.

Odpowiedź serwera WWW

[edytuj |edytuj kod]
  1. HTTP/1.1 200 OK (kod odpowiedzi HTTP - zaakceptowanie i zwrócenie zawartości)
  2. Date: Thu, 20 Dec 2001 12:04:30GMT (czas serwera)
  3. Server:Apache/2.0.50 (Unix)DAV/2 (opis aplikacji serwera)
  4. Set-Cookie: PSID=d6dd02e9957fb162d2385ca6f2829a73; path=/ (nakazanie klientowi zapisaniaciasteczka)
  5. Expires: Thu, 19 Nov 1981 08:52:00GMT (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)
  6. Cache-Control: no-store, no-cache, must-revalidate (no-store zabrania przechowywania dokumentu na dysku, nawet gdy nie jest topamięć podręczna. must-revalidate nakazuje bezwzględnie stosować się do wytycznych i sprawdzić świeżość dokumentu za każdym razem)
  7. Keep-Alive: timeout=15, max=100
  8. Connection: Keep-Alive (akceptacja połączeniaKeep-Alive dla klientów HTTP/1.0)
  9. Transfer-Encoding: chunked (typ kodowania zawartości stosowanej przez serwer)
  10. Content-Type: application/xhtml+xml; charset=utf-8 (typ MIME istrona kodowa zwróconego dokumentu)
  11. znak powrotu karetki i nowej linii (CRLF)
  12. tutaj zawartość dokumentu

HTTP do obsługi połączeńKeep - Alive wymaga, aby odpowiedź od serwera miała znaną długość (przez podanieContent-Length lub użycieTransfer-Encoding: chunked). W przeciwnym wypadku koniec odpowiedzi sygnalizuje zerwanie połączenia iKeep-Alive nie może działać.

NagłówekKeep-Alive jest rozszerzeniem HTTP/1.0. W HTTP/1.1 ten nagłówek nie jest potrzebny, gdyż połączeniaKeep-Alive są domyślne (zachowanie zmieniaConnection: close).

Zobacz też

[edytuj |edytuj kod]

Przypisy

[edytuj |edytuj kod]
  1. R.R. Fielding R.R. i inni,Hypertext Transfer Protocol -- HTTP/1.1,RFC 2616,IETF, czerwiec 1999,DOI10.17487/RFC2616,ISSN2070-1721,OCLC 943595667 (ang.).
  2. Ari Luotonen: Tunneling TCP based protocols through Web proxy servers. 1998. [dostęp 2009-07-29]. [zarchiwizowane ztego adresu (2009-08-11)].

Linki zewnętrzne

[edytuj |edytuj kod]
Protokoły sieciowe w modelu TCP/IP
Warstwa aplikacji
(liczby oznaczają numeryportów)
Warstwa transportowa
Warstwa Internetu
Warstwa dostępu do sieci
World Wide Web
Struktura stron WWW
Generowanie dynamicznych stron WWW
Po stronie użytkownika
Przesyłanie danych
Pojęcia
Kontrola autorytatywna (protokół sieci komputerowej):
Źródło: „https://pl.wikipedia.org/w/index.php?title=HTTP&oldid=78728399
Kategoria:

[8]ページ先頭

©2009-2026 Movatter.jp