Uvod v HTTP Flashcards
HTTP (Hyper
- Osnovni spletni protokol, ki omogoča <b>pravila komunikacije</b> med spletnimi strežniki in odjemalci(spletni brskalniki)
- Najpogostejsa verzija je <b>HTTP/1.1</b> zdj večino strani migrira na <b>HTTP/2.0</b>
- Komunikacija poteka preko ti. <b> Zahtevkov (request)</b>, kjer brskalniki pošlejo zahtevek z vsebino, strežnik se nato odzove.
HTTP in TCP/IP
- <b>TCP (Transmission Control Protocol)</b> je osnova za komunikacijo preko interneta
- HTPP je <b>aplikacijski protokol</b>, ki temelji na protokolu <b>TCP</b>
- TCP omogoča funkcionalnosti, ki so pomembne za HTTP:
- <b>Vzpostavitev povezave</b>
- <b>Persistentnost povezave</b>
- <b>Mehanizem, ki prepreči izgubo paketkov</b>
- HTTP zahtevek je lahko sestavljen iz več TCP paketkov
- Da lahko imamo več strežniških aplikacij na TCP protokolu, jih ločujemo preko <b>vrat(port)</b>, ki so oštevilčena od 1 do 65535
<b> HTTP prevzeto uporablja vrata 80</b>
HTTP in TCP/IP (poudarek na IP)
- TCP v osnovi deluje skupaj z <b> IP protokolom</b>, ki omogoča da je vsak računalnik na internetu enolično določena z <b> IP naslovom</b>
- IP naslov verzije 4 (<b>IPV4</b>) je sestavljen iz štirih mest <b> [0-255]. [0-255]. [0-255]. [0-255] </b>
- to je premalo in se je uvedel <b>IPV6</b> hkrati pa spletni strežnik gostuje več spletnih strani na 1 IP naslovu na različnih domenah
- IP naslov 127.0.0.1 vedno kaže na lokalni računalnik odjemalca (domena <b>localhost</b>)
Glava HTTP na odjemalčevi strani
- HTTP zahtevek je sestavljen iz <b> glave</b> in <b> telesa</b> na odjemalčevi strani zadostuje samo <b> glava</b>
- glavni parametri, ki sestavljajo glavo <b>HTTP zahtevka od odjemalca </b>(brskalnika)
- <b>brsta, pot zahtevka in HTTP verzija</b> npr GET /index.html HTTP/1.1
- Host(povemo domeno strani) npr. www.um.si
- Accept-language (povemo kateri jezik preferiramo) npr. en-us
- User-Agent( povemo kateri brskalnik imamo) npr. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
- Referer (povemo od kod prihajajmo): http://ww.google.com
velikokrat pomemben samo prvi zahtevek drugi so obcijski
HTTP GET
- Najbolj pogost HTTP zahtevek je <b> GET</b>, kjer sporočimo da želimo pridobiti vsebino določene datoteke
- GET v brskalnik vpišemo naslov ciljne spletne strani
- GET zahtevki so tudi <b> prevzeto pri vseh spletnih povezavah</b> ( pri el. <a>, <img></img>,..)</a>
HTTP GET(telnet)
_ HTTP zahtevke lahko pošljemo tudi preko poljubnega orodja, ki omogoča komunikacijo preko TCP protokola (npr. netcat, telnet, telputty)
- telnet Uporablja za oddaljen terminal preko TCP protokola, lahko pa ga uporabljamo za testiranje drugih TCP storitev
Glava HTTP na strežniški strani
- Strežnik <b> po zahtevku odjemalca odvrne odziv</b>, ki je sestavljen iz <b>glave</b> in <b>telesa</b>, telo vsbuje <b>html stran</b>
• Pogosti parametri HTTP glave na srežniški strani:
– (HTTP-VERZIJA STATUSNA-KODA). Npr HTTP/1.1 200 OK
– Date (Datum na strežniku): npr. Sat, 20 Nov 2004 07:16:26 GMT
– Server (vrsta in verzija strežniške programske opreme): npr. Apache/2.2.14 (Win32)
– Last-modified (datum zadnje modifikacije dokumenta):
npr. Sat, 20 Nov 2004 06:16:26 GMT
– Content-type (tip podatkov): npr. text/html
Glava HTTP -> statusne kode
vsaka glava HTTP zahtevka na strežniški strani se začne s <b> tromestno statustno kodo</b>, ki pove ali je bil zahtevek uspesen ali ne
– 1xx (Informational): Strežnik še obdeluje podatke.
– 2xx (Success): Zahtevek je bil uspešen.
– 3xx (Redirection): Dodatna akcija je zahtevana s strani odjemalca.
– 4xx (Client Error): Napaka na strani zahtevka odjemalca.
– 5xx (Server Error): Napaka na strani strežnika (kljub pravilnemu zahtevku)
Primeri najbolj pogostih statusnih kod:
- 200 OK: zahtevek je bil uspešen, sledi spletna stran ali druga datoteka.
- 400 Bad Request: napačni zahtevek s strani odjemalca.
- 401 Authentication Required: potrebna avtentikacija s strani odjemalca.
- 403 Forbidden: odjemalec nima dostopa do dane datoteke.
- 404 Not Found: dana datoteka ni bila najdena.
- 500 Internal Server Error: interna napaka na strežniku.
Ostali HTTP zahtevki:
- HEAD: dobimo samo glavo s strani strežnika, brez telesa.
- POST: pošiljanje podatkov na strežnik (npr. preko HTML forme).
- DELETE: brisanje določenih podatkov na strežniku.
- OPTIONS: dobimo katere HTTP zahtevke strežnik podpira
POST ali GET ?
- Z zahtevkom GET lahko tudi pošiljamo podatke na strežnik v poizvedbenega niza.
– V tem primeru se poizvedbeni niz (query string) začne z ‘?’, parametri so ločeni s ‘&’,
vrednost parametrov pa so določene z ‘=‘
POST:
- podatki so lahko v binarni obliki
- v URL naslovu so skriti podatki
- GET je omejen , POST ni omejitve
HTML forme ter GET/POST zahtevki
z <b>Action</b> povemo a gre za GET al za POST
Pri POST zahtevkih se v glavo HTTP doda “Content-type: application/x-www-form-urlencoded” si čimer povemo,
da so POST parametri v obliki poizvedbenega niza.
uvod v HTTP 2.0
bistvena razlika med HTTP 2.0 in HTTP 1.0 je da podpira več zahtevkov na asinhroni način (<b>multipleksiranje</b>)
pri HTTP 1.1 se zahtevki pošiljajo <b>sinhrono</b>( čakanje na odgovora strežnika)
UVOD v HTTPS
- Hypertext Transfer Protocol Secure (HTTPS), omogoča <b>asimetrično šifriranje</b> vsebine HTTP prometa med odjemalcem in strežnikom
- dani promet ne more biti prestrežen na poti
- za šifriranje se uporabi <b>TLS(Transport Layer Security)</b> ppred leti se je pa uporabljal <b>SSL(Secure Sockets Layer)</b>
- zaupanje se določi z uporabo <b>verig certifikatov</b>
- danes večina spletnih strani privvzeto uporablja HTTPS
HTTP piškotki
- Originalno uporabljen za shranjevanje podatkov od nastavitev <b>seje spletne strani</b>
- danes se zlorablja za <b>oglaševanje</b>
- strežniške aplikacije nastavijo piškotke v glavi HTTP zahtevka