Web technológiák Barabás Péter, Általános Informatikai Tanszék, Miskolci Egyetem Barabás Péter Web technológiák 1
Témakörök 1 2 HTTP/1.1 HTML4 3 Thi CSS is an example text. Go ahead and replace it 4 JavaScript, jquery 5 PHP, PHP-MySQL, PHP Frameworks 6 AJAX 7 WEB2.0 Barabás Péter Web technológiák 2
Internet, TCP/IP és az OSI modell INTERNET: hálózatok hálózata Kommunikáció protokollok TCP: Küldés: Adat csomagok + sorszám + hibaellenőrző információk Fogadás: Hibaellenőrzés összeállítás IP: csomag továbbítása két pont között ROUTER-ek Barabás Péter Web technológiák 3
IPv4, IPv6 IP cím: gépazonosítás Egyedi IPv4: 4 byte 32 bit 2 32 db számítógép azonosítása Elfogyott!!! IPv6: 128 bit Fix 64 bites prefixek (hálózati maszk) 2 rész: 64 bit (al-)hálózati rész + 64 bit hosztrész Barabás Péter Web technológiák 4
DNS DNS: Domain Name System Domaineket (tartományokat) kezelő, a világon több ezer szerverre elosztott hierarchikus adatbázis-rendszer. Fő felhasználási területe: a domainnév IP-cím Domain-enként névkiszolgáló Hálózat = domainek és aldomainek Pl. java.sun.com (com: domain, sun: aldomain, java: számítógép neve) Barabás Péter Web technológiák 5
WWW World Wide Web Hatalmas információhalmaz Megalkotója: Tim Berners-Lee (1989. CERN) Távoli kutatók kommunikációja Első használat 1992. Genf (CERN webhelyhez hozzáférés) Manapság: Üzleti világ, reklám, online rádió, tv Webáruházak, internet banking Kommunkáció Hypertext: Speciális tartalmak: link, audió, videó Web pages, web sites Web 2.0 Barabás Péter Web technológiák 6
URI, URL, URN URL: Uniform Resource Locator Erőforrások elérése Pl: http://www.w3.org/hypertext/project.html URI: Uniform Resource Identifier Általános formátum (<scheme>:<identifier>) URN Uniform Resource Name A resource léte (helye) nem szükséges Pl: urn:isbn:0451450523 Barabás Péter Web technológiák 7
Böngésző (browser) Weboldalak elérése Controller Koordináció A böngésző központja Method Kliens alkalmazás (HTTP) Dokumentum hozzáférés Interpreter Dokumentum megjelenítés Barabás Péter Web technológiák 8
HTTP HyperText Transport Protocol Adattovábbítás web szerverek és web kliensek között Alkalmazás rétegbeli protokoll Jellemzők: Egyszerű Gyors Állapot nélküli Barabás Péter Web technológiák 9
HTTP II. Http://website HTTP kérés HTTP válasz Weboldal Barabás Péter Web technológiák 10
Közvetítők (Intermediaries) Proxy Üzenet továbbítás Helyi szabályok Üzenet módosítása Használat: Biztonság Cache-elés Gateway (reverse proxy) A kéréseket a szerver protokolljára fordítja Használat: Pl. load balancing (terhelésmegosztás) A kliens nem tudja, hogy a gateway nem a célszerver Tunnel Üzenetek nem változnak A kapcsolatok lezárása után a tunnel is lezárul Használat: Amikor pl. a szerver nem elérhető (firewall rules, proxy) Barabás Péter Web technológiák 11
HTTP tranzakció 1. Kapcsolat felépítés Általában a 80-as TCP porton, de tetszőlegesen felüldefiniálható 2. Kliens kérést küld a szerver felé 3. Szerver fogadja a kérést, feldolgozza, választ generál és elküldi a kliens felé 4. Mindkét fél bontja a kapcsolatot. Barabás Péter Web technológiák 12
Perzisztens kapcsolatok HTTP/1.0: Connection: keep-alive HTTP/1.1: alapértelmezett Nem záródik le a kérés teljesítésével a kapcsolat Több kérés teljesíthető egy kapcsolat kiépítésével Előnyök: CPU idő megmentése a routerek-en és a host-okon Kevesebb memóriaiény a TCP control blokkoknak A HTTP kérések és válaszok párhuzamosíthatóak ( pipelining ) Hálózati forgalom csökken Késleltetés is kisebb (kimarad az ismételt handshake) Hiba esetén nem kell zárni a kapcsolatot Barabás Péter Web technológiák 13
Perzisztens kapcsolatok II. Kapcsolat zárása: A szerver zárja a kapcsolatot: Connection: close Content-Length beállítása Transfer-Encoding: chunked A chunk mérete = 0 Barabás Péter Web technológiák 14
Pipelining Kliens több kérést küld a szerver felé Folyamatos üzenetként Nem várja meg a következővel, hogy az előzőnek megérkezzen a válasza A szervernek sorrendhelyesen kell válaszolni a kérésekre Barabás Péter Web technológiák 15
Üzenet formátumok HTTP üzenetek szerkezete: Kezdő sor 0 v. több header sor Üres sor (CRLF) Opcionális üzenet test Egy fájl Lekérdezés paraméterei Lekérdezés kimenete Barabás Péter Web technológiák 16
Általános header sorok Kérésben és válaszban is szerepelhetnek Cache-Control Connection Date Pragma Trailer Transfer-Encoding Upgrade Via Warning Barabás Péter Web technológiák 17
Dátum formátum RFC 1123 Sun, 06 Nov 1994 08:49:37 GMT Régebbi formátumok: RFC 850 Sunday, 06-Nov-94 08:49:37 GMT ANSI C asctime() formátum Sun Nov 6 08:49:37 1994 Barabás Péter Web technológiák 18
HTTP Request (kérés) Kezdő sor Kezdő sor: 3 rész SP-vel elválasztva Method neve Az erőforrás lokális útvonala HTTP verzió Példa: GET /path/to/file/index.html HTTP/1.1 Barabás Péter Web technológiák 19
HTTP Request Példa Method Fájlnév Verzió GET /msaleh/index.html HTTP/1.1 Host: staff.ifm.ac.tz Connection: close Accept: text/xml,text/html,text/plain,image/png,*/* Accept-Language: en-gb,en User-Agent: Mozilla/4.0 (compatible;msie 6.0;Windows NT 5.0) Accept-Charset: ISO-8859-1,utf-8;q=0.7,* If-Modified-Since: Mon, 18 Sep 2006 22:57:19 GMT Referer: http://web-sniffer.net Adat (body) Üres sor Header sorok Barabás Péter Web technológiák 20
HTTP Request Metódusok Biztonságos ( safe ) metódusok: Csak kérésre valók GET HEAD OPTIONS TRACE Nem biztonságos ( unsafe ) metódusok: Mellékhatásaik lehetnek: POST PUT DELETE Barabás Péter Web technológiák 21
HTTP Request OPTIONS A szerver képességeinek v. az erőforrás követelményeinek lekérése erőforrás kérés nélkül A válasz nem cache-elhető Ha a request-target ( * ), akkor a kérés általánosan a szerverre vonatkozik, nem pedig egy erőforrásra A szerver v. proxy képességeit tesztelhetjük Ha a request-target egy erőforrás, akkor 200-as válasz header-je tartalmazza a feature-öket Allow, extensions, etc. Content-Length: 0, ha nincs üzenet test Max-Forwards header field Maximum hány csomóponton (proxy) továbbítható a kérés Barabás Péter Web technológiák 22
HTTP Request GET Információ kérésre használatos Conditional GET If-Modified-Since, If-Unmodified-Since If-Match, If-None-Match If-Range Csak akkor fut le, ha a fenti feltételek teljesülnek Hálózati forgalom csökkentése Cache-ből veszi a szükséges tartalmat Partial GET : Range header mező A tartalomnak csak egy részét kell lekérni A többit cache-ből veszi Barabás Péter Web technológiák 23
HTTP Request HEAD Hasonló a GET-hez A válasz nem tartalmaz üzenettestet Meta-információk lekérdezésére használjuk Linkek validálása Linkek elérhetősége Cache-elhető Ha eltér a cache-ben lévőtől, akkor a teljes cache bejegyzés (törzzsel együtt) érvénytelen lesz Barabás Péter Web technológiák 24
HTTP Request POST Tartalom feltöltésre szolgál (nem fájl upload) Form adatok feltöltése Fórumok, vendégkönyv, wiki, stb. Adatbázis DML műveletek Válasz: 200: van üzenettest 204: nincs üzenettest 201: erőforrás létrejött a szerveren A válasz nem cache-elhető Kivéve, ha a Cache-Control v. Expires definiáltak 303 (See Other): a felhasználó irányítása a cache-elt erőforrásra Barabás Péter Web technológiák 25
HTTP Request PUT Erőforrás feltöltésre szolgál (file upload) Ha már létezik a szerveren, akkor módosul Válasz: 201, ha új erőforrás jött létre 200 v. 204: ha módosult már meglévő erőforrás Hiba esetén a megfelelő hibakód 501: ha a szerver nem tudja értelmezni a Content-* header mezőket Barabás Péter Web technológiák 26
HTTP Request DELETE Erőforrás törlésére használhatjuk A szerver-t kéri a kliens a törlésre A törlés nem garantált Még ha a státusz kód erre utal, akkor sem Válasz: 200: üzenettest létezik a státusz leírással 202: ha a törlés még nem valósult meg 204: ha a törlés már végbement, de a test üres Barabás Péter Web technológiák 27
HTTP Request TRACE, CONNECT A kérés útvonalának vizsgálatára szolgál A kliens megvizsgálhatja, hogy a kérés lánc másik vége mit kapott Via header mező Max-Forwards: limitálható a kérés lánc hossza A body tartalmazza a választ Message/http formátumú CONNECT: Proxy-k számára fentartott Dinamikusan válthat tunnel módra (SSL tunnel) Barabás Péter Web technológiák 28
HTTP Request Header sorok Accept Host Proxy-Authorization Accept-Charset If-Match Range Accept-Encoding If-Modified-Since Referer Accept-Language If-None-Match TE Authorization If-Range User-Agent Expect If-Unmodified-Since From Max-Forwards Barabás Péter Web technológiák 29
HTTP Response Kezdő sor: státusz sor HTTP verzió Státusz kód (számítógépek számára) Státusz szövege (emberek számára) Példák: HTTP/1.0 200 OK or HTTP/1.0 404 Not Found Barabás Péter Web technológiák 30
HTTP Response Státusz kódok 1xx: Információs jellegű Kód Szöveg 100 Continue 101 Switching Protocols Barabás Péter Web technológiák 31
HTTP Response Státusz kódok 2xx: Sikeresség Kód Szöveg 200 OK 201 Created 202 Accepted 203 Non-Authorative Information 204 No Content 205 Reset Content 206 Partial Content Barabás Péter Web technológiák 32
HTTP Response Státusz kódok 3xx: Átirányított átvitel esetén Kód Szöveg 300 Multiple Choices 301 Moved Permanenty 302 Found 303 See Other 304 Not Modified 305 Use Proxy 307 Temporary Redirect Barabás Péter Web technológiák 33
HTTP Response Státusz kódok 4xx: Kliens hiba Kód Szöveg Kód Szöveg 400 Bad Request 409 Conflict 401 Unauthorized 410 Gone 402 Payment Required 411 Length Required 403 Forbidden 412 Precondition Failed 404 Not Found 413 Request Entity Too Large 405 Method Not Allowed 414 URI Too Long 406 Not Acceptable 415 Unsupported Media Type 407 Proxy Authentication Required 416 Requested range not satisfiable 408 Request Time-out 417 Expectation Failed Barabás Péter Web technológiák 34
HTTP Response Státusz kódok 5xx: Szerver hiba Kód Szöveg 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Time-out 505 HTTP Version not supported Barabás Péter Web technológiák 35
HTTP Response VII. Header sorok Accept-Ranges Age Allow ETag Location Proxy-Authenticate Retry-After Server Vary WWW-Authenticate Barabás Péter Web technológiák 36
Gyorsítótárazás (caching) Hatékonyság miatt Vannak erőforrások, melyek sokáig v. egyáltalán nem változnak (pl. céglogó) Felesleges újra letölteni Böngésző, proxy tárolhatja Hálózati forgalom, sávszélesség kihasználás lecsökken Szerverek terhelése is csökkenthető Cache-Control, Last-Modified, Expires Barabás Péter Web technológiák 37
Gyorsítótárazás (caching) II. Gyorítótárazás kikapcsolása Cache-Control: no-cache Gyorsítótárazás engedélyezése Nincs Cache-Control beállítva: Bármilyen cache-ben tárolódhat a tartalom Private: csak lokálisan, a böngésző cache-ben tárolódhat a tartalom Public: publikus cache-ben is tárolódhat a tartalom (shared proxies) Last-Modified: Az erőforrás utolsó módosítási dátuma Pl.: Last-Modified: Wed, 15 Sep 2004 12:00:00 GMT Expires: Az erőforrás lejárati dátuma, amikortól már nem érvényes a tartalma Pl.: Expires: Sun, 17 Jan 2038 19:14:07 GMT A cache-elt tartalmaknál ezeket a mezőket elég ellenőrizni Barabás Péter Web technológiák 38
Köszönöm a figyelmet!