„Informatika 2 - HTML, CSS - böngészők programozása labor” változatai közötti eltérés

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
a
a
 
(9 közbenső módosítás, amit egy másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
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.
+
{{Vissza|Informatika 2}}
 +
 
 +
Ez az oldal az [[Informatika 2]] című tárgy - '''HTML, CSS - böngészők programozása labor''' beugrókérdéseinek kidolgozását tartalmazza.<br>Az aktuális segédlet az aktuális (ajánlott) beugrókérdésekkel bejelentkezés után megtalálható a tanszéki honlapon a [https://www.aut.bme.hu/Upload/Course/VIAUA203/hallgatoi_segedletek/HTML-CSS-Hallgat%C3%B3i_120213164036.pdf 2. gyakorlat segédlet címen] (2013 tavasz).
  
 
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.
 
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.
 +
 +
'''''FONTOS: Ezektől eltérő kérdések is előfordulhatnak a beugrókban! Ezek csak irányadó kérdések, így ajánlott a segédlet alapos áttanulmányozása is.'''''
  
 
'''Kérlek szerkesszétek, aktualizáljátok!'''
 
'''Kérlek szerkesszétek, aktualizáljátok!'''
7. sor: 11. sor:
 
__TOC__
 
__TOC__
  
== Egy HTTP kommunikációban milyen felek vesznek részt és mi a feladatuk? ==
+
== Mire szolgál a HTML? ==
  
#Kliens (böngésző):
+
*A dokumentum ne csak egyszerű szöveg legyen, hanem a tartalmat hordozó részt lássuk el címkékkel, melyek kiegészítő információkat (metaadatokat) adnak a szöveghez. Hasonló célú egyszerűbb jelöléseket a nyomdatechnikában már korábban is használtak (pl. egyszeres aláhúzás: dőlt, kettős aláhúzás: félkövér betű), itt a nagy újdonság a formalizmus és címkekészlet megalkotása volt, így jött létre a HTML mint jelölőnyelv (markup language).
#*A beírt cím alapján megállapítja a szerve IP-címét (DNS fordítás is!)
+
*A dokumentumok „mutassanak túl” önmagukon, azaz olyan hiperszövegeket (hypertext) tartalmazzanak, amelyek bármely részlete egy másik dokumentumra hivatkozhat. Ez az, amit ma úgy ismerünk, hogy egy weboldalon rákattinthatunk hivatkozásokra (linkekre), aminek hatására betöltődik egy másik weboldal.
#*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? ==
+
== Hogyan lehet egy dokumentumban sortöréseket megadni? ==
  
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.
+
Ha egy HTML dokumentumban rendezni, formázni szeretnénk a szöveget, akkor ezt kizárólag HTML elemekkel tehetjük meg. Azaz hiába teszünk sortöréseket a HTML kódba, vagy hiába teszünk egymás után sok szóközt, a böngészőben csak egyetlen szóköz fog megjelenni helyette. Ha másként szeretnénk, erre szolgáló címkéket kell használnunk.
  
== A HTTP protokollban a kliens hogyan jelzi a kérés fejlécének végét? ==
+
Egy hosszabb szöveget a p (paragraph) elem segítségével tagolhatunk bekezdésekre. Példa: '''< p> Első bekezdés </p>'''
  
Két <CR><LF> sorozattal (0x0D 0x0A 0x0D 0x0A byteok).
+
Ha egy bekezdésen belül új sort szeretnénk kezdeni, akkor azt a br (break) elemmel tehetjük meg. A br elem önállóan áll, nincs sem záró címkéje, sem pedig attribútumai, mindössze ennyi: '''< br />'''
  
== A HTTP GET kérés hogyan közli a lekérendő dokumentum nevét és elérhetőségét? ==
+
== Hogyan lehet egy dokumentumban címsorokat megadni? ==
  
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 bekezdések közé címsorokat tehetünk, méghozzá hat méretben, melyeket a h1..h6 (heading) elemekkel jelölhetünk:
  
== A web szerver hogyan jelzi, ha hiba történt a dokumentum lekérése során? ==
+
'''< h1>Főcím</h1>'''<br>
 +
'''< h2>Alcím</h2>'''
  
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
+
== Hogyan lehet egy dokumentumba képeket ágyazni? ==
  
== A web szerver milyen két módon jelezheti a dokumentum méretét (végét)? ==
+
Az '''a''' elemen belül tetszőleges elem állhat, például ha egy képet szeretnénk kattinthatóvá tenni, akkor a kép megjelenítésére szolgáló img elemet tehetjük a link belsejébe:
  
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 href="http://www.bme.hu">
----
+
<img src="logo.gif" />
 +
</a>
  
Keretprogram a 7-10-es feladatokhoz:
+
== Hogyan lehet egy dokumentumban 2x3 méretű táblázatot megadni? ==
  
 
<pre>
 
<pre>
#include <sys/types.h>
+
  <table summary="2x3-as táblázat">
#include <sys/socket.h>
+
      <thead>
#include <netinet/in.h>
+
        <tr>
#include <arpa/inet.h>
+
            <th>1. oszlop fejléce</th>
#include <stdio.h>
+
            <th>2. oszlop fejléce</th>
#include <stdlib.h>
+
            <th>3. oszlop fejléce</th>
#include <string.h>
+
        </tr>
#include <strings.h>
+
      </thead>
#include <unistd.h>
+
      <tfoot>
 +
        <tr>
 +
            <td>1. oszlop lábléce</td>
 +
            <td>2. oszlop lábléce</td>
 +
            <td>3. oszlop lábléce</td>
 +
        </tr>
 +
      </tfoot>
 +
      <tbody>
 +
        <tr>
 +
            <td>1. sor 1. adat</td>
 +
            <td>1. sor 2. adat</td>
 +
            <td>1. sor 3. adat</td>
 +
        </tr>
 +
        <tr>
 +
            <td>2. sor 1. adat</td>
 +
            <td>2. sor 2. adat</td>
 +
            <td>2. sor 3. adat</td>
 +
        </tr>
 +
      </tbody>
 +
  </table>
 +
</pre>
  
int main () {
+
== Mire szolgál a CSS? ==
  
char str[]="GET /index.html HTTP/1.0\x0d\x0a\x0d\x0a";
+
Cascading Style Sheets stíluslapokkal dolgozva a beállításokat attribútum név – attribútum érték párosokkal adhatjuk meg. Az attribútumok neve és értéktartománya rögzített, és gyakorlatilag az összes megjelenéssel kapcsolatos területet (méretek, távolságok, színek, pozíciók stb.) lefedik, így az ide vonatkozó HTML attribútumokra már nincs is szükség. Ezáltal úgy lehet formázni az oldalt, hogy maga a HTML kód áttekinthető és egyszerű marad, hiszen a formázási attribútumokat egy külön CSS fájl tartalmazza.
char str2[20];
 
char temp[20];
 
FILE *file;
 
SOCKET s;
 
sockaddr_in addr;
 
  
/* Ide kell beszúrni a lejjebb lévő a kódrészleteket */
+
== Milyen lehetőségeket ismer egy böngészőben megjelenítendő szöveg formázására? ==
 
 
closesocket(s);
 
return 0;
 
}
 
</pre>
 
 
 
== Írjon C nyelvű kódrészletet, amely megkeresi az str karakter tömbben tárolt szöveg második szavát, és az str2 tömbben visszaadja! ==
 
 
 
<pre>
 
sscanf(str, "%*[^ ] %[^ ]", str2);
 
</pre>
 
  
== Írjon C nyelvű kódrészletet, amely 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! ==
+
*A HTML-ben egyes elemek tartalmazhatnak megjelenítésre vonatkozó attribútumokat (pl. align: igazítás), vagy például a font elemmel megadhatjuk a betűtípust, betűméretet és a színt.
 +
*Használhatunk úgynevezett inline stílust, ekkor a formázandó HTML elem style attribútumába kell írnunk a CSS attribútumokat és azok értékeit.
 +
*Egy másik lehetőség a CSS kód elhelyezésére a stílus blokk használata. Ebben az esetben tipikusan a HTML oldal head elemében hozunk létre egy style elemet, és oda írjuk a CSS kódunkat.
 +
*A harmadik megoldás, amikor nem a HTML fájlban helyezzük el a CSS kódot, hanem egy külső fájlban, aminek tipikusan a .css kiterjesztést szoktuk adni. Ekkor a HTML oldal head elemében egy link elemmel hivatkozhatunk az oldalhoz tartozó stíluslapra.
  
<pre>
+
== Mi a probléma a táblázatokra épülő oldalelrendezésekkel? ==
sscanf(str, "%[^ ]", str2);
 
if (strcmp(str2, "GET")==0) sscanf(str, "%*[^ ] %[^ ]", str2);
 
else str2[0]='<verbatim></verbatim>';
 
</pre>
 
  
== Írjon C nyelvű kódrészletet, amely egy állományt binárisan megnyit, majd bezár! Ha a megnyitás sikertelen, akkor jelezze a hibát! ==
+
A táblázat alapú oldalelrendezés nagyon sok HTML kódot eredményez, mely nemcsak az oldal letöltését és betöltését lassítja, hanem ráadásul nagyon nehezen átlátható, azaz nehezen tudunk később belejavítani.
  
<pre>
+
== Mire szolgál a div elem? ==
file=fopen("temp.bin", "rb");
 
if (file==NULL) printf("hiba a file megnyitasakor\n");
 
else fclose(file);
 
</pre>
 
  
== Írjon C nyelvű kódrészletet, amely az str karakter tömbben tárolt szöveget elküldi az s leíróval reprezentált kliens socketen keresztül! ==
+
Ha az oldalnak egy nagyobb részét (például fejléc, jobb hasáb, friss hírek blokk stb.) szeretnénk formázni, akkor használhatjuk a div (division) elemet. A div után alapértelmezés szerint bekerül egy sortörés, ezzel is jelezve, hogy ott egy újabb nagyobb blokk következik. A div szinte bármilyen HTML elemnek lehet a szülő eleme, így akár bekezdéseket vagy további div és span elemeket is tartalmazhat. A div szigorúbb, például spanbe vagy p elembe nem ágyazhatjuk.
  
<pre>
+
== Mire szolgálnak a CSS szelektorok? ==
addr.sin_family = AF_INET;
 
addr.sin_addr.s_addr = inet_addr("152.66.28.13"); /* a neptun címe :D */
 
addr.sin_port = htons(80);
 
  
x=connect(s, (struct sockaddr *)addr, sizeof(addr));
+
Meg kell adnunk, hogy egy CSS-ben definiált stílus pontosan melyik HTML elemre vagy elemekre vonatkozzon. Erre szolgálnak a CSS szelektorok (CSS selectors). A négy (*, elem, id, class) a leggyakrabban használt szelektor típus.
if (x<0) {
 
printf("kapcsolodasi hiba\n");
 
return 1;
 
}
 
  
x=send(s, (const void *)str, strlen(str), 0);
+
== Hogyan lehet CSS-ben előírni, hogy minden főcím piros színnel jelenjen meg? ==
  
/* Figyelem! A sizeof() fordítási időben értékelődik ki, ezért a pointer méretét írja be, nem a tömbhosszát */
+
h1 {color: red;}
 
if (x<0) printf("irasi hiba\n");
 
else printf("%d byte elkuldve\n", x);
 
</pre>
 
  
[[Category:Villanyalap]]
+
[[Kategória:Villamosmérnök]]

A lap jelenlegi, 2014. március 13., 16:21-kori változata

← Vissza az előző oldalra – Informatika 2

Ez az oldal az Informatika 2 című tárgy - HTML, CSS - böngészők programozása labor beugrókérdéseinek kidolgozását tartalmazza.
Az aktuális segédlet az aktuális (ajánlott) beugrókérdésekkel bejelentkezés után megtalálható a tanszéki honlapon a 2. gyakorlat segédlet címen (2013 tavasz).

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.

FONTOS: Ezektől eltérő kérdések is előfordulhatnak a beugrókban! Ezek csak irányadó kérdések, így ajánlott a segédlet alapos áttanulmányozása is.

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

Mire szolgál a HTML?

  • A dokumentum ne csak egyszerű szöveg legyen, hanem a tartalmat hordozó részt lássuk el címkékkel, melyek kiegészítő információkat (metaadatokat) adnak a szöveghez. Hasonló célú egyszerűbb jelöléseket a nyomdatechnikában már korábban is használtak (pl. egyszeres aláhúzás: dőlt, kettős aláhúzás: félkövér betű), itt a nagy újdonság a formalizmus és címkekészlet megalkotása volt, így jött létre a HTML mint jelölőnyelv (markup language).
  • A dokumentumok „mutassanak túl” önmagukon, azaz olyan hiperszövegeket (hypertext) tartalmazzanak, amelyek bármely részlete egy másik dokumentumra hivatkozhat. Ez az, amit ma úgy ismerünk, hogy egy weboldalon rákattinthatunk hivatkozásokra (linkekre), aminek hatására betöltődik egy másik weboldal.

Hogyan lehet egy dokumentumban sortöréseket megadni?

Ha egy HTML dokumentumban rendezni, formázni szeretnénk a szöveget, akkor ezt kizárólag HTML elemekkel tehetjük meg. Azaz hiába teszünk sortöréseket a HTML kódba, vagy hiába teszünk egymás után sok szóközt, a böngészőben csak egyetlen szóköz fog megjelenni helyette. Ha másként szeretnénk, erre szolgáló címkéket kell használnunk.

Egy hosszabb szöveget a p (paragraph) elem segítségével tagolhatunk bekezdésekre. Példa: < p> Első bekezdés

Ha egy bekezdésen belül új sort szeretnénk kezdeni, akkor azt a br (break) elemmel tehetjük meg. A br elem önállóan áll, nincs sem záró címkéje, sem pedig attribútumai, mindössze ennyi: < br />

Hogyan lehet egy dokumentumban címsorokat megadni?

A bekezdések közé címsorokat tehetünk, méghozzá hat méretben, melyeket a h1..h6 (heading) elemekkel jelölhetünk:

< h1>Főcím
< h2>Alcím

Hogyan lehet egy dokumentumba képeket ágyazni?

Az a elemen belül tetszőleges elem állhat, például ha egy képet szeretnénk kattinthatóvá tenni, akkor a kép megjelenítésére szolgáló img elemet tehetjük a link belsejébe:

<a href="http://www.bme.hu">
<img src="logo.gif" />
</a>

Hogyan lehet egy dokumentumban 2x3 méretű táblázatot megadni?

   <table summary="2x3-as táblázat">
      <thead>
         <tr>
            <th>1. oszlop fejléce</th>
            <th>2. oszlop fejléce</th>
            <th>3. oszlop fejléce</th>
         </tr>
      </thead>
      <tfoot>
         <tr>
            <td>1. oszlop lábléce</td>
            <td>2. oszlop lábléce</td>
            <td>3. oszlop lábléce</td>
         </tr>
      </tfoot>
      <tbody>
         <tr>
            <td>1. sor 1. adat</td>
            <td>1. sor 2. adat</td>
            <td>1. sor 3. adat</td>
         </tr>
         <tr>
            <td>2. sor 1. adat</td>
            <td>2. sor 2. adat</td>
            <td>2. sor 3. adat</td>
         </tr>
      </tbody>
   </table>

Mire szolgál a CSS?

Cascading Style Sheets stíluslapokkal dolgozva a beállításokat attribútum név – attribútum érték párosokkal adhatjuk meg. Az attribútumok neve és értéktartománya rögzített, és gyakorlatilag az összes megjelenéssel kapcsolatos területet (méretek, távolságok, színek, pozíciók stb.) lefedik, így az ide vonatkozó HTML attribútumokra már nincs is szükség. Ezáltal úgy lehet formázni az oldalt, hogy maga a HTML kód áttekinthető és egyszerű marad, hiszen a formázási attribútumokat egy külön CSS fájl tartalmazza.

Milyen lehetőségeket ismer egy böngészőben megjelenítendő szöveg formázására?

  • A HTML-ben egyes elemek tartalmazhatnak megjelenítésre vonatkozó attribútumokat (pl. align: igazítás), vagy például a font elemmel megadhatjuk a betűtípust, betűméretet és a színt.
  • Használhatunk úgynevezett inline stílust, ekkor a formázandó HTML elem style attribútumába kell írnunk a CSS attribútumokat és azok értékeit.
  • Egy másik lehetőség a CSS kód elhelyezésére a stílus blokk használata. Ebben az esetben tipikusan a HTML oldal head elemében hozunk létre egy style elemet, és oda írjuk a CSS kódunkat.
  • A harmadik megoldás, amikor nem a HTML fájlban helyezzük el a CSS kódot, hanem egy külső fájlban, aminek tipikusan a .css kiterjesztést szoktuk adni. Ekkor a HTML oldal head elemében egy link elemmel hivatkozhatunk az oldalhoz tartozó stíluslapra.

Mi a probléma a táblázatokra épülő oldalelrendezésekkel?

A táblázat alapú oldalelrendezés nagyon sok HTML kódot eredményez, mely nemcsak az oldal letöltését és betöltését lassítja, hanem ráadásul nagyon nehezen átlátható, azaz nehezen tudunk később belejavítani.

Mire szolgál a div elem?

Ha az oldalnak egy nagyobb részét (például fejléc, jobb hasáb, friss hírek blokk stb.) szeretnénk formázni, akkor használhatjuk a div (division) elemet. A div után alapértelmezés szerint bekerül egy sortörés, ezzel is jelezve, hogy ott egy újabb nagyobb blokk következik. A div szinte bármilyen HTML elemnek lehet a szülő eleme, így akár bekezdéseket vagy további div és span elemeket is tartalmazhat. A div szigorúbb, például spanbe vagy p elembe nem ágyazhatjuk.

Mire szolgálnak a CSS szelektorok?

Meg kell adnunk, hogy egy CSS-ben definiált stílus pontosan melyik HTML elemre vagy elemekre vonatkozzon. Erre szolgálnak a CSS szelektorok (CSS selectors). A négy (*, elem, id, class) a leggyakrabban használt szelektor típus.

Hogyan lehet CSS-ben előírni, hogy minden főcím piros színnel jelenjen meg?

h1 {color: red;}