Protokol HTTP 4IZ228 tvorba webových stránek a aplikací



Podobné dokumenty
Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

HTTP protokol. HTTP protokol - úvod. Zpracoval : Petr Novotný novotny0@students.zcu.cz

HTTP protokol. Zpracoval : Petr Novotný

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

WWW technologie. HTTP protokol

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

Počítačové sítě II 17. WWW, HTTP. Miroslav Spousta, 2005

BI-AWD. Administrace Webového a Databázového serveru Virtualizace HTTP serveru

Služba World Wide Web

Principy fungování WWW serverů a browserů. Internetové publikování

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

HTTP: Hyper Text Transfer Protocol

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Instalace a konfigurace web serveru. WA1 Martin Klíma

Užitečné odkazy:

1 Webový server, instalace PHP a MySQL 13

Úvod do tvorby internetových aplikací

Protokol HTTP. Ondřej Dolejš

C6 Bezpečnost dat v Internetu. 2. HTTP komunikace 3. HTTPS komunikace 4. Statistiky

Úvod do aplikací internetu a přehled možností při tvorbě webu

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Rozdíly oproti webové stránce:

Platební systém XPAY [

Tvorba webových stránek. Ing. Radek Burget, Ph.D.

1 Cvičení č. 4 Nespojovaná spolupráce

JSON API pro zjišťování cen MtG karet

INFORMAČNÍ SYSTÉMY NA WEBU

Schéma e-pošty. UA (User Agent) rozhraní pro uživatele MTA (Message Transfer Agent) zajišťuje dopravu dopisů. disk. odesilatel. fronta dopisů SMTP

Server-side technologie pro webové aplikace

Administrace Unixu a sítí

1. Webový server, instalace PHP a MySQL 13

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Protokoly požadavku na URL URL je odkaz na konkrétní prostředek na Internetu v konkrétním umístění a má následující standardní

Rodina protokolů TCP/IP, verze 2.3. Část 10: World Wide Web

Použití programu WinProxy

Koláčky, sezení. Martin Klíma

Webové Aplikace (6. přednáška)

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

Content Security Policy

Co sledovat a jak měřit u mobilního webu

SSL Secure Sockets Layer

Měření teploty, tlaku a vlhkosti vzduchu s přenosem dat přes internet a zobrazování na WEB stránce

Serverové skriptovací technologie

Pokročilé funkce a časté chyby. Petr Ferschmann FlexiBee Systems s.r.o.

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

WWW a HTML. Základní pojmy. Ivo Peterka

Úvod do Web Services

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče

Použití databází na Webu

Vstupní požadavky, doporučení a metodické pokyny

RESTful API TAMZ 1. Cvičení 11

Internetové služby isenzor

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Tvorba informačních systémů

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Dokumentace k nevizuálnímu rozhraní aplikace DopisOnline

Pánem World Wide Webu! aneb povídání o chybě hloupé tak, až to bolí

DUM č. 11 v sadě. 36. Inf-12 Počítačové sítě

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

language="javascript">... </script>.

Tvorba webových stránek

Internet Information Services (IIS) 6.0

Artlingua Translation API

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

10. SEO Obsah meta, konkrétní elementy v html kódu. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008)

Identifikátor materiálu: ICT-3-10

Elektronická pošta. elementární služba, výchozí pro některé další jedna z prvních síťových služeb vůbec. základní principy popisují

Informační systém pro e-learning manuál

Internet WEB stránky HTML, Hypertext MarkUp Language - nadtextový jazyk - Místo příkazů obsahuje tagy - značky

Metody udržování stavových informací v protokolu HTTP

Uspořádání klient-server. Standardy pro Web

Základy HTML, URL, HTTP, druhy skriptování, formuláře

Mgr. Vlastislav Kučera přednáška č. 2

HTML - Úvod. Zpracoval: Petr Lasák

Testování webových aplikací Seznam.cz

WAP. Jirka Kosek. IZI228 tvorba webových stránek a aplikací. Poslední modifikace: $Date: 2004/09/30 09:02:59 $ Copyright Jiří Kosek

DHTML K

GP webpay: Správa objednávek, Web Services

Úvod do informačních služeb Internetu

Cross- Site Request Forgery

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 1 VY 32 INOVACE

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

CZ.1.07/1.5.00/

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

