1 Počítačové sítě II 18. World Wide Web, HTTP Miroslav Spousta, 2006,

Slides:



Advertisements
Podobné prezentace
Protokol HTTP (Hypertext Transfer Protocol)
Advertisements

Návrh a tvorba WWW Přednáška 1
Základní složky systému globálního informačního systému WWW Jednoznačná globální identifikace WWW zdrojů (URL, URI, URN) Standardní jazyk pro vytváření.
1 Protokol HTTP (Hypertext Transfer Protocol) HTTP je základem systému „World Wide Web“ (WWW) - Web … HTTP – jednoduchý protokol aplikační vrstvy, transport.
Základní složky systému globálního informačního systému WWW
Vytvořila:Monika Hradilová. NA ÚVOD… NA ÚVOD… Přátelství a internet…Tohle téma je hodně otevřené. Na celém světě existují milióny sociálních stránek.
Projekt Informační a vzdělávací portál Libereckého kraje I CZ.1.07/1.1.00/ I Školení pro uživatele portálu.
Inf Používání a tvorba databází. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Warez scéna, crack. Warez, co to je? Warez je termín počítačového slangu označující autorská díla, se kterými je nakládáno nelegálně, zejména v rozporu.
VY_32_inovace_01_infpojmynet1_01 Vypracovala: Mgr. Lucie Bernátová Datum: leden 2013 Předmět:Informační technologie Ročník:7. ročník Škola - adresa:Základní.
Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Prostředí internetu Číslo DUM: III/2/VT/2/2/27 Vzdělávací předmět: Výpočetní technika Tematická oblast:
Služby internetu (17). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro tělesně postižené,
Počítačové sítě 14. IPv4 © Milan Keršlágerhttp:// Obsah: ● IP protokol, IP adresa,
Číslo projektuCZ.1.07/ / Název školySOU a ZŠ Planá, Kostelní 129, Planá Vzdělávací oblast Vzdělávání v informačních a komunikačních technologiích.
HTML HyperText Markup Language Je to značkovací jazyk používaný na tvorbu webových stránek, které jsou propojeny hypertextovými odkazy. Je hlavním z.
Elektronické učební materiály - II. stupeň Informatika – aplikace informačních technologií Autor: Bc. Pavel Šiktanc Internetové stránky Co se všechno naučíme???
Název školy: Autor: Název: Číslo projektu: Název projektu: SŠ spojů a informatiky Tábor Tomáš Jansa VY_32_INOVACE_OV16 CZ.1.07/1.5.00/ Moderní škola.
Tabulkový procesor Odebrání skrytých dat a osobních informací kontrolou sešitů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Růžena Hynková.
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr. Petra Šandová Název: VY_32_INOVACE_5B_INF3_16_ Téma: pro 4.,5.ročník ZŠ, vytvořeno:
Mobilní sítě Jakovljevič, Sklenář. obsah Protokol ICMP Ping Traceroute DNS 1G, 2G, 3G, 4G, LTE Virtuální mobilní operátor.
Síťové operační systémy OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
Software Licence a distribuce Karel Nymsa Dotkněte se inovací CZ.1.07/1.3.00/
Tvorba WWW stránek. Obsah Princip fungování WWW Současné trendy Zásady tvorby WWW stránek Netiketa.
Univerzitní informační systém III., Lednice 2004 Vývoj a koncepce nového univerzitního webu Ondřej Kudlík
ŠKOLA: Gymnázium, Chomutov, Mostecká 3000, příspěvková organizace AUTOR:Mgr. Jiří Kolář NÁZEV:VY_32_INOVACE_08B_15_Sítě_internet2 TEMA:HARDWARE A SOFTWARE.
Tvorba WWW stránek Podmínky Jan Růžička Institut geoinformatiky VŠB-TU Ostrava, HGF tř. 17.listopadu Ostrava-Poruba
INTERNET. Internet je celosvětový systém navzájem propojených počítačových sítí, ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů TCP/IP.
Elektronická knihovna časopisů EZB Karolína Košťálová Národní knihovna ČR.
Databáze © Mgr. Petr Loskot
16.1 Dokument v digitální podobě
Číslo projektu CZ.1.07/1.4.00/ Název sady materiálů
PŘIHLÁŠENÍ K ELEKTRONICKÉ EVIDENCI TRŽEB
Věcné autority v roce 2016
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Internet komunikace.
HTML a CSS Rostislav Miarka.
AUTOR: Mgr. Marcel Bednařík NÁZEV: VY_32_INOVACE_09_INF_12
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr
Síťové Protokoly.
NÁZEV ŠKOLY: Masarykova základní škola a mateřská škola Melč, okres Opava, příspěvková organizace ČÍSLO PROJEKTU: CZ.1.07/1.4.00/ AUTOR: Mgr. Vladimír.
Internet.
Ucelené řešení pro řízení lidských zdrojů, ekonomiky a logistiky
ADOBE DREAMWEAVER CS6 Formátování HTML vs. CSS
Transportní vrstva v TCP/IP
Seminář 11 DHCP + HTTP + IPTABLES
Komunikační model TCP/IP
INTERNET Číslo projektu CZ.1.07/1.5.00/ Název školy
Prvky v síti Střední škola hotelová a služeb Kroměříž Název školy
Programování v jazyce C++
WWW a HTML Základní pojmy Ivo Peterka.
JEdit Open source programování – – Marek Bílý.
Protokol HTTP (Hypertext Transfer Protocol)
Databáze MS ACCESS 2010.
Proxy server a Firewall
Inf Princip fungování elektronické pošty
GDPR: ochrana osobních údajů
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Hypertext Markup Language
Microsoft Office Access
Portál naměřených dat 13. – , Říčany u Prahy Josef Mádlo.
Pavel Dvořák Gymnázium Velké Meziříčí Počítačové sítě – služba WWW
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Lotus Notes Lotus Notes Alena Málková
Remote login.
Přednášky z Distribuovaných systémů
Název školy Základní škola praktická Rožnov pod Radhoštěm
WWW (1) WWW (World Wide Web) je dnes zřejmě nejpoužívanější služba sítě Internet Reprezentuje síť odkazů na hypertextové do-kumenty označované též jako.
Směrování II.
NOVINKY OD BUŘINKY – DUBEN 2016
Hra (AZ kvíz) ke zopakování či procvičení učiva:
Transkript prezentace:

