Mozilla Skin
WIKI nejen pro klienty webhostingu banan.cz, diskuze zde

HTTP

Z BananWiki

Obsah

Co to je?

HTTP (Hypertext Transfer Protocol) je internetový protokol určený původně pro výměnu HTML dokumentů. Tento protokol je spolu s elektronickou poštou tím nejvíce používaným a zasloužil se o obrovský rozmach internetu v posledních letech.

Je používán i pro přenos dalších informací. Pomocí rozšíření MIME umí přenášet jakýkoli soubor (podobně jako e-mail), používá se společně s formátem XML pro tzv. webové služby (spouštění vzdálených aplikací) a pomocí aplikačních bran zpřístupňuje i další protokoly, jako je např. FTP nebo SMTP.

HTTP používá tzv. jednotný lokátor prostředků (URL, Uniform Resource Locator), který specifikuje jednoznačné umístění nějakého zdroje v Internetu.

Existuje i bezpečnějsí verze HTTP zvaná HTTPS, která umožňuje šifrovat přenášená data a tak je chránit proti narušení.

Komunikace

Protokol funguje způsobem dotaz-odpověď.

Uživatel pomocí internetového prohlížeče pošle serveru dotaz v textové formě, obsahující označení požadovaného dokumentu, informace o schopnostech prohlížeče apod.

Server poté odpoví pomocí několika řádků textu popisujících výsledek dotazu (zda se dokument podařilo najít, jakého je typu atd.), za kterými následují data samotného požadovaného dokumentu.

Nevýhodou protokolu je, že neumí uchovávat stavy komunikace, dotazy jsou navzájem nezávisle, žádný dotaz nijak nesouvisí s jiným, proto se mu také říká bezstavový protokol. Ovšem pro většinu složitejších procesů přes HTTP je třeba uchovávat určité informace (např. v internetovém obchodě stav košíku nebo jen pouhá registrace) K tomuto účelu byl protokol HTTP rozšířen o tzv. HTTP cookies, které umožňují serveru uchovávat si informace o stavu spojení přímo na počítači uživatele.

Ukázka komuinkace

Klient (webový prohlížeč) se připojí na server cs.wikipedia.org a zašle následující dotaz (zjednodušený příklad):

GET /wiki/Wikipedie HTTP/1.1
Host: cs.wikipedia.org
User-Agent: Mozilla/5.0 Gecko/20040803 Firefox/0.9.3
Accept-Charset: UTF-8,*

Žádá o dokument /wiki/Wikipedie na serveru cs.wikipedia.org, podává informaci o své totožnosti (Mozilla Firefox verze 0.9.3) a že podporuje kódování UTF-8.


Odpověď serveru:

HTTP/1.0 200 OK
Date: Fri, 15 Oct 2004 08:20:25 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.8
X-Powered-By: PHP/4.3.8
Vary: Accept-Encoding,Cookie
Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
Content-Language: cs
Content-Type: text/html; charset=utf-8

Tato hlavička hned na prvním řádku odpovídá, že se dotaz podařil ( "200 OK" ), pak následuje datum a čas vyřízení dotazu, popis serveru, informace o dokumentu a následně se připojí požadovaný HTML dokument.

Pár příkladů metod dotazů

GET - požadavek na uvedený objekt se zasláním případných dat (proměnné prohlížeče, session id, …). Výchozí metoda při požadavku na zobrazení hypertextových stránek, RSS feedů aj. Celkově nejpoužívanější.

POST - odesílá uživatelská data na server. Používá se například při odesílání formuláře na webu. S předaným objektem se pak zachází podobně jako při metodě GET. Data může odesílat i metoda GET, metoda POST se ale používá pro příliš velká data (víc než 512 bajtů, což je velikost požadavku GET) nebo pokud není vhodné přenášená data zobrazit jako součást URL (data předávaná metodou POST jsou obsažena v HTTP požadavku).

TRACE - odešle kopii obdrženého požadavku zpět odesílateli, takže klient může zjistit, co na požadavku mění nebo přidávají servery, kterými požadavek prochází.

CONNECT - spojí se s objektem přes uvedený port. Používá se při průchodu skrze proxy pro ustanovení kanálu SSL