110 likes | 266 Views
Embedded HTTP server & WEB server. Projekat iz proceduralnog programiranja. Truji ć Nikola Jovanović Nemanja Borisavljević Vuk Ziriković Željko. HTTP server.
E N D
Embedded HTTP server& WEB server Projekat iz proceduralnog programiranja Trujić Nikola Jovanović Nemanja Borisavljević Vuk Ziriković Željko
HTTP server • Serverski softver koji koristi HTTP (HyperText Transfer Protocol) da, na zahtev klijenta, opsluži klijenta – HTML dokumentima, pridruženim datotekama i scenarijima. • Kada klijent pošalje zahtev http serveru, on šalje HTTP request massage koji se sastoji iz podataka o zahtevu klijenta i podataka o samom klijentu. • Veza između klijenta i servera obično se raskida posle opsluživanja zahtevanim dokumentom ili datotekom.
HTTP zahtev HTTP zahtev se sastoji iz više polja. • Prvi element je method koji označava vrstu metoda koja će biti primenjivana na resurse. • Sledeći elementi su opcioni hederi koji sadrže zahteve koji se tiču protokola kao i podatke o samom klijentu. • Pregled hedera : • Connection:Odredjuje tip konekcije, moze biti keep-alive sto znaci da server treba da ostavi otvoren soket radi kasnije komunikacije i close koji zatvara soket nakon primljene poruke. • User–Agent :ovaj heder sadrzi podatke o agentu koji klijent koristi • Host: ovaj heder sadrzi podatke o adresi klijenta. • Accept :ovaj heder sadrzi podatke o tome koji tipovi medija su prihvatnjivi u odgovoru. • Accept-encoding :ovaj heder sadrzi podatke o načinu kodiranja. • Accept- lenguage:ovaj heder sadrži podatke o jeziku . • Accept –charset : sadrži podatke o tome koji se charset koristi.
HTTP odgovor Odgovor sadrži sledeće hedere • Date: heder u kome se nalaze podaci o datumu • Server: podaci o serveru sa kojim klijent komunicira • Etag: header se koristi da bi se proverilo da li je keširana verzija stranice ista sa onom na serveru. • Connection – length: predstavlja dužinu podatka u telu odgovora • Connection: Određuje tip konekcije, može biti keep-alive ili close. • Content type :tip podatka koji se šalje.
Embedded system–ugrađeni sistem • Računarski sistem posebne namene koji se sastoji od hardvera i softvera, koji je sastavni deo drugog uređaja, kao sto su kancelarijska mašina, automobil,mobilni telefon ili neki uređaj za domaćinstvo. • Obicno je ugrađen u jedan čip ili jednu karticu i koristi se za kontrolu ili nadgledanje matičnog uređaja – obično uz malu ili nikakvu intervenciju od strane čoveka i obično u realnom vremenu.
Ugrađeni(embedded) HTTP server • Primena embedded HTTP servera u nekom uređaju omogućava kontrolu i upravljanje tim uređajem putem HTTP protokola. Ugrađeni HTTP server se može podeliti na 7 segmenata: • HTTP soket server • HTTP message protokol • Interni aplikacioni fajl sistem • Upravljač dinamičkim sadržajem • Log generator i API (Aplicationprogram interfejs) • Kompajlirani sadržaj (filedata.c) • Korisnički definaisan "plug-in“.
Dizajn ugrađenog HTTP servera • Ugrađeni HTTP server ne koristi klasične fajl sisteme, već stvara svoj sopstveni fajl sistem. U te svrhe se koristi f-ja buildfs . • Buildfsje specijalna f-ja koja stvara strukturu podataka. Ona uzima kao argument lokaciju direktorijuma koji se koristi kao koren za stvaranje strukture. Drvo sa podacima se potom obrađuje i svaki file se upisuje u specijalan file – filedata.c . • Buildfs f-ja gradi file sistem , zasniva se na fileheader strukturi.Realizuje se pomocu f-je lookupFileheader. • flehederStructse sastoji iz 3 elementa .Element hdrStart je index pocetka headera u filedata nizu.Size je velicina fajla,a fileStart identifikuje gde pocinje sadrzaj podatka. • LookupFilename f-ja uzima za argumente string koji oznacava ime file-a koji trazimo I fileHdrStruct pokazivac koji ce sadrzati informacije o imenu file-a u app file sys.Ona uporedjuje hedere fajlova I kada file biva pronadjen, fileHdrStruct biva popunjen sa elementima koji optimizuju sledecu pretragu.
Dizajn ugrađenog HTTP servera Dinamički sadržaj • Ugradjeni HTTP serveri, za razliku od WEB servera, podržavaju dinamički sadržaj, tj. dinamički sadržaj se direktno, na serveru, ubacuje u zahtevani HTML dokument u trenutku generisanja. • Podrška za dinamički sadržaj je iznenađujuće jednostavna i koristi sličan ‘tag’ koncept koji možemo naći kod HTML–a. Novi tag je dodat interfejsu embedded servera da bi podržao ovu mogućnost . Tag je <DATA X> gde je X promenljiva tipa string koja označava dinamički sadržaj. Nekoliko dizajn opcija je bilo u opticaju što se tiče dinamičkog sadržaja. Konačan dizajn koji je izabran implementiran je zbog svoje fleksibilnosti. Kadaprogramer hoće da koristi dinamički sadržaj on napravi HTML fajl koji sadrži dinamičke tagove. Kod koji će ustvari omogućiti dinamički sadržaj je napisan kao f-ja koja vraća stringovnu vrednost. F-ja je onda implementirana u HTTP server sa istim imenom promenljive kao sto je i u HTML-u.
Dizajn ugrađenog HTTP servera Dinamičke forme • Mogućnost da korisnik šalje podatke serveru preko forme, omogućena je HTML metodom POST. Post pravi zahtev sa hederom i sadrzajem poruke koja će biti poslata serveru. Posao form procesora je da jednostavno primi podatke poslate njemu, da ih prepozna i da ih razvrsta. Tip sadržaja - upravljanje • Tip sadržaja HTTP odgovora pokazuje kako bi telo poruke trebalo biti regulisano, npr. standardna HTML strana je regulisana kao text/html, jpeg slika kao image/jpg itd. Ovo govori kako primalac poruke treba da tumači dobijeni podatak. Dodavanje novih tipova je lako , koliko i definisanje novih tipova podataka. Ako primalac ne može da prepozna tip podatka vraća se default tip koji je application/octet-stream.Ovo se definiše kao niz oktalnih cifara.
Literatura • Tim Jones: “Network programming” • Jim Kurose, Keith Ross:“Computer Networking: A Top Down Approach Featuring the Internet “3rd edition • Internet