Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Fejlett Programozási Technikák 2.
14/1
2
Bilicki Vilmos bilickiv@inf.u-szeged.hu
Árpád tér 50.-es szoba 3411-es mellék
3
Követelmények, tudnivalók
Vizsga év végén 2 zárthelyi Jegyzet van (lesz) Weboldal lesz:
4
Miért érdekes a téma Nők Pénz Autók
5
Miért érdemes használni?
Vékony kliens technológia Elosztott rendszerek Platform független Elterjedt Sokoldalú
6
Tematika I. rész A World Wide Web alapjai A HTTP protokoll
Az SHTTP protokoll A TLS protokoll A HTML nyelv CSS Az XML nyelv WEBDAV WAP
7
II. rész Dinamikus tartalom CGI Szerver oldali programozás
Kliens oldali programozás Java
8
III. rész Web szerverek Apache Iplanet 3 rétegű architektúrák
Servlet engine-k
9
IV. rész Alkalmazás szerverek Weblogic iPlanet JRun J2eesdk
10
Bevezető Vannevar Bush:As we may think (1945)
Theodor Holm Nelson:Memex (hyprtext) CERN: HTML Átviteli protokol: HTTP
11
HTTP(Hyper Text Transfer Protocol)
Kliens-szerver modell Állapotmentes Alkalmazásszintű protokol Megbízható átviteli közegre épül Új fogalmak: Webszerver Proxy szerver
12
HTTP 1.1 Kapcsolatorientált Részletes proxy specifikáció 80-as port
URI (Universal Resource Identifier)
13
URI Rfc2396 <protokol>:<protokol specifikus rész>
<protokol>://<azonosítás><elérési-útvonal>?<Lekérdezés> US-ASCII Más karaterek: %
14
URL HTTP specifikus: URL (Universal Resource Locator)
http : // host [ : ] [ port ] [ abszolút-útvonal [ ? query ] ] Relatív útvonal
15
HTTP üzenetek Kérés (request) Válasz (response) kezdő sor fejléc sorok
üres sor az üzenet tartalma
16
Kérés üzenetek(kezdő sor)
GET OPTIONS POST HEAD TRACE
17
GET GET / HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/1.1 200 OK
Date: Thu, 13 Dec :55:37 GMT Server: Apache/ (Unix) PHP/4.0.6 Transfer-Encoding: chunked Content-Type: text/html 8a0 <HTML> <HEAD> <TITLE>Irinyi Kabinet</TITLE> </HEAD> <body... </ADDRESS> </BODY> </HTML>
18
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
19
HEAD HEAD /teszt/ HTTP/1.1 Host: wilma.cab.u-szeged.hu HTTP/1.1 200 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
20
POST POST /teszt/ HTTP/1.1 Host: wiliam.u-szeged.hu adat: research
21
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
22
Egyéb CONNECT DELETE PUT
23
Fejléc mezők Host If-Modified-Since User-Agent Adat: research …
24
Válasz üzenet Állapot mező Válasz fejléc mezők Erőforrás
erőforrás fejléc erőforrás tartalom
25
Állapot mezők 1xx – Információs 2xx – Siker 3xx – Átirányítás
4xx – Kliens oldali hiba 5xx – Szerver oldali hiba
26
Válasz fejléc WWW-Authenticate Age Cache-Control Expires Content-Type
27
MIME Text Plain Html Image Audio Video Application
28
Biztonság HTTP -> magas rendelkezésre állás Más szempontok:
adatok titkossága adatok megbízhatósága egyének azonosítása
29
Azonosítási eljárások
Basic Authentication Digest Authentication
30
Basic Authentication UID Password Realm
HTTP/ Authorization Required
31
Példa HTTP/1.1 401 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)
32
Hátrányok Nem biztonságos Használata mellőzendő, veszélyes
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
33
Digest Authentication
challenge-response nonce URI Idő Véletlen szám … Kivonatoló függvény (hash) MD5 Nehéz visszafejteni
34
A kérés paraméterei Challenge Domain Nonce Opaque Stale Algorithm
Qop-int
35
A válasz paraméterei username digest-URI message-qop cnonce
nonce-count response
36
message-qop Nincs Auth Auth-int A1 = username-value:realm-value:passwd
A2 = Method:digest-uri-value response = "KD(H(A1),nonce:H(A2))" Auth response = "KD(H(A1),nonce:nonce-count:cnonce:qop:H(A2))" Auth-int A2 = Method:digest-uri-value:H(entity-body)
37
Példa WWW-Authenticate: Digest realm="testrealm@host.com",
HTTP/ Unauthorized WWW-Authenticate: Digest qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41" Válasz: Authorization: Digest username="Mufasa", uri="/dir/index.html", qop=auth, nc= , cnonce="0a4f113b", response="6629fae49393a c4ef1",
38
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
39
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
40
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
41
Új megoldások Két megközelítési mód: Új réteg: Módosított HTTP TLS
SHTTP
42
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
43
SHTTP Hasonló üzenet mint a HTTP protokollnál: Kérés:
Secure * Secure-HTTP/1.4 Válasz: Secure-HTTP/ OK
44
TLS (Tranport Layer Security)
Új réteg bevezetése: Netscape SSL Microsoft PCT IETF TLS
45
TLS felosztása I. TLS Handshake Session identifier Peer certificate
Compression method Cipher spec Master secret Is resumable
46
TLS felosztása II. TLS Record Fragmentálás Tömörítés Tartalom védelem
Titkosítás
47
Kapcsolat felépítés Hello üzenetcsere Rejtjelezési paraméter csere
Bizonyítvány csere Főkulcs Adatcsere
48
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(<elem>) Böngésző elrejti a kódot Jelenleg HTML
49
Felépítés információ a HTML verziójáról fejrész (header) törzs (body)
50
Egy egyszerű HTML oldal
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" " <HTML> <head> <TITLE>Ez a fejléc</TITLE> </head> <body> <p>Hello világ! </body> </html>
51
Megjelenítve
52
DTD (document type declaration)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "
53
Fejléc (header) Általában nem jelenik meg a képernyőn
A dokumenturól és a kapcsolatról tartalmaz fontos információkat <title> <meta> <link>
54
Példa meta fejléc <META http-equiv="Cache-Control" content="no-cache"> <META http-equiv="Content-Type" content="text/html; charset=ISO "> <META name="Author" content="Bilicki Vilmos"> <META name="keywords" lang="hu" content="html, css, jegyzet">
55
Törzs <body> Célszerű a formázásra css-t alkalmazni Background
Text Link Vlink Alink Célszerű a formázásra css-t alkalmazni
56
Logikai felépítést definiáló elemek
Címsor elemek(<h1>,…) Szövegrészek csoportosítása <div> <span> Ennyi! az XML-t erre fejlesztették ki
57
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU"
" <HTML> <head> <TITLE>Bemutatkozás</TITLE> </HEAD> <body> <h1 id="munkatársak">Munkatársak</h1> <DIV id="beosztottak"> Cégünk munkatársai közé tartozik <SPAN id="portás">Kovács Lajos</SPAN> és <SPAN class="titkár">Nagy Péter</SPAN>. </DIV> <DIV id="kutatók"> A kutató osztály munkatársai <SPAN id="vegyészet">Kovács János</SPAN>, és <SPAN id="számítástechnika">Nagy Szabolcs</SPAN>. </body> </html>
58
Képernyőn
59
Szöveg formázása A beírt szöveg elveszíti formázását.
Szöveg formázás megtartása (<pre>) Bekezdések (<p>) Sortörés (<br>) Nonbreakable space ( ) Kiemelés (<em>) Vastag betű (<strong>) Idézet (<cite>) Felső index (<sup>) Alsó index (sub)
60
Listák Számozatlan(<ul>) Számozott (<ol>)
Az elem <li> Definició (<dl>) Az elem <dt> vagy <dd>
61
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU"
" <HTML> <head> <title>Listák</title> </HEAD> <body> <ul> <li>alma <li>körte <li>dió </ul> <ol> <dl> <dt>alma <dd>Az alma egyik legfotosabb vitaminforrásunk. <dt>dió <dd>A dió kemény gyümölcs </dl> </body> </html>
62
Képernyőn
63
Táblázatok Egyik legfontosabb pozicionáló elem <table>
<tr> <td> <th> <thead> <tbody> <tfoot> <caption>
64
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU"
" <html><head><title>Táblázatok</title></head> <body> <table border="1"> <caption>Minta táblázat</caption> <tr> <th>1. oszlop</th> <th>2. oszlop</th> <th>3. oszlop</th> </tr> <td>1. sor, 1. cella</td> <td>1. sor, 2. cella</td> <td>1. sor, 3. cella</td> <td>2. sor, 1. cella</td> <td>2. sor, 2. cella</td> <td>2. sor, 3. cella</td> </table> </body> </html>
65
Képernyő
66
Oszlop, sor formázás colspan rowspan colgroup col
67
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU"
" <html> <head> <title>Táblázatok</title> </head> <body> <table border="1"> <caption>Minta táblázat</caption> <tr> <th colspan="2">1., 2. oszlop</th> <th>3. oszlop</th> </tr> <td>1. sor, 1. cella</td> <td>1. sor, 2. cella</td> <td rowspan="2"> 1. sor, 3. cella, 2. sor, 3. cella </td> <td>2. sor, 1. cella</td> <td>2. sor, 2. cella</td> </table> </body> </html>
68
Képernyő
69
Hivatkozások <link> <a href=“elso.html#1”>
<a name=“1”> <id=“1”>
70
Keretek <frameset> <frame> target
71
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
" <html> <head> <title>Több keretes példa</title> </head> <frameset rows="10%,*" > <frame src="a.html" name="a"> <frameset cols="20%,*"> <frame src="b.html" name="b"> <frame src="c.html" name="c" > </frameset> </html>
72
Képernyő
73
Objektumok,képek, appletek
<img> <map><area> <iframe> <object> classid codebase codetype Egymásba ágyazás
74
Példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU"
" </html> <head> <title>Képek, térképek</title> </head> <table> <tr><td> <object data="menu.x" type="x/x" height="50" width="50"> <img src="../../graphics/menu.png" alt="menük" usemap="#terkep" border="0"> </object> </td> </tr> <tr><td><iframe src="12.html"> </table> <map name="terkep"> <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"> </map> </body>
75
Képernyő
76
Űrlapok <form> action method get post name
77
Elemek <input> text password file hidden radio checkbox button
submit reset
78
Elemek <select> <textarea> size multiple name option rows
cols
79
Példa I. rész <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU"
" </html> <head> <title>Kérdoiv</title> </head> <body> <form action="ertekelo.php" method="post" name="form1"> <table> <tr><td>Vezetéknév:</td> <td><input type="text" name="vnev" size="20" maxlength="50"></td> </tr> <tr><td>Keresztnév:</td> <td><input type="text" name="knev" size="20" maxlength="50"></td> <tr><td>Nem:</td> <td><input type="radio" name="nem" value="f" checked> <input type="radio" name="nem" value="n"></td>
80
Példa II. rész <tr><td>Osztály:</td>
<td><select name="osztaly"> <option value="a">A osztály</option> <option value="b" selected>B osztály</option> </select> </td> </tr> <tr><td colspan="2" align="left"> Leírás: <tr><td colspan="2" align="center"> <textarea name="leiras" cols="30" rows="5">Ide kell beírni a leírást </textarea> <input type="submit" value="Elküld"> </table> </form> </body> </html>
81
Képernyő
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.