Načrtovanje in razvoj spletnih aplikacij

Internetni protokoli

Protokoli so dogovorjena pravila, po katerih se naprave in programi sporazumevajo v omrežju. Določajo, kako se podatki pošljejo, prejmejo, preverijo in obdelajo. Brez protokolov brskalniki, strežniki, poštni programi in druge storitve ne bi mogli zanesljivo sodelovati.

Na spletu najpogosteje srečamo protokole za prenos spletnih strani, razreševanje domen, prenos datotek, elektronsko pošto, klepet in varno oddaljeno prijavo.

Pomni: Protokol je dogovor o načinu komunikacije. Ne določa samo, kaj se pošilja, temveč tudi kako se zahteva oblikuje, kako se odgovor vrne in kako se obravnavajo napake.

Osnovna pravila

  • Za prenos spletnih strani uporabljamo predvsem HTTP oziroma HTTPS.
  • Za pretvorbo domenskih imen v IP naslove skrbi DNS.
  • Za prenos datotek se lahko uporabljajo FTP, SFTP ali FTPS.
  • Za elektronsko pošto sodelujejo različni protokoli, najpogosteje SMTP, POP3 in IMAP.
  • Za varno oddaljeno prijavo in upravljanje strežnikov uporabljamo SSH.
  • Pri sodobnih storitvah imajo prednost šifrirane povezave.

Pozor: Če protokol sam po sebi ne šifrira prenosa, se lahko podatki med prenosom lažje prestrežejo. Zato danes praviloma izbiramo varnejše različice, na primer HTTPS namesto HTTP in SFTP ali FTPS namesto osnovnega FTP.

HTTP

HTTP (HyperText Transfer Protocol) je aplikacijski protokol za prenos spletnih strani in drugih spletnih virov med brskalnikom in spletnim strežnikom. Ko v brskalnik vpišemo spletni naslov, brskalnik strežniku pošlje zahtevo, strežnik pa vrne odgovor z vsebino ali s sporočilom o napaki.

HTTP je po zasnovi protokol brez stanja. To pomeni, da posamezne zahteve niso samodejno povezane v trajno sejo. Za prijave, košarice in druge oblike stanja se zato uporabljajo dodatni mehanizmi, na primer piškotki, seje ali žetoni.

Danes se poleg HTTP/1.1 uporabljata tudi HTTP/2 in HTTP/3. HTTP/2 izboljša učinkovitost prenosa, HTTP/3 pa temelji na protokolu QUIC in je prilagojen sodobnim omrežjem.

HTTP metode

Metoda Pomen
GET pridobi vsebino vira s strežnika
HEAD vrne le glave odgovora brez telesa vsebine
POST pošlje podatke strežniku, na primer iz obrazca
PUT ustvari ali zamenja vir na strežniku
DELETE zahteva brisanje vira
OPTIONS vrne informacije o podprtih metodah
CONNECT uporablja se za vzpostavitev tunela, na primer prek posredniškega strežnika

Statusne kode HTTP

  • 1xx – informativne kode,
  • 2xx – uspešno izvedena zahteva, na primer 200 OK,
  • 3xx – preusmeritve, na primer 301 Moved Permanently,
  • 4xx – napake na strani odjemalca, na primer 404 Not Found,
  • 5xx – napake na strani strežnika, na primer 500 Internal Server Error.

HTTPS

HTTPS je varnejša različica protokola HTTP. Pri HTTPS se podatki med brskalnikom in strežnikom prenašajo po šifrirani povezavi, zato jih je bistveno težje prestreči ali spremeniti med prenosom.

V sodobnem spletu HTTPS temelji na protokolu TLS (Transport Layer Security). TLS zagotavlja zaupnost, celovitost podatkov in preverjanje pristnosti strežnika. Zaradi večje varnosti je HTTPS danes privzeta izbira za sodobna spletišča.

HTTP običajno uporablja vrata 80, HTTPS pa vrata 443.

Pomni: HTTPS ne pomeni, da je celotno spletišče nujno varno, pomeni pa, da je povezava med brskalnikom in strežnikom šifrirana.

DNS – sistem domenskih imen

DNS (Domain Name System) je sistem, ki domenska imena pretvarja v IP naslove. Ljudje si lažje zapomnimo ime, kot je nsa-splet.si, računalniki pa za komunikacijo potrebujejo IP naslov.

DNS zato deluje kot imenik interneta. Ko uporabnik vpiše domeno v brskalnik, DNS poišče pripadajoči IP naslov in omogoči povezavo s pravim strežnikom.

DNS strežniki

  • rekurzivni DNS strežnik poišče odgovor za uporabnika,
  • avtoritativni DNS strežnik hrani uradne podatke o domeni.

Domenski prostor je urejen hierarhično. Na vrhu je korenska domena, pod njo pa so vrhnje domene, kot so .si, .com in druge.

Način delovanja DNS

  1. računalnik pošlje poizvedbo rekurzivnemu DNS strežniku,
  2. če odgovor ni v predpomnilniku, strežnik poišče ustrezne vrhnje in avtoritativne strežnike,
  3. avtoritativni strežnik vrne ustrezen DNS zapis,
  4. rekurzivni strežnik vrne odgovor uporabnikovi napravi.

