Webes technológiák 10/1
Bilicki Vilmos Árpád tér 50.-es szoba 3411-es mellék
Miért érdemes használni? Vékony kliens technológia Elosztott rendszerek Platform független Elterjedt Sokoldalú
Tematika I. rész A World Wide Web alapjai A HTTP protokoll és utódai A HTML nyelv CSS Az XML nyelv WAP
Tematika II. rész Dinamikus tartalom Kliens oldali programozás JavaScript Java Applet Java Szerver oldali programozás CGI PHP ASP JSP XSP
A mai előadás tartalma HTTP TLS SHTTP HTML
HTTP (Hyper Text Transfer Protocol) Kliens-szerver modell Állapotmentes Alkalmazásszintű protokoll Megbízható átviteli közegre épül Új fogalmak: Webszerver Proxy szerver
HTTP 1.1 Kapcsolatorientált Részletes proxy specifikáció 80-as port URI (Universal Resource Identifier)
URI Rfc2396 : :// ? US-ASCII Más karaterek: %
URL HTTP specifikus: URL (Universal Resource Locator) http : // host [ : ] [ port ] [ abszolút-útvonal [ ? query ] ] Relatív útvonal
HTTP üzenetek Kérés (request) Válasz (response) kezdő sor fejléc sorok üres sor az üzenet tartalma
Kérés üzenetek(kezdő sor) GET OPTIONS POST HEAD TRACE
GET GET / HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/ OK Date: Thu, 13 Dec :55:37 GMT Server: Apache/ (Unix) PHP/4.0.6 Transfer-Encoding: chunked Content-Type: text/html 8a0 Irinyi Kabinet <body...
OPTIONS OPTIONS /cgi-bin/szotarE HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/ OK Date: Mon, 17 Dec :05:54 GMT Server: Apache/ (Unix) PHP/4.0.6 Content-Length: 0 Allow: GET, HEAD, POST, OPTIONS, TRACE
HEAD HEAD /teszt/ HTTP/1.1 Host: wilma.cab.u-szeged.hu HTTP/ OK Server: Microsoft-IIS/5.0 Cache-Control: max-age=86400 Expires: Tue, 18 Dec :47:33 GMT Content-Location: Date: Mon, 17 Dec :47:33 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Mon, 17 Dec :03:32 GMT ETag: "fc50cd9c387c11:88e" Content-Length: 83
POST POST /teszt/ HTTP/1.1 Host: wiliam.u-szeged.hu adat: research
TRACE TRACE / HTTP/1.1 Host: wiliam.u-szeged.hu Adat: research HTTP/ OK Server: Netscape-Enterprise/6.0 Date: Sun, 23 Dec :49:45 GMT Content-type: message/http Content-length: 62 TRACE / HTTP/1.1 Host: wiliam.u-szeged.hu Adat: research
Egyéb CONNECT DELETE PUT
Fejléc mezők Host If-Modified-Since User-Agent Adat: research …
Válasz üzenet Állapot mező Válasz fejléc mezők Erőforrás erőforrás fejléc erőforrás tartalom
Állapot mezők 1xx – Információs 2xx – Siker 3xx – Átirányítás 4xx – Kliens oldali hiba 5xx – Szerver oldali hiba
Válasz fejléc WWW-Authenticate Age Cache-Control Expires Content-Type
1. Feladat Csatlakozzunk a gép 80-as portjára és próbáljuk lekérni a szótár keresést tartalmazó web oldaltwww.cab.u-szeged.hu
MIME Text Plain Html Image Audio Video Application
Biztonság HTTP -> magas rendelkezésre állás Más szempontok: adatok titkossága adatok megbízhatósága egyének azonosítása
Azonosítási eljárások Basic Authentication Digest Authentication
Basic Authentication UID Password Realm HTTP/ Authorization Required
Példa HTTP/ Authorization Required Date: Fri, 28 Dec :24:32 GMT Server: Apache/ (Unix) PHP/4.0.6 X-Powered-By: PHP/4.0.6 WWW-Authenticate: Basic realm="My Realm" Transfer-Encoding: chunked Content-Type: text/html Authorization: Basic base64(user:pass)
Hátrányok Nem biztonságos Lehallgatható Nem titkosított Nincs megoldva a jelszó elosztása Használata mellőzendő, veszélyes Ha mégis akkor: Csak generált jelszavakkal szabad
Digest Authentication challenge-response nonce URI Idő Véletlen szám … Kivonatoló függvény (hash) MD5 Nehéz visszafejteni
A kérés paraméterei Challenge Domain Nonce Opaque Stale Algorithm Qop-int
A válasz paraméterei username digest-URI message-qop cnonce nonce-count response
message-qop Nincs A1 = username-value:realm-value:passwd A2 = Method:digest-uri-value response = "KD(H(A1),nonce:H(A2))" Auth A1 = username-value:realm-value:passwd A2 = Method:digest-uri-value response = "KD(H(A1),nonce:nonce-count:cnonce:qop:H(A2))" Auth-int A1 = username-value:realm-value:passwd A2 = Method:digest-uri-value:H(entity-body) response = "KD(H(A1),nonce:nonce-count:cnonce:qop:H(A2))"
Példa HTTP/ Unauthorized WWW-Authenticate: Digest qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41" Válasz: Authorization: Digest username="Mufasa", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", uri="/dir/index.html", qop=auth, nc= , cnonce="0a4f113b", response="6629fae49393a c4ef1", opaque="5ccc069c403ebaf9f0171e9517f40e41"
Előnyök Titkosított jelszó Szótáras támadás védhető(cnonce) Megvéd a replay támadásoktól Biztosít bizonyos adatbiztonságot
Hátrányok Nem mond semmit a jelszó kiosztásáról Nincs titkosítva a tartalom Limitált integritás védelem A nonce használatának teljesítménybeni korlátai vannak
Felhasznált technológia Szimmetrikus kulcsú titkosítás Gyors Probléma a közös kulcs eljuttatása Aszimmetrikus (nyilvános) kulcsú titkosítás Lassú Nem jelent problémát a kulcs publikálása Digitális Aláírás Digitális Bizonyítvány
Új megoldások Két megközelítési mód: Új réteg: TLS Módosított HTTP SHTTP
Felülről kompatibilis a HTTP protokollal Üzenetek becsomagolása CMS,MOSS Digitális aláírás MAC nonce Kulcssere és titkosítás Üzenet integritás és küldő azonosítás Aktualitás ellenőrzése Sok titkosító algoritmus
SHTTP Hasonló üzenet mint a HTTP protokollnál: Kérés: Secure * Secure-HTTP/1.4 Válasz: Secure-HTTP/ OK
TLS (Tranport Layer Security) Új réteg bevezetése: Netscape SSL Microsoft PCT IETF TLS
TLS felosztása I. TLS Handshake Session identifier Peer certificate Compression method Cipher spec Master secret Is resumable
TLS felosztása II. TLS Record Fragmentálás Tömörítés Tartalom védelem Titkosítás
Kapcsolat felépítés 1. Hello üzenetcsere 2. Rejtjelezési paraméter csere 3. Bizonyítvány csere 4. Főkulcs 5. Adatcsere
A HTML nyelv Megjelenítésre koncentrál Gépek számára nehezen értelmezhető Tag-ek segítségével épül fel a dokumentum( ) Böngésző elrejti a kódot Jelenleg HTML
Felépítés információ a HTML verziójáról fejrész (header) törzs (body)
Egy egyszerű HTML oldal <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" " Ez a fejléc Hello világ!
Megjelenítve
DTD (document type declaration) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "
Fejléc (header) Általában nem jelenik meg a képernyőn A dokumenturól és a kapcsolatról tartalmaz fontos információkat
Példa meta fejléc
Törzs Background Text Link Vlink Alink Célszerű a formázásra css-t alkalmazni
Logikai felépítést definiáló elemek Címsor elemek(,…) Szövegrészek csoportosítása Ennyi! az XML-t erre fejlesztették ki
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" " Bemutatkozás Munkatársak Cégünk munkatársai közé tartozik Kovács Lajos és Nagy Péter. A kutató osztály munkatársai Kovács János, és Nagy Szabolcs.
Képernyőn
Szöveg formázása A beírt szöveg elveszíti formázását. Szöveg formázás megtartása ( ) Bekezdések ( ) Sortörés ( ) Nonbreakable space ( ) Kiemelés ( ) Vastag betű ( ) Idézet ( ) Felső index ( ) Alsó index (sub)
Listák Számozatlan( ) Számozott ( ) Az elem Definició ( ) Az elem vagy
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" " Listák alma körte dió alma körte dió alma Az alma egyik legfotosabb vitaminforrásunk. dió A dió kemény gyümölcs
Képernyőn
Táblázatok Egyik legfontosabb pozicionáló elem
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" " Táblázatok Minta táblázat 1. oszlop 2. oszlop 3. oszlop 1. sor, 1. cella 1. sor, 2. cella 1. sor, 3. cella 2. sor, 1. cella 2. sor, 2. cella 2. sor, 3. cella
Képernyő
Oszlop, sor formázás colspan rowspan colgroup col
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" " Táblázatok Minta táblázat 1., 2. oszlop 3. oszlop 1. sor, 1. cella 1. sor, 2. cella 1. sor, 3. cella, 2. sor, 3. cella 2. sor, 1. cella 2. sor, 2. cella
Képernyő
2. Feladat Hozzuk létre az alábbi táblázatot:
3. Feladat Hozzunk létre egy olyan web oldalt amely tartalmaz egy listát és az egész be van keretezve adott távolságra az oldal szélétől
Hivatkozások
Keretek target
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " Több keretes példa
Képernyő
4. Feladat Hozzunk létre egy olyan weboldalt mely 3 keretből áll és az egyes keretekben lévő menük segítségével tudjuk a másik keret tartalmát változtatni.
Objektumok,képek, appletek classid codebase codetype Egymásba ágyazás
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" " Képek, térképek <img src="../../graphics/menu.png" alt="menük" usemap="#terkep" border="0"> <area href="elsomenu.html" coords="30,50,39,31,110,31,110,50,30,50" shape="poly"> <area href="masodikmenu.html" coords="80,30,100,110" shape="rect">
Képernyő
5. Feladat Hozzunk létre egy olyan web oldalt mely tartalmazza az oldal alsó egy harmadában a weboldalt.
Űrlapok action method get post name
Elemek text password file hidden radio checkbox button submit reset
Elemek size multiple name option name rows cols
Példa I. rész <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" " Kérdoiv Vezetéknév: Keresztnév: Nem:
Példa II. rész Osztály: A osztály B osztály Leírás: <textarea name="leiras" cols="30" rows="5">Ide kell beírni a leírást
Képernyő
6. Feladat Hozzuk létre az alábbi web oldalt:
A következő előadás tartalma CSS XML XSLT