Skip to content

13 • Internet

  • internetové zdroje, URL, mime type, relativní / absolutní cesta, převod IP a domény

Internet

Internet je celosvětová decentralizovaná síť propojených počítačových sítí, které spolu komunikují pomocí protokolové rodiny TCP/IP. Žádný centrální vlastník neexistuje, jednotlivé sítě patří různým provozovatelům (poskytovatelé, univerzity, firmy, státy), spojuje je dohoda na společných protokolech.

Historie ve třech mezníkách

RokUdálost
1969ARPANET — první uzly mezi UCLA a Stanford. 29. října odeslána první zpráva ("LOGIN"), server spadl po druhém písmenu.
1983Přechod ARPANETu na TCP/IP — datum považované za technické "narození" internetu.
1989–1991Tim Berners-Lee v CERNu navrhuje a spouští WWW — HTTP protokol, HTML, první prohlížeč i server.

Internet ≠ WWW (klasický chyták)

PojemCo to je
InternetFyzická a logická infrastruktura - "síť sítí", protokoly TCP/IP.
WWW (Web)Jedna ze služeb běžící na internetu - hypertextové dokumenty přenášené přes HTTP/HTTPS.
TCPTransportní protokol - spolehlivý přenos, kontrola pořadí, opětovné odeslání ztracených paketů.
IPAdresování a směrování paketů mezi zařízeními. Verze IPv4 a IPv6.

Další služby běžící na internetu

E-mail (SMTP, IMAP, POP3), přenos souborů (FTP, SFTP), vzdálená správa (SSH), překlad jmen (DNS), čas (NTP), telefonie (VoIP/SIP), streamování, IoT (MQTT), real-time komunikace (WebSocket, WebRTC).

TCP/IP model: 4 vrstvy

VrstvaCo děláPříklady
AplikačníKonkrétní službaHTTP, SMTP, DNS, SSH, FTP
TransportníDoručení mezi procesyTCP (spolehlivý), UDP (rychlý, bez kontrol)
InternetováAdresace, směrování mezi sítěmiIP, ICMP (ping)
Vrstva síťového rozhraníFyzický přenos po linceEthernet, Wi-Fi

Internetové zdroje

  • cokoli, co lze v síti adresovat a získat: dokument, soubor, služba, datový tok
  • Každý zdroj má:
    • Jednoznačnou adresu (URI / URL)
    • Typ obsahu (MIME type)
    • Protokol, kterým se k němu přistupuje (HTTP, HTTPS, FTP, …)

Typy zdrojů

KategoriePříklady
Statické dokumentyHTML, CSS, JS, obrázky, PDF
Dynamické zdrojeAPI endpointy (REST, GraphQL), serverem generované stránky
MultimédiaVideo (MP4, WebM), audio (MP3, OGG), HLS/DASH streamy
SlužbyE-mail, cloud storage, databáze přes API

URI vs. URL vs. URN

PojemVýznamPříklad
URI (Uniform Resource Identifier)Obecný identifikátor zdroje - nadřazený pojem.Libovolné URL nebo URN.
URL (Uniform Resource Locator)URI, které popisuje kde zdroj je.https://example.com/index.html
URN (Uniform Resource Name)URI, které popisuje jméno zdroje nezávisle na umístění.spotify:artist:413GiX0PBqVdux5JihvMyA
  • každé URL je URI, ale ne každé URI je URL. V praxi se s URN setkáš zřídka, většinou jde o URL.

URL — anatomie podrobně

https://user:pass@www.example.com:443/sekce/stranka.html?dotaz=ahoj&id=5#kotva └─┬─┘ └───┬───┘ └──────┬──────┘ └┬┘ └────────┬────────┘ └──────┬──────┘ └─┬─┘ schéma userinfo host port cesta query fragment

