WWW technologie HTTP protokol
HTTP protokol Princip - klient server - klient zašle požadavek (request), obdrží odpověď (response). klient request server response
Verze - HTTP protokol HTTP 0.9 HTTP 1.0 HTTP 1.1 Jednotlivé verze mají odlišný formát požadavku a odpovědi.
Metody - HTTP protokol GET - nejpoužívanější metoda - vyzvednutí objektu (html soubor, obrázek, cokoliv ) ze serveru - odpověď je kešovatelná. - obsahuje hlavičky s informací o stáří dokumentu, či zda byl modifikován - obvykle nemá tělo
Metody - HTTP protokol POST - podobný jako GET, ale neodesílá data v URL adrese - data odesílá v těle - vhodné na rozsáhlejší data z webových formulářů, pro upload souborů HEAD - totožný s GET, ale v odpovědi se nepřenáší tělo - slouží ke zjištění, zda objekt existuje (např. při kontrole odkazů na stránce)
Metody - HTTP protokol PUT - umožní vytvořit objekt na serveru - např. upload souborů - většinou na serveru zakázáno z bezpečnostních důvodů DELETE - umožní odstranit objekt ze serveru - stejně jako u metody PUT zpravidla zakázáno
Metody - HTTP protokol OPTIONS - slouží ke zjištění informací o daném kontextu - které dotazy lze na daný kontext zaslat - * vrací informace týkající se celého serveru OPTIONS * HTTP/1.1 Host: www.root.cz HTTP/1.1 200 OK Date: Mon, 05 Feb 2010 10:13:52 GMT Server: Apache/1.3.12 (Unix) Vary: Accept-Charset,Accept-Language Allow: GET, HEAD, OPTIONS, TRACE Transfer-Encoding: chunked Content-Type: text/plain 0
Metody - HTTP protokol TRACE - pro testování a diagnostické informace - ke sledování cesty celého dotazu - v těle odpovědi jsou všechny dotazy jednotlivých systémů, kterými požadavek procházel - odpověď nesmí být nikdy kešovaná
Metody - HTTP protokol CONNECT - tunelování HTTP protokolu - např. SSL (šifrované spojení)
Nejpoužívanější hlavičky - HTTP Content-Type - typ přenášených dat pomocí MIME konvence - HTML stránky: text/html - obyčejný text: text/plain - obrázky: image/gif, image/jpeg nebo image/png - dle typu dat prohlížeč přijatá data interpretuje Location - obsahuje adresu dokumentu, který byl přesunut - v případě, že stavový kód začíná na 3. - prohlížeč většinou automaticky nahraje stránku, na kterou Location ukazuje
Nejpoužívanější hlavičky - HTTP If-Modified-Since - je-li v požadavku tato hlavička s nějakým datem, server nám požadovaný objekt vrátí pouze, pokud byl od zadaného data změněn If-Modified-Since: Mon, 30 Mar 2014 20:00:00 GMT User-Agent, Server - v hlavičce User-Agent posílá prohlížeč svoji identifikaci - své jméno, číslo verze a platformu, na které je spuštěn. - Server obsahuje identifikaci serveru, který vyřídil požadavek User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36[CRLF] Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
Stavové kódy - Protokol HTTP
Cache - HTTP protokol Hlavička EXPIRES Expires: Fri, 30 Oct 1998 14:19:41 GMT
Cache - HTTP protokol HTTP hlavičky Cache-Control - určeno webdesignerům pro řízení cache Mezi zajímavé Cache-Control hlavičky odpovědí patří: max-age=[sekundy] - specifikují maximální časovou dobu, po kterou bude nějaký objekt považován za čerstvý. Podobá se to Expires, tato direktiva ale dovoluje více flexibility. [sekundy] je počet sekund od času požadavku, po který chcete, aby byl objekt čerstvý. s-maxage=[sekundy] - podobné jako max-age, akorát že se aplikuje pouze pro proxyny (sdílené keše) public - označuje odpověď jako kešovatelnou, i kdyby normálně byla nekešovatelná. Například pokud by vaše stránky byly autentifikované, direktiva public je učiní kešovatelnými.
Cache - HTTP protokol HTTP hlavičky Cache-Control no-cache - nutí cache (proxy i prohlížeče) poslat pokaždé požadavek na validaci na původní server ještě před tím, než použije uloženou (kešovanou) kopii. To se hodí pro ujištění, že autentifikace je respektována (v kombinaci s public), nebo pro udržení čerstvosti dlouho nezměněných objektů, aniž by byly obětovány všechy výhody kešování. must-revalidate - říká keším, že se musejí podrobit všem informacím o čerstvosti objektu, které jim dáte. Protokol HTTP dovoluje keším zacházet s objekty dost volně. Specifikováním této hlavičky říkáte keším, že chcete, aby přesně dodržovaly vaše pravidla. proxy-revalidate - podobné jako must-revalidate, ale vztahuje se jenom na proxy keše.