1 Počítačové sítě II 18. World Wide Web, HTTP Miroslav Spousta, 2006,

2 Historie WWW World Wide Web v současnosti nejrozšířenější a nejpoužívanější služba Internetu – nebylo tomu tak vždy (Gopher,...) vyvinut v roce 1989 v Cernu ve Švýcarsku (Tim Berners-Lee) – pro potřebu sdílení informace fyziků – původně jako textová služba – základní idea: hypertext 1992 – 1993: vývoj prohlížeče NSCA Mosaic – volně šiřitelný, dostupný 1994: založena firma Netscape Communications – vznik prohlížeče Netscape Navigator obsah sdělení (HTML, XHTML), přenosový protokol (HTTP)

3 HTTP HyperText Transport Protocol, RFC 2616 (HTTP 1.1) jednoduchý textový protokol používá spolehlivou službu: TCP, port 80 funguje bezestavově – nemění se stav serveru – pro každý objekt se navazuje nové spojení (HTTP verze 1.0) architektura klient – server – klient naváže spojení se serverem – pošle svůj požadavek – server odpoví, pošle výsledek – dojde k uzavření spojení (HTTP verze 1.0), případně následuje další požadavek (HTTP verze 1.1) umožňuje cachování odpovědí

4 HTTP metody příkazům klienta se říká metody pro různé akce existují různé metody – GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE příkaz klienta vypadá takto: – specifikace metody, objektu a verze protokolu – možné hlavičky požadavku – prázdný řádek (CRLF) – případně tělo (např. u PUT) absolutní cesta v URI požadavku (včetně hostname) může být pouze při použití proxy serveru, používá se hlavička Host: GET /index.html HTTP/1.0 Host: User-Agent: Mozilla/5.0 Referer:

