Internet a prostředky publikování webu

Význam, struktura, stručný historický vývoj

  • Internet a internet – Obecný název internet (s malým i) lze chápat jako síť propojených počítačových sítí. Internet s velkým počátečním písmenem označuje celosvětovou síť, kterou takto známe od roku 1987 a je následník propojením celé řady národních podsítí ARPANET (USA), NPL (UK), CYCLADES (Francie) apod. Internet (s velkým I) je také definován jako síť sítí, které využívají architekturu TCP/IP.
  • Počítačová síť – má obecně za úkol komunikačně propojit jednotlivé počítače. Význam pojmu ale získává další funkcionality v momentu, kdy v síti běží další služby např. tiskový server, souborový server, webový server apod.
  • Struktura Internetu – Z globálního hlediska síť tvoří páteřní spoje propojující jednotlivé kontinenty (regiony). Součástí spojů jsou i dílčí infrastrukturní zařízení, směrovače, opakovače, DNS servery apod. Jednotlivé regiony (evropský GÉANT) lze dále dělit na národní podsítě např. CESNET (ČR), SANET (SR) a každá národní síť opět využívá dílčí páteřní spoje a další infrastrukturní prvky. Na páteřní spoje jsou dále napojeny podsítě jednotlivých institucí a poskytovatelů Internetu (ISP). Mezi poskytovateli Internetu a koncovými uživateli jsou spoje označovány jako tzv. poslední míle. Páteřní linky jsou tvořeny vysokokapacitními optickými spoji (až stovkami Gb/s) a propojení jednotlivých podsítí je vedeno více alternativními cestami (podmořská kabeláž, satelitní spojení). Spoje poslední míle jsou často realizovány telefonními operátory či kabelovou televizí.
  • Stručný historický vývoj
    • V kontextu studené války vzniká v roce 1958 agentura ARPA (později DARPA) financovaná ministerstvem obrany USA. Mezi její první projekty patřil vývoj komunikační sítě, která by byla principiálně decentralizovaná a tím tedy využitelná i v době jaderného útoku. Hlavní výzkum byl rozdělen mezi dílčí pracovní skupiny. Významnou skupinu tvořily univerzitní týmy a těm se v roce 1969 podařilo pod názvem ARPANET přepojit 4 uzly (univerzita v Los Angeles, Santa Barbara, Utah a výzkumné centrum Stanford). Komunikace tou dobou ale ještě nevyužívala pravidla TCP/IP nýbrž NCP (Network Control Protocol), avšak komunikace již byla paketová.
    • V roce 1973 je ARPANET doplněn o uzly v Evropě (Norsko, Velká Británie).V té době začíná éra emailové komunikace.
    • V roce 1980 je představena první komerční verze technologie pro komunikaci v lokálních sítích – Ethernet. Komerční sféra zažívá boom podnikových sítí. V roce 1985 je představena verze Ethernet II a stává se průmyslovým standardem.
    • V roce 1983 je oddělena vojenská složka a vzniká samostatná vojenská síť MILNET. Zároveň je nahrazen komunikační protokol NCP za TCP/IP a stává se základní komunikační architekturou budoucího Internetu.
    • Od roku 1986 do roku 1995 přebírá funkci páteřní sítě v USA NSFNET. Rok 1990 je označen za konec ARPANETu a dále se již setkáváme s označením Internet.
    • V roce 1989 je v laboratořích CERN představena první technologie webové služby.
    • V roce 1992 došlo k prvnímu funkčnímu propojení sálového počítače na ČVUT s rakouským Linzem (závratnou rychlostí 9,6 kbit/s). V roce 1993 vzniká CESNET a po třech letech dále zájmové sdružení se stejným názvem, které má dále za úkol udržovat a rozvíjet síťovou infrastrukturu.
    • Milníkem českého Internetu je také vznik zájmového sdružení právnických osob NIC.CZ v roce 1998. Od této doby si mohou registrovat cz doménu i fyzické osoby. Kromě spuštění prvního českého vyhledávače Seznam.cz v roce 1996 i NIC.CZ přispělo k větší komercionalizaci českého Internetu.