Odgovori se pogosto začasno shranijo v predpomnilnik, zato so ponovne poizvedbe hitrejše. Za dodatno zaščito DNS prometa se lahko uporabljata tudi DoH (DNS over HTTPS) in DoT (DNS over TLS).

Drevesna struktura domenskega prostora

Drevesna struktura domenskega prostora

Tipi DNS zapisov

Zapis Pomen
A preslika ime gostitelja v naslov IPv4
AAAA preslika ime gostitelja v naslov IPv6
CNAME določa drugo oziroma nadomestno ime
MX določa poštne strežnike za domeno
NS določa avtoritativne DNS strežnike za domeno
PTR omogoča obratno preslikavo IP naslova v ime
TXT vsebuje dodatne besedilne podatke
SOA vsebuje osnovne podatke o DNS coni

Prenos datotek: FTP, SFTP in FTPS

FTP (File Transfer Protocol) je protokol za prenos datotek med računalniki. Uporablja se za nalaganje datotek na strežnik ali za prenos datotek s strežnika na lokalni računalnik.

Osnovni FTP ni šifriran. Zato se danes za varnejši prenos pogosto uporabljata SFTP ali FTPS. SFTP deluje prek SSH, FTPS pa uporablja TLS za zaščito povezave.

Pozor: SFTP in FTPS nista ista protokola. Oba omogočata varnejši prenos datotek, vendar delujeta na drugačen način.

Elektronska pošta: SMTP, MIME, POP3 in IMAP

SMTP

SMTP (Simple Mail Transfer Protocol) je osnovni protokol za pošiljanje elektronske pošte. Uporablja se za prenos sporočil od pošiljateljevega odjemalca do poštnega strežnika in med poštnimi strežniki.

SMTP je bil prvotno zasnovan za preprost prenos besedila, zato se za pošiljanje priponk, šumnikov in različnih vrst vsebin uporablja skupaj z razširitvijo MIME.

MIME

MIME (Multipurpose Internet Mail Extensions) razširja možnosti elektronske pošte. Omogoča pošiljanje različnih vrst vsebin, na primer besedila z različnimi znakovnimi nabori, slik, dokumentov, zvoka, videa in drugih priponk.

POP3

POP3 je protokol za prevzem elektronske pošte s strežnika na uporabnikovo napravo. Zasnovan je predvsem za preprost prenos sporočil iz poštnega strežnika v poštni program.

POP3 je uporaben, kadar želi uporabnik pošto prenesti lokalno, vendar je manj primeren za delo na več napravah.

IMAP

IMAP (Internet Message Access Protocol) je protokol za dostop do elektronske pošte na strežniku. Sporočila praviloma ostanejo shranjena na strežniku, uporabnik pa do njih dostopa z različnih naprav.

IMAP omogoča delo z mapami, sinhronizacijo med več napravami, označevanje sporočil in učinkovitejše upravljanje pošte. Zaradi teh lastnosti je danes pogosto primernejša izbira kot POP3.

Komunikacija in oddaljeni dostop

IRC

IRC (Internet Relay Chat) je besedilni protokol za spletni klepet v realnem času. Uporabniki se povežejo na strežnik in komunicirajo v kanalih ali zasebnih pogovorih.

Čeprav danes ni več tako razširjen kot sodobne klepetalne platforme, je IRC pomemben del zgodovine internetne komunikacije.

SSH

SSH (Secure Shell) je varen protokol za prijavo v oddaljen računalnik in upravljanje sistema na daljavo. Vsi podatki se prenašajo šifrirano, zato je SSH bistveno varnejši od starejših rešitev, kot je Telnet.

SSH se uporablja za oddaljeno administracijo strežnikov, varen prenos datotek, tuneliranje povezav in preverjanje pristnosti z gesli ali kriptografskimi ključi.

  • ssh – povezava z oddaljenim strežnikom prek ukazne vrstice,
  • sftp – varen prenos datotek prek SSH,
  • scp – kopiranje datotek prek SSH.

Primerjava najpogostejših protokolov

Protokol Osnovni namen
HTTP prenos spletnih strani in drugih spletnih virov
HTTPS varen prenos spletnih strani po šifrirani povezavi
DNS pretvorba domenskih imen v IP naslove
FTP prenos datotek med računalniki
SMTP pošiljanje elektronske pošte
POP3 prevzem pošte s strežnika na napravo
IMAP dostop do pošte na strežniku in sinhronizacija med napravami
SSH varna oddaljena prijava in upravljanje strežnika

Priporočila

  • Za spletne strani uporabljaj HTTPS, kadar je to mogoče.
  • Za prenos datotek raje uporabi SFTP ali FTPS kot nešifriran FTP.
  • Za delo z elektronsko pošto na več napravah je praviloma primernejši IMAP kot POP3.
  • Za oddaljeno upravljanje strežnikov uporabljaj SSH in ne starejših nešifriranih rešitev.