5 HTTP odpověď server vyřídí požadavek a vrátí odpověď první řádek udává verzi protokolu, chybový kód a jeho textovou reprezentaci následují hlavičky serveru, prázdný řádek a tělo odpovědi chybové kódy jsou podobné jako u SMTP: 2xx: bez chyby – 200 OK, 201 Created, 202 Accepted,... 3xx: přesměrování klienta – 301 Moved Permanently, 302 Found, 304 Not modified 4xx: chyba u klienta – 400 Bad request, 403 Forbidden, 404 Not found 5xx: chyba na serveru – 500 Internal server error, 501 Not implemented C: GET /index.html HTTP/1.0 C: Host: C: S: HTTP/ Not found S:...

6 Používané metody metoda GET – umožňuje získat stránku (resource) ze serveru (může to být dynamický obsah) – je to nejčastěji používaná metoda – následuje cesta a verze protokolu HTTP metoda HEAD – používá se stejně jako GET, ale nevrací obsah (stránku) – slouží k testování, např. zda byla stránka změněna (zjistí se z hlavičky odpovědi) metoda POST – umožňuje předat data serveru – např. pro odeslání dat z formuláře metoda PUT – jako POST, ale měla by se použít, pokud dojde k náhradě entity obsahem

7 POST vs GET při použití dynamických stránek (CGI, php, ASP, …) je možné předávat parametry serveru (např. ve formuláři) pomocí metod POST a GET – v metodě GET se předávají jako součást URL (jako parametr za otazníkem) GET /search?hl=en&q=test HTTP/1.1 – v metodě POST se předávají v těle požadavku liší se hlavně v sémantice: – GET by se mělo používat, pouze pro získání dané stránky s určitými parametry, server by měl pro dané argumenty vracet stejnou stránku – POST lze použít i pro uložení dat, odeslání u, atd. problém při použití POST: vypršení stránky (expire) – má dobrý důvod: většinou nechcete objednat zboží 2x – řešení: stránka, na kterou míří POST provede zpracování údajů a poté ihned přesměrování na cílovou stránku pomocí kódu 303 (302 pro starší klienty); stránka, s kódem 303 se NESMÍ cachovat

8 Málo používané metody metoda DELETE – smaže obsah URL metoda OPTIONS – získáme použitelné metody pro dané URL – příliš se nepoužívá metoda CONNECT – pro otevření přístupu na proxy server – nutnost při použití proxy serveru a SSL spojení metoda TRACE – vrátí zpět to, co dostala na vstupu – pro debugování

9 Hlavičky klienta Date: – čas a datum vytvoření zprávy (ve formátu RFC 822) Referer: – odkaz na URL, ze kterého požadavek pochází – umožňuje zjišťovat, odkud uživatelé na stránku přicházejí User-Agent: – verze klienta (např. User-Agent: Mozilla/5.0) – pro statistické účely Content-Type, Content-Length, Transfer-Encoding – jako v SMTP poště (MIME), velikost dat From: – ová adresa člověka zodpovědného za dané dotazy – typicky se používají pro roboty – aby bylo jasné, komu nadávat