Síťové služby vs. služby Internetu

  • Síťové služby – Pomocí počítačové sítě lze realizovat určité činnosti – nejčastěji poskytnutí technických prostředků (výpočetní výkon, datové úložiště, běh programu, přenos dat, adresování, přepínání síťové cesty apod.).
  • Síťová architektura – v síti rozlišujeme, kdo služby vykonává a kdo je využívá.
    • Klient – server (centralizovaný model) – model, kdy službu vykonává jeden účastník (server) a klienti ji využívají. Označení klienta či serveru lze přeneseně využívat jak pro samotný hardware, tak pro software (aplikace webového prohlížeče – klient).
    • Peer to Peer (distribuovaný model) – model označující postavení dvou komunikujících počítačů či aplikací, kdy v různém čase oba účastníci mohou vykonávat i využívat službu.
  • Protokoly – definice pravidel pro výkon určité služby. Specifické síťové služby lze vyjádřit např. pomocí vrstevní logiky. Např. architektura TCP/IP obsahuje 4 vrstvy, které vychází z principů referenčního modelu ISO/OSI (7 vrstev). Pro uživatele Internetu se staly významnými tyto protokoly:
    • TCP – transportní protokol, který se stará o segmentaci a rekonstrukci posílaných dat. Pro spolehlivý přenos segmentů vytváří vhodné navázání spojení.
    • IP – síťový protokol, využívající systém IP adres, kterými jsou označovány pakety. Významný je hlavně kvůli mezisíťové adresaci dat. Dřívější koncepce IPv4 již vyčerpala adresní prostor a je postupně zaváděn IPv6.
    • HTTP – aplikační protokol určený pro přenos hypertextových dokumentů.
    • DNS – aplikační protokol sloužící k překladu doménových jmen a IP adres.
    • Další významné aplikační protokoly: FTP, SMTP, POP3, IMAP, které Internetu dalo mnoho funkcí.
  • Druhy sítí podle přístupnosti síťových služeb
    • internet – určitá služba (např. HTTP) je využitelná i mezi sítěmi (globálně) bez prvků autorizace či autentizace
    • intranet – soukromé služby, které mohou využívat pouze určití uživatelé (zaměstnanci firmy apod.)
    • extranet – obdoba intranetových služeb, ale přizpůsobená pro část uživatelů jako jsou zákazníci (rezervační systémy apod.)
  • Služby Internetu – lze chápat jako aplikace síťových protokolů v prostředí Internetu. Někdy jako službu Internetu považujeme i způsob využívání již konkrétní webové služby.
    • Web (World Wide Web) – je systém distribuce textového a multimediálního obsahu využívající hypertextu. Hypertext je způsob strukturování obsahu, kdy pro navigaci mezi dokumenty se využívají odkazy.
    • Email (elektronická pošta) – je způsob předávání zpráv prostředky počítačové sítě.
    • Instant messaging – jsou metody textové komunikace v reálném čase (např. ICQ, web chat, Facebook Messenger)
    • VoIP (Voice Over Internet) – přenos hlasu, telefonování (např. Skype, Facebook Messenger, Microsoft Team)
    • Sdílení souborů – např. Torrenty, letecká pošta, ulož.to
    • Sociální sítě – Facebook, Seznamka, LinedIn …
    • Eshop – podpora prodeje pomocí webu
    • Elearning – výuka pomocí webu
    • Internet Banking a platební metody – administrace bankovního účtu …
    • Internetová televize – distribuce televizního vysílání pomocí webu (HBO GO, Horizon TV, …)
    • Sdílení videa – Youtube, Stream.cz
    • Internetová rádia
    • apod.

