Uvod v HTTP Flashcards

1
Q

HTTP (Hyper

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

HTTP in TCP/IP

A
  • <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>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

HTTP in TCP/IP (poudarek na IP)

A
  • 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>)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Glava HTTP na odjemalčevi strani

A
  • 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

HTTP GET

A
  • 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>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

HTTP GET(telnet)

A

_ 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Glava HTTP na strežniški strani

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Glava HTTP -> statusne kode

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Primeri najbolj pogostih statusnih kod:

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Ostali HTTP zahtevki:

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

POST ali GET ?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

HTML forme ter GET/POST zahtevki

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

uvod v HTTP 2.0

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

UVOD v HTTPS

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

HTTP piškotki

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

3rd party piškotki

A

1st party piškotki izhajajo iz iste domene katero obiskujemo in so praviloma vklopljeni
3rd party piškotki so vsi. piškotki od drugih domen od katerih pristopamo sekundarno
- klasično se uporablja za sledenje in analitiko nad uporabniki
- uporabiniku se določi <b>id</b>

17
Q

Spletni sledilci (web trackers)

A

Poleg 3rd party piškotkov uporabljajo naprednejše tehnike identifikacije uporabnika (web fingerprinting)

18
Q

AJAX(Asynchronous JavaScript and XML)

A

AJAX je <b>asinhrona funkcionalnost</b> vrajena v JavaScript, ki omogoča asinhrone klice <b>sprožitev HTTP zahtevkov</b> preko JavaScript. Prva verzija 2006
- Glavna prednost AJAX-a je pošiljanje zahtevkov po tem ko se je spletna stran že naložila

AJAX klicemo preko instance objekta <b>XMLHttpRequest</b>
podprte metode:
open(HTTP zahtevek, URL, zastavica za asinhronost)
abort() – prekličemo zahtevek
getAllResponseHeaders()
send()
send(‘parametri v poizvedbenem nizu’)
setRequestHeader()
19
Q

AJAX

A

Kličemo preko instance objekta XMLHttpRequest
Preko metode <b>onreadystatechange </b>nastavimo <b>povratno funckijo</b>, ki se sproži ob prejetju odziva s
strežnika (ne čakamo na odziv)
this.status
this.responseText
this.readyState

20
Q

AJAX primer uporabe

A

Uporabimo <b>API</b>

21
Q

AJAX primer uporabe (fetch)

promise

A

Namesto XMLHttpRequest lahko uporabimo novejši ukaz <b>fetch</b>, ki je implementiran kot obljuba(<b>promise</b>) pri tem lahko odziv pretvorimo v JSON objekt premo metode <b>json()</b>

22
Q

Cross-origin resource sharing (CORSE)

A

Pri oddaljenih zahtevkih preko AJAX ne moremo dostopati do drugih domen, ki se razlikujejo po
imenu od naše trenutne domene

23
Q

CORS

A

Pri asinhronih zahtevkih (npr AJAX) je običajno še poslan dodatni zahtevek <b>OPTION</b>, ki preveri, če strežnik sprejema zahtevke od zunaj
zaradi varnostnih razlogov kot je <b>ponarejanje HTTP zahtev od zunanje strani</b>
Strežnik se odzove v HTTP glavi s paramtri Access-Control-Allow, ki nam povejo s katerih domen
praviloma prejema zahtevke (prejema jih v vsakem primeru) ter vrsta zahtevkov

Na podlagi CORS odziva se brskalnik odloči, če bo zahtevek blokiral ali ne.