SYLABUS IT V. Jiří Kubica. Ostrava 2011

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Střední odborná škola a Střední odborné učiliště, Hořovice

Internet 2 css, skriptování, dynamické prvky

Web Services na SOAP

spolupráce více systémů. . Pro zajištění služby je používáno více aplikačních protokolů, např.: DNS SMTP.

Tvorba informačních systémů

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF

Protokoly služeb Internetu

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Transkript:

4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2006/11/23 15:11:51 $

Obsah Úvod... 3 Co je to HTTP... 4 Základní model protokolu... 5 Struktura požadavku v HTTP 1.0 a 1.1... 6 Metody požadavku... 7 Struktura odpovědi v HTTP 1.0 a 1.1... 8 Stavové kódy... 9 Hlavičky... 10 O hlavičkách obecně... 11 Nejdůležitější hlavičky... 12 Ovládání vyrovnávacích pamětí, proxy serverů a načítání stránek... 13 Domlouvání obsahu... 14 Identifikační údaje... 15 Čtení hlaviček... 16 Generování hlaviček... 17 Praktické využití HTTP hlaviček... 18 Zákaz kešování stránek... 19 Automatické přesměrování klienta... 20 Identifikace typu generovaných dat... 21 Limity HTTP... 22 Omezení HTTP... 23 Řešení... 24 Předávání stavových proměnných v URL a skrytých polích formulářů... 25 Cookies... 26 Předávání stavových informací pomocí cookies... 27 Session proměnné... 28 Předávání stavových informací pomocí session proměnných... 29 Web Storage... 30 Další zdroje informací... 31 Další zdroje informací... 32

Úvod Co je to HTTP... 4 Základní model protokolu... 5 Struktura požadavku v HTTP 1.0 a 1.1... 6 Metody požadavku... 7 Struktura odpovědi v HTTP 1.0 a 1.1... 8 Stavové kódy... 9 (strana 3)

Co je to HTTP HTTP = Hypertext Transfer Protocol protokol pro přenos objektů libovolného typu (stránky, obrázky, ) mezi webovým serverem a prohlížečem jednoduchý aplikační protokol vystavený nad protokolem TCP bezstavový protokol modelu požadavek/odpověď přináší problémy pro webové aplikace několik verzí HTTP 0.9, HTTP 1.0, HTTP 1.1 HTTP 1.1 nejnovější podpora ve většině novějších serverů a prohlížečů Úvod 1 / 25 (strana 4)

Základní model protokolu (1) navázání spojení (2) zaslání požadavku klientem (3) zaslání odpovědi serverem (4) uzavření spojení pro stránky s mnoha vloženými objekty (obrázky apod.) je tento způsob pomalý, a proto novější verze HTTP umožňují během jednoho spojení vyřídit několik požadavků/odpovědí Úvod 2 / 25 (strana 5)

Struktura požadavku v HTTP 1.0 a 1.1 metoda URL_dokumentu verze_http hlavičky prázdná_řádka tělo_požadavku Příklad 1. Ukázka jednoduchého požadavku GET /clanky/obsah.html HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT) Host: www.server.cz Úvod 3 / 25 (strana 6)

Metody požadavku GET nejběžnější žádost o stránku, odeslání dat z formuláře metodou GET POST odeslání dat z formuláře HEAD zaslání samotných hlaviček odpovědi PUT uložení objektu (stránky, obrázku apod.) na dané URL DELETE smazání objektu (stránky, obrázku apod.) z daného URL TRACE, CONNECT, OPTIONS konfigurace a analýza způsobu připojení Úvod 4 / 25 (strana 7)

Struktura odpovědi v HTTP 1.0 a 1.1 protokol stavový_kód stavové_hlášení hlavičky prázdná_řádka obsah_odpovědi Příklad 2. Ukázka odpovědi HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Wed, 06 Dec 2000 13:37:40 GMT X-Powered-By: PHP/4.0.3pl1 Content-type: text/html <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'> <html> <head> <title>dobývání znalostí z databází 2000</title> <link rel="stylesheet" type="text/css" href="base.css">... Úvod 5 / 25 (strana 8)

Stavové kódy 1xx informativní kód 2xx úspěšné vyřízení požadavku 3xx přesměrování 4xx chyba klienta 5xx chyba na straně serveru Úvod 6 / 25 (strana 9)

