Razvoj Web aplikacija HTTP protokol Kukiji i sesije
Razvoj Web aplikacija HTTP protokol Kukiji i sesije
HTTP Request � Sadržaj HTTP Request – a ◦ Request linija – sadrži podatke o resursu koji se traži �GET /about/index HTTP/1. 1 �Sadrži metod zahteva (u ovom slučaju GET), URL koji se traži i verziju HTTP – a koja se koristi. ◦ Lista HTTP header – a – opcione linije koje omogućavaju browser – u da pošalje serveru dodatne informacije (npr. kukije). ◦ Prazna linija ◦ Opciono telo poruke – recimo za POST podatke.
Header–i uz request Header Opis Primer Accept Lista MIME tipova koje će browser prihvatiti od servera pri odgovoru. Accept. Charset Lista skupova karaktera koje će Accept-Charset: browser prihvatiti ISO-8859 -1, utf-8 Accept. Encoding Lista načina kompresije koje će Accept-Encoding: browser prihvatiti gzip, deflate Accept. Language Lista jezika koje će browser prihvatitit Cookie Kuki koji je ranije dobijen od tog servera Accept: text/html, application/xml Accept-Language: en-gb, en
Header–i uz request Header Opis Primer Host Jedini obavezan header, i to samo ukoliko se koristi HTTP/1. 1 zahtev. Određuje sa kog sajta se traži odgovor. Host: www. example. com Referer Kada korisnik klikne na link koji ga vodi na novu stranu, većina browser – a šalje uz request i stranu sa koje je taj request poslan, preko Referer header – a. Referer: www. example. com User-Agent Sadrži podatke o tipu i verziji browser – a koji je poslao request.
HTTP Response � Sadržaj HTTP Response – a ◦ Statusna linija – daje browser – u status zahteva ◦ Lista HTTP header – a – sadrži dodatne podatke o odgovoru. ◦ Prazna linija ◦ Opciono telo poruke – najčešće je u ovom delu sadržaj odgovora, kao što je HTML ili slika.
Kodovi statusa Kod Razlog Opis 200 OK Request je bio uspešan. Sledi sadržaj. 301 Moved Permanently Traženi resurs je na drugoj adresi. Nova adresa sledi u Location header – u. 302 Found Traženi resurs je privremeno na drugoj adresi. Nova adresa sledi u Location header – u. 400 Bad Request Zahtev je bio loš. 403 Forbidden Browser pokušava da pristupi sadržaju za koji nema dozvolu pristupa. 404 Not Found Resurs nije nađen na serveru. 500 Internal Server Error Došlo je do problema pri procesiranju request – a.
Respones header – i (neki) Header Opis Primer Date Datum i vreme odgovora. Date: Mon, 05 Jan 2009 10: 07: 20 GMT Content. Length Veličina (u bajtovima) sadržaja koji sledi. Content-Length: 8704 Content. Type MIME tip sadržaja koji sledi. Content-Type: text/html Location Alternativni URL na kome browser treba da traži resurs. Server Informacije o web serveru. Set-Cookie Kuki koji server šalje browser – u. Location: www. example. com/newpage. php
Pamćenje podataka između dva request-a � HTTP je “stateless” protokol. ◦ Pri svakom zahtevu se otvara posebna konekcija ka web serveru. ◦ Server ne pamti automatski podatke o prethodnim zahtevima. � Načini ◦ ◦ za pamćenje podataka Kukiji Sakrivena polja na formama Menjanje URL-ova Http. Session objekat
Kukiji (Cookies) � Omogućavaju snimanje male količine podataka (do 4 KB) direktno u korisnikovom browser – u. � Kada korisnik traži stranicu od servera, kuki se automatski šalje sa zahtevom. � Vreme trajanja kukija može da bude fiksirano ili se može postaviti da se kuki briše kada se browser zatvori. � Većina modernih browser – a dozvoljava do 30 kukija po web sajtu.
Kukiji (Cookies) � Kukiji se mogu onemogućiti u browser – u, pa zato nije dobro da aplikacija suštinski zavisi od njih. � Najčešće se koriste za pamćenje korisničkih podešavanja aplikacije.
Komponente kukija � Kuki se šalje browser – u sa servera kao deo HTTP header – a. � Primer HTTP header – a koji kreira kuki: Set-Cookie: font. Size=3; expires=Monday, 28 -Nov-2011 20: 00 GMT; path=/; domain=. example. com; Http. Only
Komponente kukija Polje Opis name Ime kukija. U primeru – font. Size value Vrednost kukija. U primeru – 3 expires Vreme kada važnost kukija prestaje. Kada taj trenutak dođe, kuki se briše iz browser – a i ne šalje se više serveru. Ako se ova vrednost postavi na 0 ili se izostavi, kuki traje dok se browser ne zatvori. path Putanja kojoj browser šalje kuki. Ukoliko se navede, onda browser šalje kuki samo URL – ovima koji sadrže ovu putanju. Ukoliko se izostavi, podrazumeva se trenutni direktorijum skripta koji je poslao kuki. Vrednost / označava da je kuki dostupan svim URL – ovima na sajtu.
Servleti i kukiji � Cookie cookie = new Cookie(“key”, “value”) � cookie. set. Max. Age(60*60*24); � response. add. Cookie(cookie); � request. get. Cookies() uz request. – niz kukija koji su došli
Sesija � Problemi sa kukijima ◦ Mogu da sačuvaju do 4 KB podataka. ◦ Nisu previše sigurni. ◦ Svaki put se šalju kroz zahtev (10 kukija = dodatnih 40 KB po svakom zahtevu). � Sesija čuva podatke na serveru. � Ostaje na serveru određeno vreme.
Sesija � Http. Session session = request. get. Session(true); ◦ Kreira sesiju ukoliko nije postojala do tada. � session. set. Attribute(String value); ◦ Postavlja atribut u sesiju. � session. get. Attribute(String � session. invalidate() name, Object name) ◦ Poništava sesiju i oslobađa objekte koji su bili vezani za nju.
Sesija � Dužina trajanja sesije se postavlja u web. xml ◦ <session-config> ◦ <session-timeout>10</session-timeout> ◦ </session-config> � Sesija se uništava i kada se browser zatvori.
- Slides: 16