XI. Webové služby a architektura orientovaná na služby. Internet – principy a služby. Flashcards

1
Q

Web Service (webová služba)

A

Jedná se o technologii, která umožňuje integrovat libovolné aplikace provozované na různých platformách a ovládat je prostřednictvím webového rozhraní, tj. z běžného internetového prohlížeče.

  • Základní stavební blok distribuovaných aplikací v prostředí internetu
  • Platforma pro integraci aplikací
  • Aplikace využívají webové služby z různých zdrojů bez ohledu na to, kde jsou umístěny nebo jak byly implementovány
  • Programová aplikační logika přístupná pomocí standardních web protokolů
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Proč název webové služby?

A
  • Termín „služba“ (service) – funkcionalita sdílené aplikace je označována za službu jiným aplikacím (místo klient a server se proto používá žadatel o službu a poskytovatel služby)
  • Označení „webová“ – komunikace mezi žadatelem a poskytovatelem využívá osvědčených protokolů sítě internet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Charakteristika

A
  • Užívají XML – pro popis svého rozhraní, formulaci požadavků i odpovědí i mechanismus vzájemné komunikace (nejsou vázány na proprietární licencované technologie)
  • Umožňují synchronní a asynchronní komunikaci
  • znovupoužitelné softwarové komponenty – webové služby pokračují v objektově orientovaném návrhu SW
  • volně spojené – detaily implementace WS a technologické platformy které užívá, nejsou pro službu volající program důležité
  • sémanticky zapouzdřují oddělenou funkcionalitu
  • programově přístupné – na rozdíl od webových stránek, nejsou WS určeny přímo pro člověka, ale jsou určeny jiným programům
  • přístupné přes standardní internetové protokoly – HTTP, ale i SMTP, FTP apod.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definice webové služby

A

Definice webové služby

  • Webové služby XML poskytují webovým uživatelům užitečné funkce prostřednictvím standardního webového protokolu (většinou protokol HTTP, formát komunikace - SOAP)
  • Webové služby XML poskytují způsob, jak dostatečně podrobně popsat své rozhraní - obvykle ve formě dokumentu XML -Web Services Description Language (WSDL).
  • Webové služby XML jsou registrované, takže potenciální uživatelé je mohou snadno nalézt. To zajišťuje specifikace Universal Discovery Description and Integration (UDDI).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hlavní výhody WS

A

Hlavní výhody WS

  • programy mohou být napsány v různých jazycích a na různých platformách a navzájem spolu komunikují standardním způsobem.
    • to už slibovaly komponentové architektury
    • rozdíl je v tom, že SOAP je podstatně jednodušší než dřívější přístupy, takže se snáze implementuje
  • pracují se standardními webovými protokoly—XML, HTTP a TCP/IP
    • firmy již mají vybudovanou webovou infrastrukturu a lidi se znalostmi, a tak jsou náklady na zavedení WS nižší než u předcházejících technologií
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

K čemu WS slouží

A

K čemu WS slouží

  • první WS jen jako informační zdroj, který lze snadno začlenit do aplikace —ceny akcií, předpověď počasí, sportovní výsledky
    • tyto informace na webu jsou, ale WS k nim zajistí snadnější a spolehlivější programový přístup
    • Pokud to je WS jen pro zjišťování takovýchto dat, tak nemusí ani být přes SAOP
  • nyní kompozitní aplikace
    • např. elektronický obchod, který poskytne informace o cenách od různých prodejců. Uživatel si může vybrat prodejce, předat objednávku, aplikace může použít WS ke kontrole úvěru zákazníka, provádět příjem peněz z účtu zákazníka a zajistit dodávku zboží přes dodávkovou službu.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

SOAP (Simple Object Access Protocol)

A

SOAP je protokol pro posílání zpráv XML a je základem webových služeb. Ostatní standardy jako WSDL a UDDI vznikly až později po uvedení SOAPu a jen dále rozšiřují jeho možnosti a snadnost použití. SOAP umožňuje zaslání XML zprávy mezi dvěma aplikacemi a pracuje tedy na principu peer-to-peer. Zpráva je jednosměrný přenos informace od odesílatele k příjemci, ale díky kombinování několika zpráv můžeme pomocí SOAPu snadno implementovat běžné komunikační scénáře.