10 Hlavičky klienta (2) Accept: – které typy odpovědi klient akceptuje (text/html, text/plain, */*) – umožňuje použít i preference, vyjadřují se jako číslo menší než 1 – např. text/plain; q=0.2, text/html; q=0.88, */*; q=0.1 Accept-charset:, Accept-encoding: – podobně jako u Accept umožňuje použít preference – charset: např. iso , unicode – encoding: např. gzip, compress, identity Accept-language: – preferované jazyky dokumentu, opět jsou možné preference – např. cz; q=0.8, en-gb; q=0.7, en; q=0.5

11 Hlavičky serveru Allow: – pokud server vrátil 405 Method not allowed, říká, které metody jsou pro URL povolené Date: – kdy byla odpověď odeslána Location: – odkaz, kam vede přesměrování (kódy 301, 302 nebo 303) Server: – verze SW, podobně jako User-Agent Content-Length, Content-Type, Transfer-Encoding – stejné jako u klienta

12 Hlavičky (cachování) Pragma: no-cache – řídí cachování v HTTP 1.0 Cache-Control: – v HTTP 1.1, umožňuje nastavovat cachování podrobně – max-age, public, private, no-cache Expires: – kdy stránka má propadnout v cache If-(Un)Modified-Since: – následuje datum (v GMT) – podmíněný požadavek, vrací stránku pouze pokud byla změněna od uvedeného data – jinak vrátí 304 Not modified Etag: identifikace instance daného objektu, If-(None-)Match

13 Basic authentication chceme omezit přístup ke stránkám na některé uživatele – ověřovat jménem a heslem HTTP poskytuje možnost: basic authentication při přístupu na zabezpečenou zprávu vygeneruje server odpověď – 401 Unauthorized – do hlavičky odpovědi přidá položku WWW-Authenticate: Basic realm=“xxx“ klient se zeptá uživatele na jméno a heslo, vytvoří řetězec „jmeno:heslo“ ten se pomocí uuencode algoritmu převede na řetězec klient pošle v hlavičce požadavku Authorization: Basic aWFuOmJvb2J5 realm slouží k tomu, aby klient rozlišil, které heslo má poslat

14 Cookies původní návrh HTTP protokolu je bezestavový – což je velké plus, kvůli jednoduché implementaci – ale může způsobit problémy při psaní webových aplikací – občas potřebujeme mít souvislost mezi jednotlivýmí přístupy uživatelů řešení: cookies server současně s odpovědí vrátí v hlavičce položku Set- Cookie: – obsahem položky je řetězec – může specifikovat i další atributy (např. životnost) – klient si cookie uloží do souboru, pamatuje si k ní server, ze kterého přišla klient při odesílání požadavku vždy prozkoumá svojí databázi cookies najde-li cookie, která odpovídá serveru, pošle ji spolu s požadavkem – v hlavičce jako Cookie:

15 HTTP 1.1 HTTP 1.0 pro každý požadavek navazuje nové spojení – např. pro každý obrázek na stránce – neefektivní, zbytečná zátěž serveru i klienta, sítě – důsledek bezestavovosti HTTP 1.1 dovoluje požadavky sdružit do jednoho spojení – pomocí jednoho spojení je možné stáhnout více objektů z jednoho serveru – efektivnější, rychlejší – podpora komprimace dat (gzip, compress) – podpora částečných přenosů – povinná hlavička Host: – umožňuje vytvářet více virtuálních serverů s jednou IP adresou – umožňuje posílat data postupně (stream): chunked encoding

16 Hlavičky (HTTP 1.1) Cache-control: – nahrazuje HTTP 1.0 hlavičku Pragma: no-cache Connection: close – signalizuje protistraně, že spojení bude uzavřeno po skončení přenosu požadavku Range: – chceme jen část obsahu, specifikujeme rozsah bajtů, které chceme Content-MD5 – pro zjištění, zda přenesená data jsou v pořádku Host: – povinný (v HTTP 1.0 volitelný) – udává, který server má být požadavkem osloven, může obsahovat port – Host:

17 Virtuální servery chceme na jednom fyzickém serveru provozovat více webových serverů – s různým DNS jménem – pro různé účely, případně zákazníky v zásadě existují dvě možnosti: name based a IP based IP based virtuální servery – každý virtuální server má svoji IP adresu, která je přiřazena serveru – na portu 80 pro každou z adres běží jiná instance web serveru name based virtuální servery – všechny serveru sdílí jednu IP adresu – rozlišení se děje na základě položky hlavičky požadavku Host: (povinná pro HTTP 1.1) – někteří staří klienti nemusí podporovat (dnes už podporují všichni) – problém s SSL komunikací

18 Chunked encoding HTTP/ OK Date: Fri, 31 Dec :59:59 GMT Content-Type: text/plain Transfer-Encoding: chunked 1a; ignore-stuff-here abcdefghijklmnopqrstuvwxyz abcdef 0 some-footer: some-value another-footer: another-value [blank line here]