Princip HTTP komunikace

  • HTTP (Hypertext Transfer Protocol) – je aplikační protokol, který stanovuje pravidla komunikace webového klienta s webovým serverem.
  • URL (Uniform Resource Locator) – jednoznačná adresa hypertextového dokumentu.
  • HTTP požadavek – Pokud návštěvník webu klikne na odkaz, webový prohlížeč vytvoří HTTP požadavek pomocí patřičné metody např. GET nebo POST a data pošle na webový server. V požadavku jsou kromě adresy požadovaného souboru také informace o webovém prohlížeči. Pokud má webový prohlížeč pro daný webový server uloženy i COOKIES data, posílá je rovněž v požadavku.
  • HTTP odpověď – Pokud webový server odpoví, zasílá opět v odpovědi nejdříve hlavičky (headers) a za nimi zdrojový kód webové stránky s doprovodnými soubory (externí CSS, JS, obrázky, video apod.)
  • Princip komunikace – požadavky jsou směrem k serveru transportovány s cílovým TCP portem 80. Server obvykle naslouchá kromě na 80 i na portu 443 (HTTPS) a dále webový server požadavek vykoná (nalezne data souboru). Někdy je třeba ještě před samotným odesláním dat zpracovat serverové skripty (PHP, ASP, JSP …) a až pak je výsledný zdrojový kód předán zpět aplikaci webového serveru (obvykle Apache), který vygeneruje HTTP hlavičky a odešle je v před daty v HTTP odpovědi. Transport odpovědi je vykonán TCP protokolem na portu, který byl uveden při obdržení požadavku jako zdrojový. TCP port odpovědi je stanoven podle čísla označení vlákna procesu na straně klienta. Moderní prohlížeče umožňují prohlížení více webů najednou pomocí karet, proto je zapotřebí číslo portu cílové karty webového prohlížeče.
  • Stav přenosu (HTTP stavy mezi požadavkem a odpovědí) – Do každé odpovědi server uvádí za verzí HTTP stav vykonání odpovědi. První cifra kódu statusu charakterizuje typ odpovědi. 1xx – informační, 2xx – úspěšné, 3xx – přesměrování, 4xx – chyba klienta, 5xx – chyba serveru
  • Bezstavovost přenosu (mezi jednotlivými požadavky či odpověďmi) – mezi dvěma různými požadavky či mezi dvěma různými odpověďmi HTTP protokol neudržuje stav. Např. udržování potřebného přihlášení návštěvníka webu nelze provést samotným HTTP stavem. K tomu slouží předávání dat COOKIES v požadavcích a odpovědích. Informace o PHP relacích SESSION na straně serveru se HTTP komunikací nepřenáší.
Ukázka HTTP požadavku
Ukázka HTTP odpovědi

Webhosting

  • Jedním ze způsobů, jak zveřejnit své webové dokumenty, je využití služeb specializovaných firem. Na českém trhu poskytovatelů webových služeb jich jsou dnes stovky. Poskytované služby jsou typicky Cloudové.
  • Hlavní úkoly webhostingu
    • Zajištění energií – zajištění záložních zdrojů kvůli přístupnosti služeb 24 hodin a 7 dní v týdnu. Často se uvádí 99% bezproblémového provozu.
    • Zajištění hardwaru – realizace potřebného výkonu, opravy a optimalizace datacentra
    • Zajištění softwaru – operační systém, ovladače, antiviry, firewally, administrátorský sw, apod.
    • Zajištění konektivity – napojení datacentra pomocí kapacitní linky (řádově desítky Gb/s). Důležité je i vhodné rozdělení provozu mezi servery, aby nevznikalo tzv. úzké hrdlo.
    • Zajištění veřejné IP – aby webové služby byly veřejné, je potřeba, aby se datacentrum do Internetu bylo připojeno pod veřejnou IP adresou.
  • Přehled nabízených služeb
    • Sdílený webhosting – nejjednodušší a nejlevnější způsob zveřejnění webu. Není třeba rozumět správě serveru. Nevýhodou je fakt, že všechny prostředky (procesor, operační paměť) jednoho serveru využívají i jiní zákazníci webhostingu. Z tohoto plynou omezení výkonnostní, bezpečnostní, individuálního nastavení či horší SEO hodnocení.
    • Virtuální server – Na jednom mnohem kapacitnějším serveru je vám virtualizována jednotka, která se pro vás jeví jako samostatný počítač. Ve skutečnosti je ale sdílení prostředků mnohem lépe systémově rozděleno mezi zákazníky. Na virtuálním serveru si můžete provádět individuální nastavení systému a verzí jednotlivých serverových aplikací.
    • Dedikovaný server – Poskytovatel vám prakticky pouze předinstaluje samostatný hardware a ručí vám pouze za jeho chod, konektivitu, energie. Celý hardware je jen pro vás a veškerou systémovou správu provádíte vy.
    • Serverhousing – Poskytovatel vám pronajímá pouze prostor v datacentru, konektivitu a energie. Hardware se softwarem si musíte připravit sami.
  • Vlastnosti webhostingu – Pro běh webových stránek obvykle vyžadujete PHP, databáze, mailové funkce, garantovaný výkon a prostor, správu domény či subdomén, podporu HTTPS, možnost konfigurace PHP a HTTP, CRON, FTP/SFTP, pravidelné zálohování či zákaznickou podporu. Každý hosting může limitovat provoz na vašem webu i tzv. omezením datového trafficu, reklamou apod. Každý poskytovatel má jinak zdařilé uživatelské prostředí pro administraci.
  • Financování – Publikovat web lze i zadarmo na úkor vkládané reklamy (Endora). Pro nenáročné projekty lze najít webhosting řádově do 400 Kč/rok, pro náročnější zákazníky jsou běžné ceny 1000-2000 Kč/rok. Běžná cena virtuálních serverů se pohybuje nad 2000 Kč/rok a cena dedikovaných serverů řádově v desítkách tisíc za rok. Samostatně je třeba řešit doménu … viz registrátoři domény.
  • Registrátoři domén – Poskytovatel webhostingu často nemusí být současně registrátor domén. Registrátoři domén musí splňovat řadu pravidel a certifikaci získávají od správce národní domény CZ. Prostřednictvím registrátora domény lze provádět úpravy DNS záznamů:
    • A záznam – IPv4 adresa webové prezentace
    • AAAA záznam – IPv6 adresa webové prezentace
    • CNAME záznam – směrování subdomén na danou doménu
    • MX záznam – adresa emailového serveru
  • Správa a převody domén – Registrace může být mnohdy zdarma nebo za jednorázový poplatek. Provoz domény ve formě udržovacího poplatku se hradí registrátorovi řádově 300 Kč/rok. Pozor na exotické domény – ty jsou dražší. Převody domén mezi registrátory lze realizovat autorizovanými požadavky (pomocí Auth-info kódu). Informace o majitelích domén lze zjišťovat pomocí registrů např. https://www.nic.cz/whois/ . Na jeden hostingový prostor můžete mít směrováno více domén – parkování domény.
  • Postup objednávky – proces je poměrně rychlý. Po výběru hostingu může váš prostor pro web fungovat ihned na provizorní adrese. Fungování domény však je závislé na rychlosti její úhrady.