Nejčastěji se SOAP používá jako náhrada vzdáleného volání procedur (RPC), tedy v modelu požadavek/odpověď. Jedna aplikace pošle v XML zprávě požadavek druhé aplikaci, tak požadavek obslouží a výsledek zašle jako druhou zprávu zpět původnímu iniciátorovi komunikace. V tomto případě bývá webová služba vyvolána webovým serverem, který čeká na požadavky klientů a v okamžiku, kdy přes HTTP přijde soapová zpráva, spustí webovou službu a předá jí požadavek. Výsledek služby je pak předán zpět klientovi jako odpověď.

  • komunikační protokol pro WS
    • ver. 1.0 - Microsoft, DevelopMentor,
    • UserLand – 1999
    • ver. 1.1 - + IBM
    • ver. 1.2 W3C
  • standard SOAP specifikuje
    • formát XML pro zprávy
    • jak vyjádřit programová data ve formě XML
    • jak SOAP využít, aby prováděl vzdálené volání procedur
    • jak má vypadat zpráva HTTP, která obsahuje zprávu SOAP.
    • Vazba HTTP je volitelná, ale téměř všechny implementace SOAP ji podporují, neboť to je jediný standardizovaný protokol pro SOAP.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Implementace SOAP

A

Implementace SOAP

  • je rozdíl mezi specifikací SOAP a mnoha implementacemi specifikace SOAP
  • implementace SOAP jsou dostupné pro většinu programovacích jazyků - Java, jazyky .NET, Perl, PHP, Python, C, C++, Delphi,…
  • většina vývojářů nepíše zprávy SOAP přímo, ale používá SOAP toolkit, který převádí volání funkce z určitého jazyka do zprávy SOAP
  • vybrané implementace SOAP: Apache SOAP, Web Services Toolkit (IBM, alphaWorks), WASP for Java (Systinet)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

WSDL (Web Services Definition Language)

A

Jazyk WSDL slouží k popisu síťových služeb jako množiny koncových bodů zpracovávajících zprávy. V praxi WSDL popisy nejčastěji popisují služby, které si posílají zprávy pomocí formátu SOAP a protokolu HTTP.

  • Jak se služba nazývá, na jaké adrese je dostupná, jaké operace poskytuje
  • Jaký mechanismus komunikace předpokládají

jazyk pro popis webových služeb

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Soubor WSDL

A

Soubor WSDL:

  • definuje vše potřebné k tomu, aby mohl být napsán program pracující s WS.
  • je dokument XML popisující sadu zpráv SOAP a způsob, jakým se zprávy vyměňují
  • jednoznačně specifikuje, co musí obsahovat zpráva s požadavkem a jak má vypadat zpráva s odpovědí
  • dále definuje, kde je služba dostupná
  • jaký komunikační protokol je použit ke spojení se službou
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

UDDI (Universal Description Discovery and Integration)

A

UDDI (Universal Description Discovery and Integration)

Nabízí mechanismy pro registrování, kategorizování a vyhledávání webových služeb. UDDI funguje jako velký adresář, který obsahuje informace o subjektech (firmách) a jimi poskytovaných službách. Samotný registr pracuje rovněž jako webová služba a komunikace s ní tedy opět probíhá pomocí SOAPu.

Webová služba představuje aktuální technologii implementace služeb nebo e-služeb, která je však koncovému uživateli skryta.

V souvislosti s distribuovaným zpracováním a distribuovaným systémem se využívá klient/server architektura. V souvislosti se SW a softwarovým inženýrstvím se využívá softwarová architektura.

  • „zlaté stránky“ Webových služeb
    • registrace služeb
    • vyhledávání služeb
    • komunikace pomocí SOAP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Architektura orientovaná na služby

A

Architektura orientovaná na služby

SOA lze chápat jako praktiky a rámce, které umožňují, aby funkcionalita aplikací byla poskytovaná a spotřebovaná jako množina služeb, a to v takové úrovni funkcionality, kterou potřebuje příjemce služby. Ten je oddělen od implementace služby a používá pouze jednoduché na standardech založené rozhraní.