Hlavičky O hlavičkách obecně... 11 Nejdůležitější hlavičky... 12 Ovládání vyrovnávacích pamětí, proxy serverů a načítání stránek... 13 Domlouvání obsahu... 14 Identifikační údaje... 15 Čtení hlaviček... 16 Generování hlaviček... 17 (strana 10)

O hlavičkách obecně některé hlavičky lze použít v požadavku i v odpovědi některé jsou specifické pro požadavek, resp. odpověď ne všechny hlavičky jsou povinné, většina je volitelná Hlavičky 7 / 25 (strana 11)

Nejdůležitější hlavičky Date datum a čas požadavku/odpovědi Content-Type druh zasílaných dat Host doménová adresa serveru umožňuje správnou funkci více virtuálních serverů na jedné společné adrese Location přesměrování na jinou stránku Hlavičky 8 / 25 (strana 12)

Ovládání vyrovnávacích pamětí, proxy serverů a načítání stránek Cache-Control řízení proxy serverů a vyrovnávacích pamětí Pragma vyhrazeno pro nestandardní informace (nejčastěji zákaz kešování pro starší prohlížeče) Expires datum, kdy vyprší platnost stránky If-Modified-Since podmíněné načtení stránky Last-Modified datum poslední modifikace souboru Hlavičky 9 / 25 (strana 13)

Domlouvání obsahu Accept seznam typů dat podporovaných klientem Accept-Charset seznam kódování, které podporuje klient Accept-Language seznam podporovaných jazyků Allow seznam metod, kterými je dostupný určitý objekt Hlavičky 10 / 25 (strana 14)

Identifikační údaje User-Agent identifikace klienta Server identifikace serveru Referer adresa stránky, kde bylo získáno URL právě kladeného požadavku (lze použít pro analýzu typu odkud přišli ) From e-mailová adresa uživatele (ještě jsem neviděl prohlížeč, který by ji posílal;) Hlavičky 11 / 25 (strana 15)

Čtení hlaviček většina hlaviček je CGI rozhraním převedena na proměnné např. User-Agent $HTTP_USER_AGENT Hlavičky 12 / 25 (strana 16)

Generování hlaviček v CGI je stačí rovnou zapsat před tělo odpovědi v PHP je k dispozici funkce Header: <?php Header("Content-Type: image/gif")?> Hlavičky 13 / 25 (strana 17)

Praktické využití HTTP hlaviček Zákaz kešování stránek... 19 Automatické přesměrování klienta... 20 Identifikace typu generovaných dat... 21 (strana 18)

Zákaz kešování stránek informace na stránce se mění v čase burzovní indexy on-line přístup do IS reklamní bannery Expires: Mon, 26 Jul 1997 05:00:00 GMT Last-Modified: aktuální datum a čas Cache-Control: no-cache Cache-Control: post-check=0, pre-check=0 Pragma: no-cache datum v minulosti používat s rozvahou, mnohdy zbytečně zatěžuje přenosové kapacity některé proxy servery hlavičky ignorují do všech URL se pak musí vkládat jedinečný řetězec Praktické využití HTTP hlaviček 14 / 25 (strana 19)

Automatické přesměrování klienta při pohybu v historii stránek může dojít k nechtěnému opětovnému zaslání dat z formuláře vznikají duplicity v databázi, nebo se vypisují chybová hlášení stránka obsluhující formulář by měla být v optimálním případě vyřazena z historie stránek stránka, která posílá hlavičku Location, se do historie nezařadí pozor, adresa v hlavičce Location musí být absolutní Praktické využití HTTP hlaviček 15 / 25 (strana 20)

Identifikace typu generovaných dat pokud chceme skriptem generovat jiné druhy dat než HTML (např. obrázky, soubory ve Wordu apod.) musíme nastavit správný typ v hlavičce Např.: Content-Type: image/gif pokud chceme vygenerovat soubor, který bude nabídnut k uložení, lze použít následující hlavičky Content-type: application/octet-stream Content-disposition: filename=najakysoubor.dat Praktické využití HTTP hlaviček 16 / 25 (strana 21)