Publikování pomocí vlastního serveru

  • Není zrovna zapotřebí mít specializovaný operační systém, ale pro náročné projekty je optimální mít serverový operační systém. Je třeba zvolit platformu.
    • Linux – poměrně složitější na znalosti konfigurace a správu, ale výhodnou je vyšší bezpečnost a nižší pořizovací ceny, kdy se často hradí pouze cena distribuce nikoliv drahé licence.
    • Windows – známější prostředí, intuitivnější, ale dražší licence, je třeba řešit antivirus apod.
  • Jak budeme realizovat služby a další nástroje na serveru? Co doinstalovat? Běh webového serveru obstarává HTTPD (HTTP démon) = to je absolutní minimum, k tomu potřebujeme např. Apache. Dále další komponenty např. pro běh CGI skriptů (PHP/Python) a databáze (MySQL/MariaDB, LiteSQL …). To lze třeba nainstalovat v instalačních balících. Např.:
    • PHP triad – multiplatformní balíky
    • LAMP – balík pro Linux
    • WAMP server – balík pro Windows
    • XAMPP – multiplatformní balík
    • VertrigoServ – instalátor pro Windows
  • Před spuštěním serveru je potřebná konfigurace:
    • Nastavení cílových portů aplikací
    • Konfigurace HTTPD souboru (MIME, porty …)
    • Povolení cílových portů aplikací (konfigurace Firewallu a antiviru), otevření a povolení rovněž na vstupní bráně do počítačové sítě
    • Úprava výchozích hesel např. pro Root MySQL
    • Konfigurace php.ini (nastavení kvót pro upload apod.)
    • Nastavení root složky webového serveru (pozor na problematický Windows).
  • Nástroje pro vzdálenou správu:
    • FTP/SFTP – lze doinstalovat Filezilla FTP Server nebo využívat již integrovaných služeb serverového OS (IIS ve Windows)
    • Vzdálená plocha, případně VPN server
    • PuTTY – Telnet …
  • Nakonec je třeba se zabývat tím, jak běh služeb optimalizovat, aby nedošlo k přetížení celého serveru. Jaké analytické nástroje využít … sledování vytížení sítě, logování požadavků apod.