Cílem je nabídnout funkcionalitu IS stejným způsobem, jako to dělá byznys vůči svým zákazníkům, tedy formou služby, včetně poskytnutí vhodného přístupu, kterým lze při užití již existujících služeb vytvářet služby nové.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Architektura orientovaná na služby (SOA) je postavena na 3 hlavních principech:

A

Je postavena na 3 hlavních principech:

  1. Byznys procesy řídí služby a služby řídí technologie = služby tvoří abstraktní vrstvu, která umožňuje vytvářet vztah mezi podnikovými procesy a aplikacemi technologií.
  2. Byznys agilita = schopnost rychle odpovídat na změny požadavků byznysu.
  3. SOA se neustále mění a je plně zvládnutelná (SOA governance)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Architektura je založená na předávání zpráv mezi autonomními službami – Loosecoupling

A

Architektura je založená na předávání zpráv mezi autonomními službami – Loosecoupling

  • Služby jsou přístupné přes standardizovaná a publikovaná rozhraní a lze je snadno lokalizovat
  • je to koncept architektury, její realizací mohou být XML webové služby
  • představuje další úroveň znovupoužití kódu
    • aplikace využívají služeb - při nahrazení služby není třeba aplikaci modifikovat
  • nabízí jasný a čistý model pro integraci systémů
    • uvnitř organizace
    • mezi organizacemi
  • poskytuje základ pro globální propojování systémů
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Internet

A

Internet - globální světová síť, tvořená množinou komunikačních sítí s pravidly jejich propojení a způsobů komunikace

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

WWW - world wide web

A

WWW (world wide web)

  • Služba WWW vznikla na půdě CERNu v letech 1989-90 pod vedením TimaBerners-Leeho. Měla sloužit jako infrastruktura pro sdílení výsledků vědeckých výzkumů.
  • Je to informační prostor, v němž jsou jeho položky interpretované jako zdroje, jsou identifikovány globálními identifikátory URI
  • Základy a principy WWW
    • Lokace zdrojů (URL a URI)
    • Přenos informací (http protokol)
    • Reprezentace informací (HTML jazyky)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

3 pilíře www

A

3 Pilíře www

  • Identifikace: Každý zdroj je identifikován jedinečným URI (URL)
  • Interakce: Web agent komunikuje standardním protokolem, který provádí interakci výměnou zpráv dané syntaxe a sémantiky (HTTP)
  • Interpretace (reprezentace): V protokolu přenášíme data a popřípadě metadata z určeného zdroje (HTML)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

URI (Identifikace – 1. pilíř)

A

URI (Identifikace – 1. pilíř)

  • Identifikace:
    • URI vytváří globální pojmový prostor a tím globální síťový efekt.
    • Idea pochází z roku 1990 od DouglaseEngelbarta.
  • řetězec znaků s definovanou strukturou, který slouží ke specifikaci zdroje informací (dokument/služba) zejména pro použití v rámci internetu
  • URL – Uniform Resource Locator
    • definuje doménu, umístění na serveru a protokol, port, parametry
  • URN – Uniform Resource Name
    • definuje zdroj, ale nesnaží se popsat, jak se k němu dostat (např URN: ISBN-80-1798-…)
  • Schéma
    • je položka, kterou se definuje typ zdroje a přístupová metoda ke zdroji. http, ftp, mailto:, file:
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

URI schema http

A

URI schema http

  • http://pocitac/adresare/soubor
  • Dále je možné připojit
    • ?parametr=hodnota;parametr=hodnota
    • # vnitřní odkaz
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

HTTP (Interakce – 2. pilíř)

A

Hypertext Transfer Protocol – protokol určený původně pro výměnu hypertextových dokumentů ve formátu HTML obvykle TCP/80.

Základní model protokolu:

  1. navázaní spojení
  2. zaslání požadavku klientem
  3. zaslání odpovědi serverem
  4. ukončení spojení
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Struktura odpovědí a požadavků http

A

Struktura odpovědí a požadavků http

  • Struktura požadavků (1.0 a 1.1)
    • Metoda URL_dokumentuverze_HTTP
    • Hlavičky
    • Prázdná řádka
    • Tělo požadavku
  • Struktura odpovědí (1.0 a 1.1)
    • Protokol stavový_kódstavové_hlášení
    • Hlavičky
    • Prázdná_řádka
    • Obsah_odpovědi
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Metody HTTP