Limity HTTP Omezení HTTP... 23 Řešení... 24 Předávání stavových proměnných v URL a skrytých polích formulářů... 25 Cookies... 26 Předávání stavových informací pomocí cookies... 27 Session proměnné... 28 Předávání stavových informací pomocí session proměnných... 29 Web Storage... 30 (strana 22)

Omezení HTTP protokol HTTP je bezstavový server nemá stále spojení s klienty a nemůže je proto jednoznačně identifikovat velké komplikace pro webové aplikace, které vyžadují stavovou informaci např. nákupní košík Limity HTTP 17 / 25 (strana 23)

Řešení přenášení údajů v URL a skrytých polí formuláře cookies session proměnné Web Storage (HTML5) Limity HTTP 18 / 25 (strana 24)

Předávání stavových proměnných v URL a skrytých polích formulářů nebezpečné všechny stavové informace jsou v každém požadavku/odpovědi zbytečně zvyšuje přenosovou kapacitu velmi pracné na implementaci za každý odkaz a do každého formuláře se musí přidat všechny stavové proměnné Limity HTTP 19 / 25 (strana 25)

Cookies krátká informace, kterou si server uloží v prohlížeči při následujících přístupech k témuž serveru je cookie zaslána zpět cookie je vázána na server a případně i na adresář informace se nedostanou k tomu, komu nepatří časová platnost cookie session cookie platí do té doby, než se vypne prohlížeč SetCookie('název', hodnota) nastavena na konkrétní délku SetCookie('název', hodnota, platnost) cookie třetích stran, rizika, P3P Limity HTTP 20 / 25 (strana 26)

Předávání stavových informací pomocí cookies nebezpečné všechny stavové informace jsou v každém požadavku/odpovědi implementace je velice snadná podporu cookies lze v prohlížeči vypnout, proto by dobře napsaná aplikace měla fungovat i bez nic Limity HTTP 21 / 25 (strana 27)

Session proměnné každému novému uživateli se přiřadí unikátní identifikátor (tzv. session-id) předává se s každým požadavkem pomocí cookie nebo parametrů v URL, resp. skrytých polí ve formuláři session-id je konstruováno tak, aby bylo těžko odhadnutelné (většinou náhodné číslo + hashovací funkce MD5 nebo SHA) pro každé session-id má webový server vyhrazen prostor pro ukládání dat (proměnných) sdílená paměť soubory databáze Limity HTTP 22 / 25 (strana 28)

Předávání stavových informací pomocí session proměnných poměrně bezpečné s každým požadavkem se přenáší jen malá část dat a session-id šetří kapacitu sítě data jsou ukládána přímo na web-serveru velice snadná implementace většina prostředí pracuje se session proměnnými téměř stejně jako s běžnými proměnnými podpora session proměnných ve skriptových prostředích: ASP zabudovaná podpora, pracuje pouze s cookies PHP3 lze použít PHPLIB, obsahuje nástroje, které usnadňují použití i při vypnutí cookies PHP4, PHP5 zabudovaná podpora, podporuje cookies i automatické přepisování URL adres JSP zabudovaná podpora, podporuje cookies, velice snadno může podporovat i přepisování URL adres ASP.NET zabudovaná podpora, podporuje cookies i automatické přepisování URL adres Limity HTTP 23 / 25 (strana 29)

Web Storage úložiště dat na klientovi součást HTML5, podporováno všemi moderními prohlížeči pojme více dat než cookies a nepřenáší se na server, data zůstávají u klienta localstorage je persistentní i přes uzavření prohlížeče sessionstorage platné jen po dobu jedné relace Limity HTTP 24 / 25 (strana 30)

Další zdroje informací Další zdroje informací... 32 (strana 31)

Další zdroje informací HTTP a cookies HTTP 1.0 1 HTTP 1.1 2 Původní specifikace cookies 3 Aktuální specifikace cookies 4 Session proměnné Použití session proměnných v PHP 5 Web Storage Specifikace Web Storage 6 1 ftp://ftp.vse.cz/pub/docs/rfc/rfc1945.txt 2 ftp://ftp.vse.cz/pub/docs/rfc/rfc2616.txt 3 http://home.netscape.com/newsref/std/cookie_spec.html 4 http://www.faqs.org/rfcs/rfc2965.html 5 http://cz2.php.net/manual/en/session.examples.basic.php 6 http://dev.w3.org/html5/webstorage/ Další zdroje informací 25 / 25 (strana 32)