ČástPopisPříklad
Schéma (protokol)Způsob komunikacehttp, https, ftp, mailto, file, ws, data
Userinfo (nepovinné)Přihlašovací údaje (dnes se nepoužívá z bezpečnostních důvodů)user:heslo@
HostDoménové jméno nebo IP adresawww.example.com, 192.168.1.1, [::1]
Port (nepovinné)Číslo portu na hostiteli:80, :443, :8080
Cesta (path)Umístění zdroje na serveru/sekce/stranka.html
Query stringParametry oddělené &, začíná ??id=5&lang=cz
Fragment (kotva)Odkaz na část stránky, klientská část — server ji nevidí#uvod

URL encoding (percent-encoding)

Speciální znaky v URL se musí zakódovat — URL může obsahovat jen omezenou sadu ASCII znaků. Vše ostatní se převede na %XX, kde XX je hexadecimální hodnota bytu v UTF-8:

ZnakKódování
mezera%20 (nebo + v query stringu)
?%3F
&%26
#%23
ě%C4%9B (2 byty v UTF-8)

https://example.com/hled%C3%A1n%C3%AD?q=Karel%20%C4%8Capek


Časté URL schémata

SchémaPoužití
http://, https://Webové stránky
ftp://, sftp://Přenos souborů
mailto:Otevře e-mailový klient — mailto:axo@ax4.cz?subject=Hi
tel:Vytočí číslo — tel:+420123456789
file://Lokální soubor
data:Inline data - data:image/png;base64,iVBORw0...
ws://, wss://WebSocket

Absolutní vs. relativní adresa

TypPopisPříklad
AbsolutníPlná cesta včetně schématu a doményhttps://example.com/img/logo.png
Kořenově relativníZačíná /, vztažená ke kořeni domény/img/logo.png
Dokumentově relativníVztažená k aktuálnímu dokumentuimg/logo.png, ../styl.css

Speciální zápisy v relativních cestách

  • ./ — aktuální složka (často volitelné)
  • ../ — nadřazená složka
  • ../../ — o dvě úrovně výš

Kdy použít co

  • Absolutní — odkazy na cizí weby, jednoznačnost (e-maily, RSS, sdílení).
  • Dokumentově relativní — vlastní obsah uvnitř složky.
  • Kořenově relativní — vlastní obsah napříč stránkami; bezpečné při přesunu mezi localhost / staging / produkcí, protože doména se mění, ale struktura projektu ne.

MIME typy (Media Types)

MIME (Multipurpose Internet Mail Extensions) - standard původně z roku 1991 pro přílohy v e-mailu, dnes používaný všude, kde se přenáší obsah po síti. Říká jaký typ dat je v souboru, aby je klient správně zpracoval.

Server posílá MIME typ v HTTP hlavičce Content-Type, prohlížeč podle něj rozhodne, jak data zobrazit, stáhnout, nebo spustit.

Formát: typ/podtyp (např. text/html, image/png).

Hlavní kategorie