A

Metody HTTP

  • OPTIONS (od 1.1), Dotaz na server, jaké podporuje metody.
  • GET (od 0.9), 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ší.
  • HEAD (od 1.0),To samé jako metoda GET, ale už nepředává data. Poskytne pouze metadata o požadovaném cíli (velikost, typ, datum změny, …).
  • POST (od 1.0), 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).
  • PUT (od 1.1), Nahraje data na server. Objekt je jméno vytvářeného souboru. Používá se velmi zřídka, pro nahrávání dat na server se běžně používá FTP nebo SCP/SSH.
  • DELETE (od 1.1), Smaže uvedený objekt ze serveru. Jsou na to potřeba jistá oprávnění stejně jako u metody PUT.
  • TRACE (od 1.1), 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 (od 1.1), Spojí se s uvedeným objektem před uvedený port. Používá se při průchodu skrze proxy pro ustanovení kanálu SSL.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

stavové kódy

A

Stavové kódy:

  • 1xx: informativní kód (100 – Continue, 101 – Switchprotocol)
  • 2xx: úspěšné vyřízení požadavku (200 – OK, 201 – Created, 202 –Accepted)
  • 3xx: přesměrování (301 – Movedpermanently)
  • 4xx: chyba klienta (400 – Badrequest, 401 –Unauthorised)
  • 5xx: chyba na straně serveru (500 – Internal server error)
24
Q

Hlavičky HTTP

A

Hlavičky HTTP

  • Hlavičky jsou rozděleny do tří skupin:
    • Obecné hlavičky poskytující univerzální informace o zprávě
    • Hlavičky dotazu/odpovědi, které popisují dotaz/odpověď
    • Hlavičky těla, které popisují tělo zprávy
  • Ukázky hlaviček podle toho, k čemu se dají použít
    • Nejdůležitější hlavičky – vybrané příklady
      • 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
    • 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
    • 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
    • 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“)
25
Q

Cache

A

Dočasně uložená pomocná data.

V kontextu webu se vyskytují dva druhy:

    1. cache na serverech cestou (také proxyny)
    1. cache na klientovi (na disku uživatele a v prohlížeči)

Cache pomáhají zrychlit internet, protože si pamatují, co bylo staženo. Každý objekt (stránka, obrázek) má nějak nastaveno, kdy se z cache paměti může smazat a kdy se má začít dívat, jestli nebyl objekt změněn. To určují http hlavičky expires, cache-control a pragma. Nastavují se konfigurací serveru. Prohlížečové cache (ne serverové, proxyny) lze ovlivnit též pomocí meta tagů http-equiv.

26
Q

Řízení cache

A

Řízení cache

Cache musí odpovědět poslední odpověď drženou cache, která odpovídá dotazu a platí jedna z podmínek.

  • Odpověď byla revalidována na serveru.
  • Odpověď je dostatečně čerstvá.
  • Odpoví hláškou 303, 304 nebo chybou.
27
Q

Expirační pravidla

A

Expirační pravidla

  • Dobu platnosti, a nutnost revalidace řídí server
  • Používá Expire hlavičku nebo max-age
  • Pokud neuvádí cache používá heuristické algoritmy.
28
Q

Direktivy pro řízení cache

A

Direktivy pro řízení cache

  • Omezení, co je pro cache – nastolí server:
    • Public, private, no-cache
  • Omezení, co může být vloženo – klient i server: no-store
  • Modifikace expiračního mechanismu – klient i server:
    • max-age, min-fresh, max-stále
  • Ovládání revalidace a aktuallizace – klient
  • Ovládání transformací entit
29
Q

HTML

A

Jazyk pro vytváření stránek v systému World Wide Web, který umožňuje publikaci dokumentů na Internetu.

Nejnovější verze HTML 5.3.

30
Q

Syntaxe HTML

A

Syntaxe

  • Jednotlivé části HTML stránky se označují pomocí elementů
  • Každý element se skládá z počátečního tagu

a ukončovacího tagu

