Informatika 2 - HTML, CSS - böngészők programozása labor

A VIK Wikiből
A lap korábbi változatát látod, amilyen David14 (vitalap | szerkesztései) 2013. január 26., 00:28-kor történt szerkesztése után volt.
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal az Informatika 2 című tárgy - Egyszerű web szerver készítése labor beugrókérdéseinek kidolgozását tartalmazza.

Jelenleg még elég hiányos a kidolgozás, továbbá évről évre kismértékben változhatnak beugrókérdések. A tanszéki honlapról mindig elérhető az aktuális mérési útmutató, mely az aktuális beugrókérdéseket tartalmazza.

Kérlek szerkesszétek, aktualizáljátok!

Egy HTTP kommunikációban milyen felek vesznek részt és mi a feladatuk?

  1. Kliens (böngésző):
    • A beírt cím alapján megállapítja a szerve IP-címét (DNS fordítás is!)
    • TCP/IP-kapcsolatot hoz létre a szerver felé
    • HTTP-kéréseket küld a szerver felé
  2. Szerver:
    • HTTP-válaszokat küld a kliens kéréseire (nincs hiba: lekért oldalt tartalmazza)
    • Bizonyos kérésekre egy adatbázisban módosíthat
    • A válasz végén lebontja a kapcsolatot

A HTTP kommunikáció során hogyan állapodnak meg a felek a használandó HTTP protokoll verzióban?

A verzió száma szerepel a kérés és a válasz fejlécében. A legnagyobb olyan HTTP-verziót használják, amit mindkét résztvevő támogat.

A HTTP protokollban a kliens hogyan jelzi a kérés fejlécének végét?

Két <CR><LF> sorozattal (0x0D 0x0A 0x0D 0x0A byteok).

A HTTP GET kérés hogyan közli a lekérendő dokumentum nevét és elérhetőségét?

A küldött parancs (pl. GET) után egy szóközzel elválasztva következik a dokumentum helye a szerver gyökérkönyvtárához képest. Pl. a www.google.com szervernek küldött GET / HTTP/1.0 lekérés magát a gyökérkönyvtárat kéri le (perjel).

A web szerver hogyan jelzi, ha hiba történt a dokumentum lekérése során?

A válasz tartalmaz egy státuszkódot (hibakódot). Ha ennek első számjegye 4-es, az kliensoldali hibát jelent (pl. 404 Not found), ha 5-ös, az szerveroldali hiba (pl. 500 Internal Server Error).

A (HTTP 1.1-es) válaszkódok bővebben megtalálhatóak itt: http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html

A web szerver milyen két módon jelezheti a dokumentum méretét (végét)?

A fejlécben előre elküldheti a dokumentum méretét (pl. Content-Length fejléc mező), vagy az átvitel befejezése után simán bontja a TCP/IP-kapcsolatot.

C-kód: Megkeresi az str karakter tömbben tárolt szöveg második szavát, és az str2 tömbben visszaadja!

	sscanf(str, "%*[^ ] %[^ ]", str2);

C-kód: Megvizsgálja, hogy az str karakter tömbben tárolt szöveg első szava "GET"-e, és ha igen, akkor a második szavát az str2 tömbben visszaadja!

	sscanf(str, "%[^ ]", str2);
	if (strcmp(str2, "GET")==0) sscanf(str, "%*[^ ] %[^ ]", str2);
	else str2[0]='\0';

C-kód: Egy állományt binárisan megnyit, majd bezár! Ha a megnyitás sikertelen, akkor jelezze a hibát!

	file=fopen("temp.bin", "rb");
	if (file==NULL) printf("hiba a file megnyitasakor\n");
	else fclose(file);

C-kód: Az str karakter tömbben tárolt szöveget elküldi az s leíróval reprezentált kliens socketen keresztül!

	x=send(s, (const void *)str, strlen(str), 0);
	
	if (x<0) printf("irasi hiba\n");
	else printf("%d byte elkuldve\n", x);
	closesocket(s);