Skip to content
On this page

Úvod do webů

V prvním ročníku jsme se zabývali základy síťí, nyní na ně můžeme navazovat základními informacemi o webových aplikacích.

TCP a UDP

Co se sice nezmínilo, ale nejspíš už znáte je TCP a UDP. Jde o protokoly na 4. (transportní) síťové vrstvě. Ta nám říká jak máme kontrolovat zda přišly správné data a co dělat když nepřijdou nebo přijdou nekompletní. Zjednodušeně, UDP je jedno zda data přišly, je to jako křičet na někoho přes chodbu, můžete jen doufat že vás někdo na druhé straně slyšel a slyšel vás správně. Na druhé straně je TCP, který se ujištůje že vše přišlo správně a ve správném pořadí, pokud nepřijde, data se pošlou znovu.

Tyto protokoly se využívají oba dva ikdyž si většina z vás řekne že je chytřejší používat TCP, jelikož o žádné data nepřijdem, představte si že sledujete online video, nechcete síť zatěžovat obrázkem, který už měl být přehrán, chcete ho prostě ignorovat a stahovat obrázky, které ještě přehrány nebyly.

HTTP

Když se bavíme o webových stránkách, většina z vás si představí pouze už vykreslenou stránku, například homovskou stránku youtube. Před tím než se stránka vykreslí ve vašem prohlížeči se však děje mnohem více, v této kapitole se budeme bavit o přenosu stránky do vašeho počítače, přesněji tedy o HTTP protokolu.

HTTP protokol je postaven na TCP/IP, tedy data poslané přes HTTP by vždy měly přijít kompletní. Jde o textový protokol, takže pokud se podíváme na síťovou analýzu webové žádosti, všechny informace v ní nalezneme. Podívejme se na to jak taková žádost může vypadat:

http
GET / HTTP/1.1
Host: haxagon.xyz
Accept: */*
User-Agent: Mozilla/5.0 (Linux)

Samozřejmě na žádost poté přijde i odpověď, ta vypadá takto:

http
HTTP/1.1 200
server: nginx/1.18.0 (Ubuntu)
content-type: text/html
content-length: 18

<p>Hello world</p>

Projděme si co jednotlivé slova v žádosti a odpovědi znamenají

Metoda

Uvnitř prvního řádku žádosti se vyskytuje nejvíce informací, první z nich je HTTP metoda, standardem je používat GET, POST, PUT, PATCH a DELETE, a říkají nám co za operaci chceme dělat za operaci. Vetšinou se setkáte s GET, který načítá stránku nebo jiné data a často využijete i POST, pomocí kterého nahráváte data (i přihlašovací údaje atd.)

Cesta

Hned druhou informací je cesta k souboru, který se snažíme načíst. Samozřejmě nemusí jít pouze o soubor, server informaci může použít jak chce, takže může například u /sign/in ověřovat zda je uživatelské jméno správně nebo špatně.

Verze HTTP

Poslední informací na prvním řádku žádosti a první informací v odpovědi je verze HTTP protokolu. Aby nedocházelo ke konfliktům kvůli změnám, s každou změnou se zvýší i verze. Často se setkáte s HTTP/1, HTTP/1.1 a HTTP/2, ale dnes se již setkáte is s HTTP/3, který už funguje na novém protokolu QUIC místo TCP/IP

Status kód

U odpovědi jste si asi na prvním řádku všimli textu 200. Jde o status kód. Server se pomocí status kódu snaží indikovat zda vše proběhlo vpořádku nebo co za typ chyby se stalo. Důležité je vědět že 2xx znamená že žádost byla úspěšná, 3xx znamená že uživatel by měl být přesměrován, 4xx znamená chybu na straně uživatele (např. že soubor neexistuje - 404) a 5xx znamená chybu na straně serveru.

Headery

Všechy další řádky v žádosti i odpovědi jsou dodatečné informace, kterým se říká Headery. Každý header má nějáký název a hodnotu a většinou indikují nějákou informaci, která serveru dá dodatečné informace jako co za typ dat očekáváme. Sekci headerů ukončíme jedním volným řádkem.

Body

Poslední částí webové žádosti je jeho obsah, zde můžeme dát cokoliv, ale z konvence je to formát definovaný uvnitř headeru Content-Type. Většinou je to JSON.

Shrnutí

  • 4. síťová vrstva řeší zda data přišly bez chyby a případně zda data mají být poslány znovu
  • HTTP je textový protokol postavený na TCP/IP
    • jeho žádosti a odpovědi obsahují verzi HTTP, Headery a tělo
    • žádosti k tomu obsahují metodu a cestu
    • odpovědi navíc obsahují status kód