(některé elementy nemají ukončovací tagy
,
* * *
)
* Některé elementy mají atributy , které upřesňují jeho význam

31
Q

Historie HTML

A

Historie

  • HTML 2.0 – první formální specifikace, základní formátování a strukturování dokumentu, obrázky, formuláře
  • HTML 3.0 – (r.1995) moc ambiciózní (matematické vzorečky atp.) žádná firma nebyla schopna naprogramovat jeho podporu ve svých produktech – nebylo přijato jako standard
  • HTML 3.2 – (r.1996) něco se chytlo, tak W3C vybralo podmnožinu a tu vydalo jako standard
  • HTML 4.0 – (r.1997)
  • Velký skok vpřed – podpora CSS, skripty vložené do stránky, multimediální objekty, rozšíření formulářů
  • HTML 4.01 – (r.1999) – oprava drobných chyb
32
Q

XML

A

XML

  • XML je jednoduchý, velmi flexibilní formát založený na jazyku SGML (ISO 8879)
  • XML je zaměřeno na popis dat a soustřeďuje se na to, jaká data to jsou
  • XML vlastnosti:
    • Je značkovací jazyk podobně jako HTML
    • Je vytvořen pro popis dat
    • Nemá definované tagy – uživatel si je vytváří sám
    • Dokument je ověřován vůči svému schématu (DTD, Schématron, XMLscheme nebo Relax NG)
  • XML tvoří cestu k obecnému výměnnému formátu
  • Vytváří:
    • Hierarchickou strukturu informací
    • Struktury pro kontrolu validity dat
    • Struktury pro prezentaci dat
  • Jazyk je určen především pro výměnu dat mezi aplikacemi a pro publikování dokumentů, u kterých popisuje strukturu z hlediska věcného obsahu jednotlivých částí, nezabývá se vzhledem. Prezentace dokumentu (vzhled) může být definována pomocí kaskádových stylů. Další možností zpracování je transformace (XSLT) do jiného typu dokumentu, nebo do jiné aplikace XML.
33
Q

XHTML

A

XHTML

  • rozšířený jazky HTML o XML
  • začíná vždy xml deklarací
34
Q

Bezpečnost na WWW

A

Bezpečnost na WWW

  • HTTP nedává žádnou možnost zabezpečení komunikace.
  • Firma Netscape vytvořila protokol SSL pro přenos šifrovaných dat.
35
Q

SSL

A

SSL

  • SecureSocketsLayer, SSL (doslova vrstva bezpečných socketů) je protokol, resp. vrstva vložená mezi vrstvu transportní (např. TCP/IP) a aplikační (např. HTTP), která poskytuje zabezpečení komunikace šifrováním a autentizaci komunikujících stran. Následovníkem SSL je protokol Transport LayerSecurity (TLS).
  • Protokol SSL se nejčastěji využívá pro bezpečnou komunikaci s internetovými servery pomocí HTTPS, což je zabezpečená verze protokolu HTTP. Po vytvoření SSL spojení (session) je komunikace mezi serverem a klientem šifrovaná a tedy zabezpečená.
36
Q

Dynamické stránky

A

Dynamické stránky v www

webové stránky, které z pohledu návštěvníka mění svůj vzhled a obsah v závislosti na čase, aktivitě návštěvníka apod.

  • Původně byl web navržen pro sdílení statických dokumentů
  • Dnes v něm lze používat různé aplikace – trendem je posun webu k nové platformě pro vývoj aplikací
  • Výhody: velký rozsah, nemusí se instalovat u klienta
  • Nevýhody: programátor musí znát několik technologií (HTTP, HTML, CSS, PHP, JavaScript, …)
37
Q

Přístupy k tvorbě dynamických WWW

A

Přístupy k tvorbě dynamických WWW

Kosek uvádí tyto přístupy:

  • výkonná část aplikace běží přímo v prohlížeči (JavaScript, Visual Basic Script…)
  • výkonná část aplikace běží na serveru (PHP, ASP, CGI…)
  • nejčastěji se používá kombinace obou technologií
38
Q

Dynamické WWW na straně klienta