KategoriePopisPříklady
text/*Textové formátytext/html, text/css, text/plain, text/javascript
image/*Obrázkyimage/png, image/jpeg, image/svg+xml, image/webp
audio/*Audioaudio/mpeg, audio/ogg, audio/wav
video/*Videovideo/mp4, video/webm
application/*Binární / strukturovaná dataapplication/json, application/pdf, application/zip, application/wasm
multipart/*Více částí v jedné zprávěmultipart/form-data (upload souborů)

Nejčastější MIME typy

PříponaMIME typ
.htmltext/html
.csstext/css
.jstext/javascript (application/javascript je dnes obsolete)
.jsonapplication/json
.xmlapplication/xml
.jpg, .jpegimage/jpeg
.pngimage/png
.svgimage/svg+xml
.pdfapplication/pdf
.zipapplication/zip
.mp4video/mp4
.wasmapplication/wasm

Příklad HTTP odpovědi

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 1234

<!DOCTYPE html>
<html>...

Proč na MIME typu záleží

Pokud server odešle špatný MIME typ:

  • prohlížeč může zobrazit zdrojový kód místo stránky,
  • odmítnout spustit JavaScript (moderní prohlížeče vyžadují text/javascript u modulů),
  • nesprávně otevřít soubor (např. PDF jako text).

Bezpečnost: prohlížeč dělá tzv. MIME sniffing — pokusí se uhodnout typ podle obsahu, pokud server neposlal Content-Type. To je historicky zdrojem útoků (uploaduješ .jpg, který je ve skutečnosti HTML s JS). Proto se posílá hlavička X-Content-Type-Options: nosniff, která tomu zabrání.

IP adresy

IP adresa je číselný identifikátor každého zařízení v síti. Dvě verze:

VerzeDélkaFormátPříkladAdresní prostor
IPv432 bitůčtyři čísla 0–255 oddělená tečkou192.168.1.1~4,3 miliardy
IPv6128 bitůosm hexadecimálních skupin oddělených :2001:0db8:85a3::8a2e:0370:7334~3,4 × 10³⁸

IPv4 - vyčerpání

IANA (centrální registr) přidělila poslední volné bloky v únoru 2011, regionální registry pak postupně (RIPE pro Evropu v listopadu 2019). Adresy se dnes recyklují, obchodují a maskují přes NAT a CGNAT (Carrier-Grade NAT — NAT na úrovni poskytovatele, takže za jednou veřejnou IP může být tisíce zákazníků).

IPv6 - pomalý přechod

Standardizována 1998 (RFC 2460), dnes nese cca 40–45 % globálního provozu. Zkrácený zápis: nuly lze vynechat (2001:db8::1), nejdelší řadu nul nahradit :: (jen jednou v adrese).

Veřejné vs. privátní adresy

TypVýznamRozsahy (IPv4, RFC 1918)
VeřejnéUnikátní v celém internetu, směrovatelnévše ostatní
PrivátníPouze v lokální síti (LAN), neroutují se na internet10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
LoopbackVlastní zařízení127.0.0.1 (IPv4), ::1 (IPv6)

Překlad mezi privátními a veřejnými adresami zajišťuje NAT (Network Address Translation) na routeru - zařízení v domácí síti sdílejí jednu veřejnou IP poskytovatele.


CIDR notace (zápis sítí)

CIDR (Classless Inter-Domain Routing) zápis říká, kolik bitů z adresy tvoří síťovou část. Lomítko za adresou určuje délku prefixu:

ZápisMaskaPočet adresPoužití
/8255.0.0.0~16 milionůvelká korporátní síť
/16255.255.0.065 536menší organizace
/24255.255.255.0256 (254 použitelných)typická domácí/malá síť
/32255.255.255.2551jedna konkrétní adresa

Příklad: 192.168.1.0/24 = síť, ve které prvních 24 bitů (192.168.1.) je síťová část a posledních 8 bitů adresuje 256 hostitelů (z toho 2 rezervované — network 192.168.1.0 a broadcast 192.168.1.255).

Porty

Port je číselný identifikátor služby (procesu) na zařízení. IP adresa identifikuje stroj, port konkrétní aplikaci běžící na něm.

Analogie: IP = budova, port = byt.

Tři rozsahy portů (IANA)

RozsahNázevPoužití
0–1023Well-knownSystémové služby, vyžadují admin práva
1024–49151RegisteredAplikace registrované u IANA
49152–65535Dynamic / EphemeralKlient si bere náhodně pro odchozí spojení

Důležité porty k zapamatování

PortSlužba
80HTTP
443HTTPS
22SSH
21 / 20FTP (control / data)
25SMTP (odesílání pošty)
143IMAP
110POP3
53DNS (UDP, fallback TCP)
67 / 68DHCP (server / klient)
3306MySQL
5432PostgreSQL
6379Redis
8080HTTP alternativní (proxy, dev servery)

DNS: překlad doménových jmen na IP

Lidé si pamatují jména (google.com), počítače pracují s čísly (142.250.187.132).

DNS (Domain Name System) je distribuovaná hierarchická databáze, která mapuje doménová jména na IP adresy.

Postup DNS dotazu krok za krokem

  1. Uživatel zadá www.seznam.cz do prohlížeče.
  2. OS zkontroluje lokální cache a soubor hosts (/etc/hosts na Linuxu/Macu, C:\Windows\System32\drivers\etc\hosts na Windows).
  3. Pokud nenajde, dotáže se DNS resolveru (typicky u poskytovatele, nebo veřejný — 8.8.8.8 Google, 1.1.1.1 Cloudflare).
  4. Resolver má vlastní cache. Pokud v ní není, postupně dotáže hierarchii:
    • Root server (.) — kdo spravuje .cz?
    • TLD server (.cz) — kdo spravuje seznam.cz?
    • Autoritativní server (pro seznam.cz) — jaká je IP www.seznam.cz?
  5. Resolver vrátí IP klientovi a uloží do cache (podle TTL záznamu).
  6. Prohlížeč naváže TCP spojení s touto IP a stáhne stránku.

Klient → DNS resolver → Root (.) → TLD (.cz) → Autoritativní ([seznam.cz](http://seznam.cz/)) → IP

Typy DNS dotazů

  • Rekurzivní — klient se ptá resolveru, resolver má za úkol vrátit hotovou odpověď (i kdyby musel běhat napříč celou hierarchií).
  • Iterativní — server odpovídá "neznám, ale zeptej se támhle" — typicky mezi resolverem a autoritativními servery.

Typy DNS záznamů

ZáznamVýznam
AIPv4 adresa pro doménu
AAAAIPv6 adresa pro doménu
CNAMEAlias na jinou doménu (www.example.com → example.com)
MXMailový server pro doménu, s prioritou
NSAutoritativní jmenné servery domény
TXTLibovolný text (ověřování vlastnictví, SPF, DKIM)
PTRReverzní záznam (IP → doména)
SOA"Start of Authority" — metadata zóny

Moderní rozšíření

  • DoH (DNS over HTTPS) — DNS dotazy uvnitř šifrovaného HTTPS, znesnadňuje odposlech a manipulaci poskytovatelem.
  • DoT (DNS over TLS) — totéž přes čistý TLS, port 853.
  • DNSSEC — kryptografický podpis záznamů proti podvržení

Domény a jejich struktura

Doména je textová adresa zdroje na internetu. Má stromovou hierarchii — čte se zprava doleva.

www . google . com . │ │ │ │ │ │ │ └── kořenová doména (root, ".") — obvykle se nepíše │ │ └──────── TLD (Top-Level Domain) │ └────────────────── SLD (Second-Level Domain) └────────────────────────── subdoména (3. úroveň)

ÚroveňPříkladPopis
Root.Vrchol hierarchie, spravuje 13 root serverů (logicky — ve skutečnosti stovky přes anycast)
TLD.cz, .com, .orgDomény nejvyšší úrovně
SLDgoogle, seznamDruhá úroveň - registruje si firma/osoba
Subdoménawww, mail, api

Typy TLD

TypZkratkaPříkladyPopis
NárodníccTLD.cz, .sk, .de, .ukCountry Code TLD — určuje stát
GenerickégTLD.com, .org, .net, .edu, .govObecné, podle účelu
Nové gTLD.shop, .tech, .app, .aiOd roku 2014, tematické
SponzorovanésTLD.museum, .aero, .jobsPro specifické komunity
Infrastrukturní.arpaTechnické účely (reverzní DNS)

FQDN

FQDN (Fully Qualified Domain Name) — plně kvalifikované doménové jméno včetně tečky na konci, která reprezentuje root:

www.example.com.

V praxi tečku skoro nikdy nepíšeme, ale technicky je tam.


Správa domén

  • Globálně: ICANN (Internet Corporation for Assigned Names and Numbers) — koordinuje TLD a kořenovou zónu.
  • Pro .cz: CZ.NIC — sdružení, které spravuje národní doménu, provozuje DNS infrastrukturu a vyvíjí Knot DNS.
  • Konkrétní doménu si registruješ u registrátora (Wedos, Forpsi, Namecheap…), který je akreditovaný u ICANN/CZ.NIC.

IDN - diakritika v doménách

IDN (Internationalized Domain Names) umožňují použít Unicode znaky v doménách, např. háčky.cz. Interně se ale kódují do ASCII pomocí Punycode:

ř.vercel.app → xn--hga.vercel.app

Prefix xn-- značí, že jde o Punycode-zakódovanou doménu.

HTTP a HTTPS

HTTP verze

VerzeRokKlíčové vlastnosti
HTTP/1.11997Textový protokol, persistent connections (keep-alive), pipelining (málo používaný)
HTTP/22015Binární, multiplexing (víc requestů přes jedno spojení), komprese hlaviček (HPACK), server push
HTTP/32022Postavený na QUIC místo TCP (běží na UDP), rychlejší handshake, odolný proti packet loss na mobilní síti

HTTP metody

MetodaVýznamBezpečná?Idempotentní?
GETStáhne zdroj
POSTVytvoří / odešle data
PUTNahradí zdroj
PATCHČástečná úprava✗ (často)
DELETESmaže zdroj
HEADJako GET, ale jen hlavičky
OPTIONSVrátí dostupné metody

HTTP status kódy

KategorieVýznamPříklady
1xxInformační100 Continue
2xxÚspěch200 OK, 201 Created, 204 No Content
3xxPřesměrování301 Moved Permanently, 302 Found, 304 Not Modified
4xxChyba klienta400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests
5xxChyba serveru500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout

HTTPS = HTTP + TLS

  • HTTPS šifruje obsah pomocí TLS (Transport Layer Security).
  • SSL (Secure Sockets Layer) — historický předchůdce, od roku 2015 deprecated (RFC 7568) kvůli zranitelnostem (POODLE, BEAST). Dnes se používá výhradně TLS — aktuálně TLS 1.3 (2018) a TLS 1.2.
  • Server prokazuje identitu certifikátem vydaným certifikační autoritou (Let's Encrypt, DigiCert, …).
  • Port 443.

Cesta od kliknutí ke stránce — vše propojené

Zadám do prohlížeče https://www.seznam.cz. Co se stane?

  1. Parsování URL — prohlížeč rozdělí URL na schéma (https), host (www.seznam.cz), port (443 default), cestu (/).
  2. DNS resolution — OS zkontroluje cache a hosts. Pokud nenajde, pošle dotaz resolveru. Ten projde hierarchií Root → .czseznam.cz a vrátí IP adresu. Cache si IP uloží podle TTL.
  3. TCP handshake — prohlížeč naváže spojení na získanou IP, port 443. Tříkrokový handshake (SYN → SYN-ACK → ACK).
  4. TLS handshake — klient a server se domluví na šifrovacích algoritmech, server pošle certifikát, klient ho ověří proti CA. Vytvoří se sdílený klíč pro symetrické šifrování.
  5. HTTP request — prohlížeč pošle:
GET / HTTP/2
Host: www.seznam.cz
User-Agent: Mozilla/5.0 ...
Accept: text/html,...

6. HTTP response — server vrátí:

 HTTP/2 200 OK
 Content-Type: text/html; charset=UTF-8
 Content-Length: 45231
 
 <!DOCTYPE html>...

7. Parsování HTML — prohlížeč buduje DOM strom a zároveň objevuje další zdroje k načtení.

  1. Načítání podzdrojů — pro každý <link>, <script>, <img> se spustí další request (paralelně, multiplexovaně přes HTTP/2). Server u každého pošle příslušný MIME type v Content-Type, prohlížeč podle toho rozhodne, co s daty udělat.
  2. Vykreslení — prohlížeč zkombinuje DOM + CSSOM, spočítá layout, vykreslí pixely, spustí JavaScript.