„Informatika 2 - HTML, CSS - böngészők programozása labor” változatai közötti eltérés
a |
a |
||
32. sor: | 32. sor: | ||
== A web szerver hogyan jelzi, ha hiba történt a dokumentum lekérése során? == | == 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 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 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. | 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! == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | ||
<pre> | <pre> | ||
74. sor: | 46. sor: | ||
</pre> | </pre> | ||
− | == | + | == 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! == |
<pre> | <pre> | ||
sscanf(str, "%[^ ]", str2); | sscanf(str, "%[^ ]", str2); | ||
if (strcmp(str2, "GET")==0) sscanf(str, "%*[^ ] %[^ ]", str2); | if (strcmp(str2, "GET")==0) sscanf(str, "%*[^ ] %[^ ]", str2); | ||
− | else str2[0]=' | + | else str2[0]='\0'; |
</pre> | </pre> | ||
− | == | + | == C-kód: Egy állományt binárisan megnyit, majd bezár! Ha a megnyitás sikertelen, akkor jelezze a hibát! == |
<pre> | <pre> | ||
90. sor: | 62. sor: | ||
</pre> | </pre> | ||
− | == | + | == 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! == |
<pre> | <pre> | ||
− | + | x=send(s, (const void *)str, strlen(str), 0); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | x=send(s, (const void *)str, strlen(str), 0); | ||
− | |||
− | |||
if (x<0) printf("irasi hiba\n"); | if (x<0) printf("irasi hiba\n"); | ||
else printf("%d byte elkuldve\n", x); | else printf("%d byte elkuldve\n", x); | ||
+ | closesocket(s); | ||
</pre> | </pre> | ||
[[Category:Villanyalap]] | [[Category:Villanyalap]] |
A lap 2013. január 26., 00:28-kori változata
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!
Tartalomjegyzék
- 1 Egy HTTP kommunikációban milyen felek vesznek részt és mi a feladatuk?
- 2 A HTTP kommunikáció során hogyan állapodnak meg a felek a használandó HTTP protokoll verzióban?
- 3 A HTTP protokollban a kliens hogyan jelzi a kérés fejlécének végét?
- 4 A HTTP GET kérés hogyan közli a lekérendő dokumentum nevét és elérhetőségét?
- 5 A web szerver hogyan jelzi, ha hiba történt a dokumentum lekérése során?
- 6 A web szerver milyen két módon jelezheti a dokumentum méretét (végét)?
- 7 C-kód: Megkeresi az str karakter tömbben tárolt szöveg második szavát, és az str2 tömbben visszaadja!
- 8 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!
- 9 C-kód: Egy állományt binárisan megnyit, majd bezár! Ha a megnyitás sikertelen, akkor jelezze a hibát!
- 10 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!
Egy HTTP kommunikációban milyen felek vesznek részt és mi a feladatuk?
- 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é
- 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);