A
  • Výhody použití rozšiřujících klientských technologií
    • Stránky jsou interaktivní
    • Rychlejší odezva
      • Např. kontrola dat z formulářů přes JavaScript – nemusí se odesílat data na server, zkontroluje si je sám klient
      • Proto nekomunikuje vždy se serverem
      • Nemusí se přenášet a překreslovat celá stránka
      • Dochází k odlehčení zátěže serveru
  • Nevýhody:
    • Hlavně: na klientské technologie se nelze spoléhat na 100% (proto je dobré je použít jako pomocné a důležitou, citlivou práci provádět na straně serveru)
    • V důsledku principů fungování http protokolu nemůže serverová část spoléhat na jakékoliv předzpracování, které prováděl klient
    • Uživatel je může vypnout (zakázat)
    • Podpora technologií v jednotlivých prohlížečích není dokonalá
    • Některé technologie mohou neoprávněně manipulovat s daty v počítači klienta
39
Q

Scripty

A

Scripty

  • Přímo do HTML stránky lze vložit jednoduché programy (scripty) nebo lze html stránce říct, aby načitala externí část kódu
  • Poté reagují na události vyvolané uživatelem
  • Program může manipulovat s dokumentem a prohlížečem
  • Teoreticky lze použít libovolný jazyk
    • nejpodporovanější je JavaScript
    • některé prohlížeče podporují VBScript, Python
40
Q

Příklad Javascriptu

A

Příklad JavaScriptu

  • Reaguje na nějakou definovanou událost (každý element má seznam podporovaných atributů, ty odpovídají jednotlivým událostem)
  • Často je vložen přímo do HTML (ale může být jen nalinkován)
  • Jako hodnota atributu se uvádí kód, který se má provést
  • Pomocí událostí lze vytvářet interaktivní stránky – ty pak reagují na události (uživatelské události, události okna a dokumentu, události myši a události klávesnice)
41
Q

Dynamické WWW na straně serveru

A

Na straně serveru

  • na serveru je dynamicky generováno HTML na základě požadavku uživatele
  • do prohlížeče je odesílán již jen čistý HTML kód
  • není potřeba žádný speciální prohlížeč, lze použít libovolný se základní podporou HTML
  • v případě potřeby lze na serverem generovaných stránkách použít i klientské technologie (např. JavaScript)
42
Q

Server Side Includes (SSI)

A

Server Side Includes (SSI)

  • Nejstarší a nejrozšířenější druh serverem vkládaných vsuvek
  • Dnes jej podporují všechny dostupné www servery
    • Do HTML jednoduché instrukce, které provádí přímo webový server
  • Syntaxe:
43
Q

CGI (Common Gateway Interface)

A

CGI (Common Gateway Interface)

  • CGI script je externí program, který je na požadavek od uživatele spuštěný WWW serverem jako samostatný proces.
  • CGI skript je program, který používá rozhraní CGI
44
Q

PHP (Personal Home Pages)

A

PHP (Personal Home Pages)

  • přímo do HTML kódu se zapisují jednoduché příkazy
  • jednoduchá syntaxe založená na C, Perlu a Javě
  • speciálně navržený jazyk pro tvorbu webových aplikací
  • velmi rozsáhlá knihovna funkcí
  • nezávislost na platformě – může spolupracovat s v podstatě libovolným serverem na libovolné platformě
  • OSS – dostupný zdarma včetně zdrojových kódů
  • Často se setkáme s: kombinace Linux, Apache, MySQL a PHP – je to zdarma
45
Q

Java Server Pages

A

Java Server Pages (JSP)

  • založený na Javě, podobný ASP a PHP
  • mají silnou typovou kontrolu
  • kompilace stránek do servetů – Javových tříd
  • může komunikovat s jinými třídami Javy – oddělení designu od logiky
  • podpora sessions
46
Q

Active Server Pages (ASP)

A

Active Server Pages (ASP)

  • přímo do HTML kódu se zapisují jednoduché příkazy
  • ASP je jen jakýsi framework
    • lze použít libovolný jazyk podporující Active Scripting
      • standardně JScript a VBScript
      • třetí firmy dodávají Perl, REXX, Python
  • ve všech jazycích jsou dostupné základní objekty s důležitými informacemi (data z formulářů apod.)
  • standardní součást webových serverů MS
  • podpora jiných serverů a platforem je velice slabá
