Home Ucionica Php Gledanje web strane

Hajde da se udaljimo od primera i pogledamo šta se dešava sa Web stranom od trenutka kad je pišemo do trenutka kad je gledamo.

Jedan od delova jeste Web server, koji čini da Web strane budu svima dostupne .Još jedan posao za naš Web server jeste da omogući mesto (obično direktorijum) u kome će organizovati i smeštati Web strane ili celu Web lokaciju. Postoje mnogi komercijalni i besplatni Web serveri, ali Web serveri dve kompanije drže preko 70% tržišta. Dva proizvoda su Web server Apache i Microsoftov Internet Information Server. Pretpostavićemo da koristite jedan od ova dva Web servera da biste Web strane učinili dostupnim.

Kada koristite Web da biste pogledali Web stranu, automatski stupate u kontakt sa Web serverom. Proces unošenja URL adrese naziva se zahtev (engl. requestr od servera. Server interpretira URL adresu, pronalazi odgovarajuću stranu i šalje stranu nazad kao deo nečega što se zove odgovor (engl. responsei u Web čitač, Web čitač tada uzima kod koji je dobio od Web servera i pretvara ga u stranu koja može da se pogleda. Web čitač je ovde klijent, a cela interakcija se zove klijent-server relacija.

Klijent-server

Ovaj termin opisuje funkcionisanje Weba označavajući podelu posla. Server (Web server) čuva, interpretira i distribuira podatke, a klijent (Web čitač) pristupa serveru da bi dobio podatke. Od sada kada god budemo koristili termin klijent, on će se odnositi na Web čitač. Kao što ćete videti u kasnije termin klijent-server je uprošćavanje procesa - to je prilično apstraktan opis fizičkog procesa. Da bismo razumeli sve detalje onoga što se dešava, moramo da kratko objasnimo kako funkcioniše sam Internet.

Internet protokoli

Ovde nećemo proći kroz celu istoriju Interneta; važan deo je da je to mreža međupovezanih čvorova. Internet je dizajniran da prenosi informacije sa jednog mesta na drugo. On koristi skup mrežnih protokola (poznatih kao TCP/IP) da bi preneo informacije preko mreže.

Mrežni protokol je jednostavno metod opisiuanja paketa informacija tako da oni mogu biti poslati kroz telefonsku, kablovsku, T1 liniju od čvora do čvora, dok ne dođu do cilja.

Jedna prednost protokola TCP/IP je ta da može da rutira informacije veoma brzo ako je određeni čvor ili put prekinut ili spor. Kada korisnik kaže Web čitaču da uzme Web stranu, Web čitač podeli ovu naredbu koristeći protokol koji se zove protokol za kontrolu prenosa (Transmission Control Protocol ili TCP). TCP je transportni protokol koji omogućava pouzdan format prenosa za naredbe. On osigurava da je cela poruka spakovana ispravno za slanje (i takođe da je ispravno raspakovana i složena nakon što dođe do cilja). Mrežni protokol TCP/IP je način opisivanja paketa informacija tako da mogu da se pošalju preko telefonske, kablovske ili TI linije od čvora do čvora.

Pre nego što su paketi podataka poslati preko mreže, oni moraju biti adresirani. Dakle drugi protokol koji se zove hipertekst transfer protokol (HyperText Transfer Protocol ili HTTP) stavlja oznaku sa adresom na paket, tako da TCPIIP zna gde da pošalje informacije. HTTP je protokol koji koristi Web za slanje informacija od jednog računara do drugog - kada vidite http:// ispred URL adrese, znaćete da se koristi Internet protokol HTTP. Možete da zamislite da je TCP/IP poštanska služba koja radi rutiranje i prenos, dok je HTTP marka i adresa na pismu (podacima) koja obezbeđuju odredište.

Poruka prosleđena od Web čitača do Web servera zove zahtev HTTP. Kada Web server dobije ovaj zahtev, on proverava da li ima odgovarajuću stranu. Ako Web server nađe stranu, on pakuje HTML koji se nalazi unutra (koristeći TCP), adresira pakete Web čitaču (koristeći HTTP), i šalje ih nazad preko mreže. Ako Web server ne može da pronađe traženu stranu, on prikazuje stranu koja sadrži poruku o grešci (u ovom slučaju, Error 404: Page Not Found) - i pakuje i prosleđuje tu stranu Web čitaču, Poruka koja se šalje od Web servera do Web čitača zove se odgovor HTTP.

Evo jedne ilustracije procesa izloženog onako kako ga razumemo do sada:

Protokol HTTP

Još uvek ovde nedostaje mnogo tehničkih detalja, zato hajde da pogledamo malo bliže kako protokol HTTP radi. Kada se zahtev za Web stranom pošalje Web serveru, zahtev sadrži više od željene URL adrese. Ima još dodatnih informacija koje se šalju kao deo zahteva. Ovo važi i za odgovor - server šalje razne informacije nazad do Web čitača. Ove druge tipove informacija pogledaćemo u sledećem delu.

Dosta informacija koje se šalju u poruci HITP generiše se automatski, i korisnik ne mora njih direktno da gleda, tako da ne morate da brinete o tome da sami šaljete ove informacije. Dok ne morate da brinete o pravljenju ovih informacija, treba da budete svesni da se ove dodatne informacije šalju između računara kao deo HITP zahteva ili HITP odgovora - zato što nam PHP skript koji ćemo da napišemo omogućava da direktno menjamo sadržaj ovih informacija.

Svaka HTTP poruka pretpostavlja isti format (bilo da je klijentski zahtev ili serverski odgovor). Možemo da podelimo ovaj format na tri dela: zahtev/odgovor red, HTTP zaglavlje i HTTP telo. Sadržaj ova tri dela zavisi od toga da Ii je poruka HTTP zahtev ili HTTP odgovor - tako da ćemo pogledati ova dva slučaja posebno.

Hajde da stanemo za trenutak i da prikažemo kako za sada razumemo proces:

Možemo videti da HITP zahtev i HITP odgovor imaju vrlo slične strukture, i da postoje informacije zajedničke za obe strane koje se šalju kao HTTP zaglavlje. Postoje drugi delovi informacija koje mogu biti poznate samo Web čitaču ili serveru, šalju se ili samo kao deo zahteva ili samo kao deo odgovora, tako da ima smisla da ih ispitamo detaljnije.

HTTP zahtev

Web čitač šalje HTTP zahtev Web serveru i on sadrži sledeće:

Red za zahtev

Prvi red svakog HTTP zahteva jeste red za zahtev, koji sadrži tri informacije:

  • Naredbu HTTP koja se zove metod.
  • Putanju od servera do podataka koje klijent traži.
  • Broj verzije HTTP-a.

Dakle, primer za red za zahtev može da izgleda ovako:

GET /testpage.htm HTTP/l.l

Metod se koristi da bi kazao serveru kako da obradi zahtev. Evo tri najčešće korišćena metoda koja mogu da se pojave u ovom polju:

Method Opis
GET Ovo je zahtev za informacijama koje se nalaze na datoj URL adresi. Većina HTTP zahteva koja postoji na Internetu su GET zahtevi. Informacije koje su potrebne zahtevu mogu biti bilo šta od HTML ili PHP strane, do ]avaScript ili PerlScript , ili nekog drugog izvršnog programa. Možete slati neke ograničene podatke u Web čitač, u formi dodatka URL adresi.
HEAD Ovo je isto što i metod GET, osim što definiše zahtev samo za HTTP-ovim zaglavljem i bez podataka.
POST Zahtev naglašava da će podaci biti poslati serveru kao deo HTTP-ovog tela. Ovi podaci se zatim šalju programu za obradu podataka na Web serveru.

Ima i drugih metoda koje podržava HTTP - uključujući i PUT, DELETE, TRACE, CONNECT i OPTIONS. Videćete da su, po pravilu, ovi manje česti; zbog toga su izvan predmeta naše rasprave. Ako želite da znate nešto više o njima, pogledajte RFC 2068, koji možete da pronađete na URL adresi http://www.rfc.net

HTTP zaglavje

Sledeći deo informacija koji se šalje je HTTP zaglavlje. Ono sadrži detalje o tipovima dokumenata koje će klijent prihvatiti sa servera, kao tip Web čitača koji je zatražio stranu, datum i opšte informacije o konfiguraciji. Zaglavlje HTTP zahteva sadrži informacije koje spadaju u tri različite kategorije:

  • Opšta: sadrži informacije ili o klijentu ili serveru, ali ne specifične informacije o nekom od njih.
  • Entitet: sadrži informacije o podacima koji se šalju između klijenta i servera.
  • Zahtev: sadrži informacije o konfiguraciji klijenta i različitim tipovima prihvatljivih dokumenata.

Primer HTTP zaglavlja može da izgleda ovako:

Accept: */*
Accept-Language: en-us
Connection: Keep-Alive
Host: www.radioseka.info
Referer: http://www.radioseka.info/
SampleList.php?bookcode=3730
User-Agent: Mozilla (XII; I; Linux 2.0.32 i586)

Kao što možete videti, HTTP zaglavlje sastoji se od jednog broja redova, svaki red sadrži opis dela o HTTP zaglavlju sa informacijama i svoju vrednost.

Postoje brojni različiti redovi koji sačinjavaju HTTP zaglavlje, i većina njih je opciona, tako da HTTP mora da naglasi kada je završio slanje zaglavlja sa informacijama. Da bi to uradio, koristi se prazan red. U HTTP-u 1.1, zahtev mora da se sastoji od najmanje reda za zahtev i HOST zaglavlja.

HTTP telo

Ako se koristi metod POST u HTTP-ovom redu za zahtev, onda će telo HTTP zahteva sadržati bilo kakve podatke koji se šalju serveru - na primer, podaci koje je korisnik uneo u HTML formular (videćemo primere kasnije u knjizi). Inače telo HTTP zahteva će biti prazno.

HTTP odgovor

HTTP odgovor šalje server nazad do klijentskog Web čitača i sadrži sledeće.

Red za odgovor

Red za odgovor sadrži samo dve informacije:

  • Broj verzije HTTP-a
  • Kod HTTP-ovog zahteva koji javlja uspeh ili neuspeh zahteva

Primer reda za odgovor može da izgleda ovako:

HTTP/l.l 200 OK

Ovaj primer vraća HTTP-ov status kod 200, koji predstavlja poruku "OK". Ovo označava da je zahtev uspešan i da odgovor sadrži datu stranu ili podatke sa servera. Možda se sećate da smo pomenuli status kod 404 pre nekoliko stranica - ako red za odgovor sadrži 404, onda Web server nije uspeo da pronađe tražene podatke. Kodovi grešaka su brojevi sa tri cifre, gde prva cifra označava klasu odgovora. Postoji pet klasa odgovora:

Nastaviće se... !!

 

 

Prijavite se!



Fedora 10 - Cambridge

Forum novosti