Internet, WWW, HTML a spol.
systémy pro přenos dat mezi počítači vývoj datových sítí probíhá na několika úrovních: fyzická úroveň – hardware pro spojení, kabely logická úroveň organizace sítí a jejich topologie adresování uzlů komunikační protokoly aplikační úroveň servery pro služby poskytované uživatelům Kdy a ve které firmě vznikl Ethernet?
Klient-server je vztah mezi dvěma subjekty. Server – pasivní (serve = sloužit), dělá pouze to co chce nějaký klient. Může se jednat o vztah mezi: systémy, aplikacemi moduly, procesy, vlákny příklady: Webový prohlížeč je klientem webového serveru. Webový server je klientem databázového serveru. Vykreslovací jádro prohlížeče je serverem pro UI. Prohlížeč je klientem operačního systému.
Komunikační protokol Sada pravidel pro komunikaci mezi síťovými uzly Schéma sítě z pohledu aplikace: klient2 server1 klient3 klient1 server2 server3
Nejrozšířenější je rodina protokolů TCP/IP Internet je každá síť, která pro komunikaci využívá protokoly TCP/IP. Internet (The Internet) × intranet (internet) IP – základní protokol, ostatní protokoly jej využívají (Internet Protocol) TCP – protokol pro přenos dat „spolehlivý protokol“, ověřování a řízení (Transmission Control Protocol) UDP – jednoduchý protokol pro přenos dat „nespolehlivý protokol“, malá režie (User Datagram Protocol) A další protokoly pro jednotlivé síťové služby Standardy týkající se Internetu se označují RFC
Hardwarová adresa – MAC adresa (48 bitů) přiřazena výrobcem každému koncovému zařízení celosvětově unikátní MAC (Medium Access Control) jiná síťová vrstva – v aplikacích se nepoužívá Logická adresa – IP adresa (32 bitů) přiřazována po připojení do sítě (administrátorem nebo DHCP serverem) unikátní v rámci sítě topologie Jmenná adresa – doménové jméno poskytovaná službou DNS (Domain Name System) pouze pro uživatele – organizace sítě o překlad na logické adresy se starají DNS servery
Pro spojení a vzájemnou komunikaci dvou aplikací je vždy nutné znát adresy obou koncových zařízení. Doménové názvy se musí přeložit na IP adresy, podle aktuální konfigurace sítě. Na jednom zařízení může běžet více aplikací (služeb), které je tedy nutné dále rozlišit. Aplikace se spojují prostřednictvím socketu. Socket = IP adresa + síťový port Port je identifikátor síťové aplikace v rámci počítače – místo ( ) Pro každé spojení je nutné znát IP adresu a port.
xkcd.com
V Internetu se používá jednotný formát adresy – URL (Uniform Resource Locator) URL je společný formát adres pro všechny služby internetu typ – označení služby, protokol uživatel a heslo – přihlašovací údaje počítač – doménové jméno počítače (přeloží se na IP adresu) nebo IP adresa port – port, na kterém naslouchá aplikace poskytující požadovanou službu cesta – cesta k požadovanému souboru dotaz – parametry předané aplikaci, která poskytuje službu
Standardní systémy pro poskytování služeb v síti internet. Každá služba má přiřazený komunikační protokol. Aplikace má zdrojový port pro odesílání dat a cílový port (contact port) pro příjem dat. Čísla cílových portů jsou registrovaná u IANA (Internet Assigned Numbers Authority). Zdrojové porty se volí dynamicky. Příklad – protokol HTTP využívá port 80: apache.exe TCP server:80 server:0 LISTENING opera.exe TCP pc19:4307 server:80 ESTABLISHED apache.exe TCP server:80 pc19:4307 ESTABLISHED numbers numbers
WWW (World Wide Web) je systém pro poskytování vzájemně propojených dokumentů. Služba poskytuje přístup k dokumentům publikovaným na internetu (webovým stránkám). Dokumenty mohou být statické – soubory umístěné na webovém serveru dynamické – obsah generovaný aplikací umístěnou na webovém serveru (nebo v klientském počítači) Využívá protokol HTTP (Hyper Text Transfer Protocol) pro přenos dokumentů. Pro formátování dokumentů je nejčastěji používán jazyk HTML nebo XHTML.
Protokol HTTP je bezstavový. Pro každou HTTP transakci se vytváří nové spojení. Současně s ukončením spojení zanikají všechny stavové informace o spojení. Toto teoreticky znemožňuje například přihlášení k webu a jiné operace, které vyžadují zapamatování stavu. Existují však techniky, pomocí kterých je možné simulovat stavový protokol. Protokol HTTP podporuje dynamické formáty. Klient odešle serveru v HTTP hlavičce seznam podporovaných formátů. Server odpoví daty v nejvhodnějším formátu. Využití: server posílá komprimovaná data jen pokud je klient umí zpracovávat.
Pří komunikaci se využívá HTTP transakce: vytvoření spojení (klient) odeslání požadavku (klient) odeslání odpovědi (server) zrušení spojení (server) Požadavek i odpověď obsahují HTTP hlavičky. Nastavení formátu obsahu (Content-Type) Nastavení ukládaní do cache paměti (Cache- Control) A další:
Nejpoužívanější formát dat textových dokumentů poskytovaných v rámci služby WWW. HTML (Hyper Text Markup Language) je jazyk pro popis struktury dokumentu. Hypertext je textový dokument provázaný odkazy s jinými dokumenty. Jazyk HTML je definovaný v jazyce SGML (Standard Generalized Markup Language) pomocí DTD (Document Type Definition). DTD definuje elementy, které mohou být použity, a jejich chování. Poslední verze – HTML 4.01 z roku Od roku 2007 se vyvíjí HTML5 (společně s XHTML5)
Nadpis 1 Prvek (element) jméno elementu – uzavřené v lomených závorkách (element name) – h1 počáteční značka (start tag) – koncová značka (end tag) – tělo (content) – Nadpis 1 tml tml
Nadpis 1 Atribut (attribute) – vlastnosti elementu, zadávají se v počáteční značce v libovolném pořadí a oddělují se mezerou. jméno – id hodnota – sekce1 Každý atribut smí být u elementu uvedený maximálně jednou. html html
Entity – odkazy na speciální znaky, začínají znakem & (ampersand) a končí znakem ; (středník) symbolické – jméno znaku > (greater) číselné – číslo znaku v Unicode znakové sadě > nebo > Komentáře – část textu, která není interpretována Problematické jsou implementace HTML prohlížečů, které zobrazují i syntakticky nesprávné HTML.
Titulek stránky Ahoj světe! 1. položka seznamu
XML (Extensible Markup Language) je obecný jazyk pro popis strukturovaných dat. Jazyk definovaný v jazyce SGML (obsahuje elementy, atributy, entity) Není definován vzhled ani interpretace dat. Pravidla zápisu: povinné záhlaví: názvy elementů malými písmeny hodnoty atributů uzavřené v uvozovkách počáteční i koncová značka je vždy povinná je-li prázdná, je možné použít stažený tvar záleží na velikosti písmen
slozka1 První složka slozka2 První podsložka slozka3 Další podsložka
HTML složitá pravidla zpracování počáteční a koncové značky jsou někdy nepovinné není definovaná velikost názvů hodnoty atributů nemusí být vždy v uvozovkách složitá implementace interpreteru vizuální i sémantické značky XML rychlejší a efektivnější zpracování než HTML „Aplikace XML“ je definice interpretace XML dat. XHTML – nová aplikace HTML v jazyce XML používá stejné elementy jako HTML zjednodušená syntaxe a pravidla zpracování poslední verze 1.0 z roku 2000 (verze 1.1 ani 2.0 není dokončena): pouze sémantické značky od roku 2007 se vyvíjí XHTML5 (společně s HTML5)
elementy blokové (block-level elements) – P, H1, DIV, … řádkové (inline elements) - A, IMG, SPAN, … řádkové elementy mohou být vložené uvnitř řádkových nebo blokových blokové mohou být vložené pouze uvnitř blokových společné atributy id, class – využití pro styly nebo skriptování na straně klienta style – definice inline stylu prvku title – popisek, který se zobrazí pod myším kurzorem a další
Je-li XHTML odesílán jako XML (Content-type: application/xhtml+xml), zpracovává se jako XML: Internet Explorer tento typ obsahu nepodporuje. V prohlížečích s jádrem Gecko (Mozilla, FF, NN) je načtení stránky pomalejší. V jiných prohlížečích je většinou rychlejší. Při syntaktické chybě v XHTML se stránka vůbec nezobrazí. Pokud je XHTML dokument odesílán jako HTML (Content- type: text/html), pak se zpracuje stejně jako HTML dokument. V tom případě je nutné dodržet postupy, které umožní správné zobrazení:
DTD je konkrétní definice syntaxe (gramatiky) HTML dokumentu. syntaktická pravidla povolené atributy a jejich hodnoty definice pravidel zanořování elementů Nejpoužívanější (X)HTML DTD: Strict (výchozí) – povoluje pouze elementy pro popis struktury, zakazuje elementy pro definici vzhledu Transitional – povoluje elementy pro definici vzhledu, zajišťuje kompatibilitu se staršími aplikacemi Frameset – pro speciální dokumenty, které rozdělují okno webového prohlížeče (zrušeno v HTML5)
Syntaxe odkazu na DTD odkaz na standardní DTD: je možné definovat vlastní typy dokumentů: „Validace“ (validation) – kontrola správnosti dokumentu vzhledem k DTD „Validní“ dokument je dokument, který neporušuje pravidla definovaná v DTD. Validní dokument by měl být (a většinou opravdu je) všemi prohlížeči interpretován stejně. Prohlížeče obvykle zobrazí i dokumenty, které neodpovídají DTD a pokusí se chyby opravit / ignorovat.
HTML Strict HTML Transitional XHTML Strict XHTML Transitional
Pokud má stránka rámce (rozdělené okno), pak je nutné použít Frameset. U nových projektů by se měla používat verze Strict. Prakticky není důvod nepoužívat XHTML. Pokud je XHTML dokument odesílán jako HTML, pak se zpracuje stejně jako HTML dokument. Snadnější údržba XHTML dokument zpracovaný jako XML není podporovaný prohlížečem Internet Explorer.
XHTML nemá vizuální značky, neumožňuje změnit vzhled dokumentu. XHTML je jazyk pro popis sémantiky a struktury dokumentu. Pro změnu vzhledu dokumentu se používají externí styly definované v jazyce CSS. CSS (Cascading Style Sheets) je jazyk pro definici pravidel formátování dokumentu. Poslední verze je CSS 2.1 z roku (CSS3 je ve vývoji) V (X)HTML dokumentu se styl může zapisovat buď do atributu nebo elementu style, nebo se může vládat jako externí odkaz.
Podpora IE je mizerná, podpora CSS3 je mizerná teprve IE8 podporuje CSS2 (z roku 1997) Pomocí stylů se mění zobrazení HTML dokumentu. Styly nahrazují zrušené značky a atributy: FONT, BASEFONT, BIG, CENTER, S, STRIKE, U, …
Pomocí stylů je možné nastavit písmo (řez, velikost, barva, zarovnání) barvy, pozadí, obrázky na pozadí rámečky, odsazení, velikosti… Při formátování HTML dokumentu je klíčové myslet na rozdíl mezi oknem prohlížeče a papírem. Je nevhodné používat absolutní pozice. Není ideální používat rozměry v pixelech. Je dobré brát v úvahu, že každý má jinak velké okno prohlížeče.
Základní kroky tvorby WWW stránek: ujasnit si smysl a obsah navrhnout strukturu navrhnout design napsat HTML napsat CSS
Při formátování HTML dokumentu je klíčové myslet na rozdíl mezi oknem prohlížeče a papírem. Syntaxe CSS: selector {vlastnost: hodnota;} Příklad: body {color: black;} za složenými závorkami se nepíše ; Selektor: jméno elementu – h1 {color: white} třída (class) -.table_list {width: 100%} id - #input_name {width: 40px}
Selektor: li, a – pro elementy a li a – pro elementy uvnitř li>a – pro elementy přímo uvnitř li.menu – elementy třídy 'menu'.menu – pro elementy třídy 'menu' Pseudo-třídy hover, active, focus, link, visited, … li a:visited – navštívený odkaz uvnitř li li.menu a#prvni:link – nenavštívený odkaz s id 'prvni' v třídy 'menu'
Externí soubor(y): nejvýhodnější, styl celého webu je na jednom místě odkaz pomocí selectoru (prvek, class, id) Uvnitř stránky: body {color: green}; … používá se ke zrychlení načtení stránky Inline (uvnitř HTML): … nezapisuje se selector má nejvyšší prioritu
Styl se dědí z nadřazeného prvku na podřazený – nejvyšší prvek je. Při konfliktu vyhrává to, co je danému prvku nejblíže. Další konflikty se řeší podle priority: inline styl (atribut style) styl ve stránce (prvek ) externí styl id třída
body {color: grey; background: #eeeeee;} h3 {background: #cccccc; color: red;}.modry {color: blue;} #jediny {color: white;} h3.fialovy {color: magenta;}.cerny {color: black} první druhý třetí čtvrtý pátý šestý
Styl: body {color: grey; background: #eee;} h3 {background: #ccc; color: red;}.modry {color: blue;} #jediny {color: white;} h3.fialovy {color: magenta;}.cerny {color: black} první druhý třetí čtvrtý pátý šestý
Veškerý text tabulky musí být uvnitř příslušných elementů. text musí být uvnitř (table data) nebo (table head) každý element nebo musí být uvnitř (table row) buňka tabulky může obsahovat další tabulku buňky tabulky je možno sloučit pomocí atributů colspan a rowspan. atribut nowrap zabrání zalomení obsahu buňky Pokud je text mimo značky tabulky, pak se obvykle zobrazí před tabulkou.
záhlaví 1 záhlaví 2 záhlaví 3 záhlaví 4 Buňka 2-1 Buňka 2-2 Buňka 2-3 Buňka 2-4 Buňka 3-1 Buňka 3-2 a 3-3 Buňka 3-4 table { color: white; background: #666666; } th { background: black; color: white; }.oranz_plny_ramecek { border-collapse: collapse; }.oranz_plny_ramecek td,.oranz_plny_ramecek th { border: 2px solid orange; } Záhlaví bude černé protože th přebíjí nastavení table. Barva písma je v obou případech stejná, a nastavení v th, nemá na nic vliv.
rámeček tabulky: table border='šířka' border-collapse collapse border solid – plná čára dashed, doted, … rámeček okolo buněk: border='1‘ zobrazí rámeček okolo buněk border-collapse: collapse; udělá z něj 1px linku border border: 2px solid orange; udělá z něj červenou čárkovanou linku
Vložení obrázku do textu (do řádku) text text Obtečení obrázku text text Neobtečení obrázku text text
Obtečený obrázek: text text text text text <img src='obrazek.jpg' style='float: right' alt='popis' />text text text text text text Neobtečený obrázek: text text text text text text text text text text <div style='text-align:right'><img src='obrazek.jpg' alt='popis'/> text text text text text text text Stejným způsobem je možné do textu (div) vložit tabulky.
číslované (ordered list) nečíslované (unordered list) položky seznamu (list item) horizontální seznam (menu).menu_horizontalni li { display: inline; list-style-type: none; } První odrážka Druhá odrážka Třetí odrážka Čtvrtá odrážka
. menu_horizontalni li {display: inline}.nic {list-style-type: none;}.zvyraznovat li:hover {color: blue; text-decoration: underline;} prvni druhy treti ctvrty paty
Všechny prvky formuláře musí být uvnitř elementu form. Formuláře není možné vnořovat. Prvky formuláře: input – tlačítko (submit, reset, image, button), editační pole (text), soubor (file), heslo (password), rádio (radio), checkbox (checkbox) skrytý (hidden) textarea – víceřádková editace select – výběr jedné nebo více (atribut multiple) položek (option), optgroup – seskupení položek label – popis prvku, umožňuje snadnější navigaci fieldset – orámování formuláře, legend – popis orámování Více v části webové aplikace
na obrazovce se barvy míchají aditivně nastavení barvy je možné názvem – black, white, blue… složkami – rgb(255, 0, 0) číslem v 16 soustavě – #FF0000 složkové zadání udává intenzitu složky rgb(255, 255, 255) nebo #FFFFFF je tedy bílá zkrácený zápis #FFF na papíře se barvy míchají subtraktivně barva na papíře odráží světlo
velikost: šířka/výška – width/height odsazení: odsazení – margin rámeček – border vyplnění – padding margin je okolo HTML prvku padding je uvnitř HTML prvku border je uvnitř HTML prvku
Prvek head může obsahovat následující prvky: title – nastavení záhlaví stránky meta - nastavení informací o stránce (metadata) style – vložení stylu do stránky link – definice souvisejících souborů (nejčastěji používaný je externí styl) script – vložení skriptu nebo odkazu na skript na spuštěný na straně klienta (nejčastěji Javascript)