47
Q

ASP.NET

A

ASP.NET

  • ASP.NET je součást .NET Frameworku pro tvorbu webových aplikací a služeb. Je nástupcem technologie ASP (Active Server Pages) a přímým konkurentem JSP (Java Server Pages).
  • s klasickými ASP nemá skoro nic společného
  • vyvíjí se jako klasická klientská aplikace – prvky uživatelského rozhraní a obsluha událostí
  • ASP.NET si webový server přeloží do nativního kódu, který se stará o postupné zasílání HTML kódu a obsluhu formulářových dat
  • vygenerovaný kód detekuje použitý prohlížeč a tomu přizpůsobí generovaný HTML a JavaScriptový kód
  • VisualStudio.NET umožňuje aplikace vyvinout pouhým „naklikáním“
  • později byly pro ASP.NET vytvořeny další nastavby – např. ASP.NET MVC nebo Razor
48
Q

Vytváření relace a udržování informace o relaci - omezení http

A

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, přihlášení atp.
  • Jde o to, že protokol HTTP je bezstavový, tudíž každý klientský požadavek je zcela samostatný a nijak nesouvisí s tím předchozím. Což je v mnoha případech velmi nepříjemné (např. autentifikace). Webovou aplikaci najednou obvykle používá více uživatelů. Aplikace musí nějak poznat, který klient požadavky posílá, a musí si nějak uchovávat, v jakém je webová aplikace pro tohoto konkrétního uživatele stavu, co již tento uživatel během relace provedl, jestli je přihlášen, jaké zboží dal do košíku atd…
49
Q

Řešení http

A

Řešení http

  • Přenášení údajů v URL a skrytých polí formuláře
  • Cookie
  • Session proměnné
  • Web storage
50
Q

Přenášení údajů v URL a skrytých informací

A
  • Přenášení údajů v URL a skrytých polí formuláře
    • 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é
51
Q

Cookie

A
  • Cookie
    • 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č
    • nastavena na konkrétní délku
    • nebezpečné – všechny stavové informace jsou v každém požadavku/odpovědi
    • implementace je velice snadná
    • některé starší prohlížeče cookies nepodporují, novější umožňují cookies vypnout
    • na cookies bohužel nelze spoléhat
52
Q

Session proměnné

A
  • Session proměnné
    • Každému uživateli server 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)
    • session je poměrně bezpečné předává se jen session id
    • malá kapacita na síť
    • snadná implementace (v PHP pomocí proměnné $_SESSION[„název“])
53
Q

Web storage

A
  • Web Storage
    • úložiště dat na klientovi (neřeší problém identifikace klienta na serveru)
    • 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
54
Q

Binární soubory a rozhraní serveru

A
  • Interakce s binárními programy:
    • CGI (Common Gateway Interface)
    • FAST-CGI
    • Apache API – možnost tvorby vlastních modulů pro webový server Apache v jazyce C
    • Další aplikační vrstvy
55
Q

CGI (Common Gateway Interface)

A

CGI (Common Gateway Interface)

  • Původní model interakce s aplikací (definuje způsob komunikace web-serveru a aplikací)
    • Dnes se moc nepoužívá, nahradily ho skriptovací jazyky (např. PHP)
  • CGI skript je program, který používá rozhraní CGI
  • CGI skripty lze psát v téměř libovolném jazyce, stačí dodržet konvence rozhraní CGI
    • shell, Perl, C/C++, Pascal, Python, …
  • Server uloží parametry do „environment variable“ a zavolá aplikaci
  • Pro POST příkaz server dá do environment variable CONTENT_LENGTH délku dat a na STDIN pošle data.
  • Server vrátí zcela naformátovanou HTML stránku na STDOUT
56
Q

FastCGI

A

FastCGI

  • vylepšená varianta rozhraní CGI, snižuje zátěž serveru
  • každý skript se do paměti načítá jen jednou, pak postupně obsluhuje další požadavky
  • web-server s aplikací komunikuje pomocí TCP/IP
  • web-server a aplikaci je možné rozdělit na samostatné počítače
  • primitivní řešení load-balancingu