SlideShare a Scribd company logo
Programare Web Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/
Spatiul  W orld- W ide  W eb Arhitectura Detalii in  [PSW, 13-43] [TX, 11-28]
“ De la un anumit punct incolo,  nu mai exista cale de intoarcere.  Acela este punctul ce trebuie atins.” Franz Kafka
cuprins Internet : notiuni de baza & organizare  Spatiul World-Wide Web :  “definitii”, istorie, constituenti Adresarea resurselor Web:  identificatori uniformi de resurse  (URI) Protocolul HTTP   ( HyperText Transfer Protocol ) Privire de ansamblu
cuprins Internet Preliminarii Notiuni importante Servicii Organizare Maniere de adresare
Preliminarii Nevoia de comunicare Masini mecanice (sec.18) Masini cu aburi (sec.19) Colectare, prelucrare & distributie  de informatii (sec.20) Puncte de vedere: centru de calcul mamut (IBM ’60) PC-uri (’80) retele mondiale (’90) retele  wireless  (prezent) internet
Retea de calculatoare colectie  interconectata  de  calculatoare autonome Scop & utilizari ale retelelor: partajarea resurselor (fizice, logice, date) fiabilitate & reducerea costurilor mediu de comunicare intre oameni acces la informatii de la distanta divertisment interactiv internet
Nod : calculator al unei retele,  avind asociata o  adresa Resursa : programe, echipamente, date Comunicatie : modul de a schimba informatii  intre calculatoarele unei retele (via  canale ) Protocol : regulile prin care se realizeaza comunicatia Difuzare : trimiterea de informatii la mai multe calculatoare ( multicast ) sau la toate ( broadcast ) Pachet : modalitate de stocare a datelor internet | notiuni
Modelul client/server Server     entitate (hardware si/sau software) care ofera un set de servicii Client     entitate (hardware si/sau software)  care solicita servicii Serviciu     facilitate oferita de un server si solicitata de unul/mai multi clienti   Exemple: servicii de stocare (fisiere, baze de date,…), servicii de transmitere a postei, servicii  e-commerce  etc. internet | notiuni
Modelul client/server Un server poate oferi un serviciu  mai multor clienti (in mod concurent) Un server poate oferi  mai multe servicii simultan  Exemplu: stocare + e-mail + Web Serviciile se pot efectua cu confirmare sau nu a raspunsului (telefon  vs.  posta) Serverele si clientii “discuta” via  protocoale de comunicatie (FTP, HTTP,…) internet | notiuni
Dupa componenta: omogene & eterogene Dupa dispunere spatiala:  Multi-calculator LAN ( Local Area Network )  – camera, cladire, campus ( CAN –  Campus Area Network ) MAN ( Metropolitan Area Network )  – oras WAN ( Wide Area Network )  – tara, continent Internet  – planeta Conform transmisiei: retele cu difuzare  (un singur canal de comunicatie) retele  peer-to-peer  – punct-la-punct (conexiuni multiple intre perechi de masini) internet | tipuri de retele
Se bazeaza pe  stiva de protocoale TCP/IP : Nivelul de aplicatii  (SMTP – Simple Mail Transfer Protocol, FTP – File Transfer Protocol, HTTP – HyperText Transfer Protocol,…) Nivelul transport  (TCP – Transmission Control Protocol, UDP – User Datagram Protocol) Nivelul retea  (IP – Internet Protocol) Nivelul legatura de date  (ARP – Address Resolution Protocol, RARP – Reverse ARP) internet | protocoale
Categorii principale: Gazde   ( hosts ) – orice sistem computational conectat la Internet (comunicind via TCP/IP) Ruleaza aplicatii de inter-conectare Retele   ( networks ) – colectii de minim 2 gazde interconectate via o tehnologie de conectare fizica Arhitectura Internet este independenta de modul de conectare fizica (retelistica) Rutere   ( routers ) – dispozitive oferind conectivitatea intre retele individuale Dirijarea datelor se poate face software ori hardware internet | componente
Posta electronica (e-mail) Transfer de fisiere (FTP) Grupuri de stiri ( news ) Cautare de fisiere (Archie) Organizare de date (Gopher) Comunicatii inter-personale (IRC) Spatiul World-Wide Web (WWW) Mesagerie instantanee ( instant messanging ) Partajare de fisiere ( file sharing ) … internet | servicii
Coordonare ISOC ( Internet SOCiety ) IETF ( Internet Engineering Task Force ) Reglemententari Request For Comments  (RFC) Specifica arhitectura si standardele Internet internet | organizare
Moduri de adresare Adrese fizice (placa de retea) Ethernet:  00-13-02-6E-E0-E5 Adrese logice numerice IP (4 octeti):  193.231.30.225 IPv6 (16 octeti) Adrese logice simbolice  (DNS – Domain Name System) Domenii, nume de masina:  thor.info.uaic.ro Masina locala:  localhost  ( 127.0.0.1 ) internet | adresare
Domenii simbolice primare: .org  (organizatie) .gov  (guvernamental) .mil  (militar) .int  (organizatie internationala) .edu  (educational) .com  (comercial) .net  (intretinere retea/Internet) corespunzatoare statelor lumii:  .ro .uk .it de interes general:  .info .biz internet | adresare
Fiecare domeniu poate avea in jurisdictie sub-domenii: info.uaic.ro Un sub-domeniu poate include alte sub-domenii sau nume de masini Nume simbolice:  thor ,  fenrir ,… Alias -uri:  www    thor ,  ftp    thor  ( www.infoiasi.ro    thor.info.uaic.ro ) internet | adresare
internet | adresare
cuprins Spatiul WWW Definitii & caracterizare Adresarea resurselor via URI Protocolul HTTP Privire de ansamblu
world-wide web Web, WWW, “pinza de paianjen mondiala” S istem de distributie locala sau globala  a informatiilor hipermedia Serviciu Internet ( WWW    Internet ) Bazat pe  modelul client/server   si pe  hipertext CERN – 1989, Sir  Tim Berners-Lee   et al. “ Information Management: A Proposal ” http://www.w3.org/History/1989/proposal.html Functioneaza conform reglementarilor  Consortiului Web  (>500 membri):  www.w3.org
world-wide web Ideea:  integrarea unor sisteme informa t ionale disparate  i ntr-un mod unitar , fara  diferen t e   intre surse le  de date  Scopuri principale (Tim Berners-Lee): Independenta de dispozitiv Independenta de software Scalabilitatea Multimedia “ Anything can link to anything ”
world-wide web Resursele sint identificate prin  adresa  lor –  identificator uniform de resurse  ( URI ) Existenta unui  protocol  ( e.g. ,  HTTP )  pentru accesul la continutul resurselor Resursele (vazute ca  documente )  includ  marcaje  (adnotari) Marcajele contin  la rindul lor URI-uri Detalii:  www.w3.org/TR/webarch/ pagini Web
Relatiile dintre o resursa Web, adresa ei (URI) si reprezentarea structurata a resursei world-wide web Reprezentarea =  date propriu-zise  +  meta-date    (date despre date)
URI | definitie   Resursa  – “lucru” care poseda o identitate Identificator  – obiect care poate juca rolul unei resurse (secventa de caractere  avind o sintaxa precisa) Uniformitate  – se permite o interpretare semantica uniforma a mai multor conventii sintactice comune desemnind identificatori ai unor resurse eterogene URI    Uniform Resource Identifier  ( RFC 2396, 3986)
URI | componenta  URI = URL + URN URL ( Uniform Resource Locator ) identifica resursele prin reprezentarea mecanismului de accesare  (adresa de retea, domeniu simbolic) http:// www.infoiasi.ro/~busaco/teach/ mailto: [email_address] ftp:// ftp.funet.fi/pub/README.txt tel: +40232201090
URI | componenta  URI = URL + URN URN ( Uniform Resource Name ) identifica resursele prin nume,  intr-o forma persistenta, chiar daca  resursa este inaccesibila sau a disparut urn: infoiasi.ro:BookInfo urn: mozilla:package:communicator urn: schemas-microsoft-com:datatypes
URI | sintaxa & semantica   schema :// authority   path ? query http :// www.pinguin.info/cauta.php ? id=Tux Caractere rezervate:  ; / ? : @ & = + $ , Se codifica in baza 16 Schema se considera  case-insensitive
URI | sintaxa & semantica   URL-urile pot fi  absolute  sau  relative http://www.infoiasi.ro/~busaco/cv.html ../../csb.css “ Fragmente” dintr-un continut pot fi referite  prin  URIref  (referinte,  fragment identifiers ) URI # URIref web.html # laborator Identificarea unei resurse se poate face indirect ( e.g. ,  mailto:tux@pinguin.info  identifica o cutie postala Internet specificata prin schema  mailto )
URI | sintaxa   & semantica   O resursa Web poate fi identificata de unul sau mai multe URI-uri URI aliases  (de evitat) Utilizarea URI-urilor trebuie sa fie consistenta URI-urile trebuie considerate  opace   (nu trebuie “ghicit” tipul continutului inspectind URI-ul asociat resursei) Starea resursei poate evolua in timp,  dar URI-ul asociat ei nu
IRI IRI = Internationalized Resource Identifier  (RFC 3987) Complementar URI-ului Permite folosirea unor caractere  din seturi de caractere mai largi decit ASCII  (de exemplu, Unicode) Exemplu:  http://color.org/ros&#xE9  este identic cu URI-ul  http://color.org/ros&#233  (in HTML/XML) sau  http://color.org/ros&#xE9  (in XML) si poate fi reprezentat vizual prin  http://color.org/rosé
http | caracterizare HyperText Transfer Protocol Bazat pe TCP/IP Protocol fiabil, de tip cerere/raspuns HTTP/0.9, HTTP/1.0,  HTTP/1.1 Port standard de acces: 80 Arhitectura:  Server Web  (daemon HTTP –  httpd ) Apache, MS Internet Information Services etc. Client Web  (navigator,  browser , robot,…) Netscape, Mozilla (Firefox), Internet Explorer, Opera, wget, Teleport, RSS Reader, iTunes,…
http | caracterizare Cererea si raspunsul Accesarea (eventual, modificarea) reprezentarii resursei via URI-ul asociat
http | termeni Mesaj  – unitatea de baza a unei comunicatii HTTP (cerere sau raspuns) Intermediar Proxy  – cu rol atit de server, cit si de client  Poarta  – intermediar care ascunde serverul  de origine, clientul nestiind acest lucru Tunel  – cu rol de retransmitere  (eventual, criptata) a mesajului Cache  – depozit local de stocare  (in memorie, pe disc) a mesajelor (datelor)  la nivel de server/client
http | mesaje Mesaj HTTP = antet + corp Antet = multime de cimpuri Message-header ::= field-name “ : ” [ field-value ]  CRLF Cerere HTTP: Request ::= Method Request-URI ProtocolVersion  CRLF   [ Message-header ] [  CRLF  MIME-data ] GET /index.html HTTP/1.1   CRLF  Host: www.pinguin.info   Raspuns HTTP: Status-line ::= HTTP-version Digit Digit Digit Reason  CRLF HTTP/1.1 200 OK  CRLF  …
http | metode GET  – cerere de acces la reprezentarea  unei resurse ( e.g. , cod HTML, CSS, RSS, PDF,…) HEAD  – similara cu GET, dar in mod uzual  se doresc doar meta-informatii ( e.g. , tipul) POST  – utilizata pentru trimiterea  unor entitati (date, actiuni) spre server  ( e.g. , datele dintr-un formular) PUT  – plaseaza reprezentarea unei resurse pe server OPTIONS  – furnizeaza optiunile dialogului intre client & server ( e.g. , negocierea reprezentarii) DELETE  – sterge o resursa (reprezentarea ei)  de pe server
http | reprezentari ale resursei Codificarea setului de caractere  ( encoding ):  ISO-8859-1  (implicit),  ISO-8859-2 ,... Tipul continutului resursei  ( MIME type ) – vezi urmatorul  slide Codificarea mesajelor  (comprimare, asigurarea identitatii si/sau integritatii):  gzip ,  compress ,... Formatul reprezentarii poate fi:  text  (HTML, text obisnuit, XML,...) sau  binar
http | cimpuri (atribute) Content-Type  MIME (Multipurpose Internet Mail Extensions)   Content-Type: tip/subtip Tipuri MIME principale text  defineste formatele text  ( text/plain ,  text/html ,  text/xml ,  text/javascript ) image  specifica formatele grafice  ( image/png ,  image/jpeg ) application  defineste aplicatiile client ( application/executable ,  application/javascript ) audio  specifica formatele audio ( audio/basic ) video  specifica formatele video ( video/mpeg ) multipart  utilizat pentru trans. datelor compuse
http | cimpuri (atribute) Location Location “ : ” “ http:// ” host [ “ : ” port ] [ abs_path ] Location: http://www.infoiasi.ro:8080/s-a_mutat.html Caracterele rezervate URI sint codificate  –  URI encoding :  %hexa   ( e.g. , “ spatiul ” devine “ + ” sau “ %20 ” etc.) Location  este folosit la redirectarea  spre o alta reprezentare a resursei
http | cimpuri (atribute) Altele:  Accept  – specifica tipul/tipurile de reprezentare acceptate de client, plus calitatea  Cache-Control  – stabileste parametrii de control ai  cache -ului (la nivel de  proxy , uzual) Referer  – desemneaza URI-ul resursei  care a referit resursa curenta Host  – specifica adresa masinii de pe care  se solicita accesul la o resursa Authorization  si  WWW-Authenticate  – utilizate la autentificarea accesului la o resursa protejata  Detalii:  www.w3.org/Protocols/HTTP/
http | starea Coduri de informare (1xx) 100 Continue, 101 Switching Protocols Coduri de succes (2xx) 200 Ok, 201 Created, 202 Accepted Coduri de redirectare (3xx) 300 Multiple Choices, 302 Moved Temporarily Coduri de eroare client (4xx) 400 Bad Request, 403 Forbidden, 404 Not Found Coduri de eroare server (5xx) 501 Not Implemented, 503 Service Unavailable Coduri de avertisment: 0..99
http | jurnalizarea cererilor dyn419.win.tue.nl   – licenta  [29/Sep/2006:11:08:04 +0300]  " GET /~busaco/teach/bsc2006/ HTTP/1.1 "  200  24757 dyn419.win.tue.nl   – –  [29/Sep/2006:11:07:54 +0300]  " GET /~busaco/teach/bsc2006 HTTP/1.1 "  401  1283 193.226.24.219   – –  [29/Sep/2006:11:06:17 +0300]  " GET / HTTP/1.1 "  403  1039 83.115.156.9   – –  [29/Sep/2006:11:05:59 +0300]  " GET /~busaco/paint/days/trio.jpg HTTP/1.1 "  304  – proxy.info.uaic.ro   – –  [29/Sep/2006:11:05:38 +0300]  " GET /favicon.ico HTTP/1.1 "  404  1035 rat.cluj.astral.ro   – –  [29/Sep/2006:11:04:27 +0300]  " GET /~linux/ HTTP/1.0 "  200  4974 triton.france3.fr  – –  [29/Sep/2006:11:04:27 +0300]  " GET /~acf/ HTTP/1.1 "  200  446 triton.france3.fr   – –  [29/Sep/2006:11:04:27 +0300]  " GET /~acf HTTP/1.1 "  301  327 crawl.googlebot.com   – –  [29/Sep/2006:11:03:11 +0300]  " GET /~busaco/paint/works/Forms.jpg HTTP/1.1 "  304  –
http | exemplu cerere GET   /  HTTP/1.1 Host:   www.pinguin.info User-Agent:   Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/1.5.0.5 Accept:   text/html, image/gif, image/jpeg, */* Accept-Language:  en -us Accept-Encoding:  gzip,deflate,compress,identity Connection:   K eep- A live   metoda cimpuri
http | exemplu raspuns HTTP/1.1  302 Found Date:   Tue, 22 Aug 2006 07:17:13 GMT Server:  Apache/2.0.54 (Win32) PHP/5.0.4 Location:  http://www. pinguin . info /index.html Content-Length:  295 Connection:  close Content-Type:  text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML 2.0//EN&quot;> <html> <head><title>302 Found</title></head> <body><h1>Found</h1><p>The document has moved  <a href=&quot; http://www.pinguin.info/index.html &quot;>here</a>.</p> <hr /><address>Apache/2.0.54 Server at www.pinguin.info  Port 80</address></body> </html>  continut starea cimpuri
privire de ansamblu Arhitectura Web-ului Web -ul    spatiu informational compus  din elemente de interes, numite  resurse , desemnate de identificatori globali URI  ( Uniform Resource Identifiers ) Identificarea  Interactiunea Reprezentarea prin formate de date  Detalii la  www.w3.org/TR/webarch/  (recomandare W3C, 2004)
privire de ansamblu Situri & aplicatii Web Sit Web     sistem pe care ruleaza un server Web gazduind o serie de pagini (documente) WWW inrudite – ale unei organizatii, companii sau persoane Ofera informatii unitare (scopuri comune) Are asociata o adresa publica (vizibila),  bazata pe un domeniu Internet Serverul Web poate gestiona simultan  mai multe situri     gazduire virtuala Poate fi disponibil in  intranet  sau  extranet
privire de ansamblu Situri & aplicatii Web Aplicatie Web     colectie interconectata de pagini Web cu continut generat dinamic, menita a oferi utilizatorilor o functionalitate specifica Interactiunea dintre aplicatie si utilizatori  are loc via o  interfata Web Uzual,  sit Web = aplicatie Web Exemple:  Amazon ,  Expedia ,  Flickr ,  GESCO ,  GMail ,  Kartoo ,  PHPMyAdmin ,  webmin ,  Wikipedia  etc.
privire de ansamblu Situri & aplicatii Web Arhitectura generala a unei aplicatii Web
rezumat Internet : notiuni de baza & organizare  Spatiul World-Wide Web :  “definitii”, istorie, constituenti Adresarea resurselor Web:  identificatori uniformi de resurse  (URI) Protocolul HTTP   ( HyperText Transfer Protocol ) Privire de ansamblu
Intrebari…?

More Related Content

PPT
Programare Web - PHP (o prezentare generala)
PPT
Programare Web - De la CGI la servere de aplicatii
PPT
Programare Web - Accesul la baze de date prin PHP
PPT
Programare Web - Cookie-uri si sesiuni
PDF
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
PDF
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
PDF
HTML5? HTML5!
PDF
HTML5 în XXX de minute
Programare Web - PHP (o prezentare generala)
Programare Web - De la CGI la servere de aplicatii
Programare Web - Accesul la baze de date prin PHP
Programare Web - Cookie-uri si sesiuni
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
HTML5? HTML5!
HTML5 în XXX de minute

What's hot (14)

PDF
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
PDF
Căutarea resurselor Web
PDF
CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5
PDF
Node.js: aspecte esențiale
PDF
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
PDF
O lectie de anatomie Web. Disectia unui document HTML
PDF
Web 2020 09/12: Servicii Web. Paradigma REST
PDF
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
PDF
Suita de tehnologii HTML5
PDF
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
PDF
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
PDF
Modelarea datelor via XML. Design patterns in contextul specificarii document...
PDF
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
PPTX
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Căutarea resurselor Web
CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5
Node.js: aspecte esențiale
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
O lectie de anatomie Web. Disectia unui document HTML
Web 2020 09/12: Servicii Web. Paradigma REST
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Suita de tehnologii HTML5
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Modelarea datelor via XML. Design patterns in contextul specificarii document...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Ad

Similar to Programare Web - Arhitectura WWW (20)

PPTX
Ce este de fapt internetul cum al folosim.pptx
PPT
Istoria Web-ului - part 1 (2) - tentativ How to Web 2009
PDF
Web-ul nostru (cel de toate zilele)
PDF
Sabin Buraga – Dezvoltator Web (...în 2017)
PDF
Internet
PPT
0notiuni generale internet
PPT
0notiuni internet
PDF
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
PPT
Reteaua internet
PDF
Modulul 7 web
PPT
Rețeaua Internet.ppt
PPT
Rețeaua Internet.ppt
PDF
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
PDF
Sabin Buraga: Dezvoltator Web?! (2019)
PDF
Dezvoltator Web?! – ...în 2016
PPT
Tice usb 1
PPT
Utilizare internet
PPT
Utilizare internet
PPT
Istoria Web-ului - part 1 - tentativ How to Web 2009
PDF
Suport cls09-tic-cap05-l02-01-servicii oferite de internet
Ce este de fapt internetul cum al folosim.pptx
Istoria Web-ului - part 1 (2) - tentativ How to Web 2009
Web-ul nostru (cel de toate zilele)
Sabin Buraga – Dezvoltator Web (...în 2017)
Internet
0notiuni generale internet
0notiuni internet
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Reteaua internet
Modulul 7 web
Rețeaua Internet.ppt
Rețeaua Internet.ppt
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Sabin Buraga: Dezvoltator Web?! (2019)
Dezvoltator Web?! – ...în 2016
Tice usb 1
Utilizare internet
Utilizare internet
Istoria Web-ului - part 1 - tentativ How to Web 2009
Suport cls09-tic-cap05-l02-01-servicii oferite de internet
Ad

More from Sabin Buraga (20)

PDF
Web 2020 01/12: World Wide Web – aspecte arhitecturale
PDF
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
PDF
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
PDF
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
PDF
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
PDF
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
PDF
STAW 01/12: Arhitectura aplicaţiilor Web
PDF
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
PDF
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
PDF
STAW 04/12: Programare Web: Node.js
PDF
STAW 05/12: Arhitectura navigatorului Web
PDF
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
PDF
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
PDF
STAW 08/12: Programare Web. Suita de tehnologii HTML5
PDF
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
PDF
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
PDF
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
PDF
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
PDF
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
PDF
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 04/12: Programare Web: Node.js
STAW 05/12: Arhitectura navigatorului Web
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (3/10) Design Models, Methodologies and Guidelines

Programare Web - Arhitectura WWW

  • 1. Programare Web Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/
  • 2. Spatiul W orld- W ide W eb Arhitectura Detalii in [PSW, 13-43] [TX, 11-28]
  • 3. “ De la un anumit punct incolo, nu mai exista cale de intoarcere. Acela este punctul ce trebuie atins.” Franz Kafka
  • 4. cuprins Internet : notiuni de baza & organizare Spatiul World-Wide Web : “definitii”, istorie, constituenti Adresarea resurselor Web: identificatori uniformi de resurse (URI) Protocolul HTTP ( HyperText Transfer Protocol ) Privire de ansamblu
  • 5. cuprins Internet Preliminarii Notiuni importante Servicii Organizare Maniere de adresare
  • 6. Preliminarii Nevoia de comunicare Masini mecanice (sec.18) Masini cu aburi (sec.19) Colectare, prelucrare & distributie de informatii (sec.20) Puncte de vedere: centru de calcul mamut (IBM ’60) PC-uri (’80) retele mondiale (’90) retele wireless (prezent) internet
  • 7. Retea de calculatoare colectie interconectata de calculatoare autonome Scop & utilizari ale retelelor: partajarea resurselor (fizice, logice, date) fiabilitate & reducerea costurilor mediu de comunicare intre oameni acces la informatii de la distanta divertisment interactiv internet
  • 8. Nod : calculator al unei retele, avind asociata o adresa Resursa : programe, echipamente, date Comunicatie : modul de a schimba informatii intre calculatoarele unei retele (via canale ) Protocol : regulile prin care se realizeaza comunicatia Difuzare : trimiterea de informatii la mai multe calculatoare ( multicast ) sau la toate ( broadcast ) Pachet : modalitate de stocare a datelor internet | notiuni
  • 9. Modelul client/server Server  entitate (hardware si/sau software) care ofera un set de servicii Client  entitate (hardware si/sau software) care solicita servicii Serviciu  facilitate oferita de un server si solicitata de unul/mai multi clienti Exemple: servicii de stocare (fisiere, baze de date,…), servicii de transmitere a postei, servicii e-commerce etc. internet | notiuni
  • 10. Modelul client/server Un server poate oferi un serviciu mai multor clienti (in mod concurent) Un server poate oferi mai multe servicii simultan Exemplu: stocare + e-mail + Web Serviciile se pot efectua cu confirmare sau nu a raspunsului (telefon vs. posta) Serverele si clientii “discuta” via protocoale de comunicatie (FTP, HTTP,…) internet | notiuni
  • 11. Dupa componenta: omogene & eterogene Dupa dispunere spatiala: Multi-calculator LAN ( Local Area Network ) – camera, cladire, campus ( CAN – Campus Area Network ) MAN ( Metropolitan Area Network ) – oras WAN ( Wide Area Network ) – tara, continent Internet – planeta Conform transmisiei: retele cu difuzare (un singur canal de comunicatie) retele peer-to-peer – punct-la-punct (conexiuni multiple intre perechi de masini) internet | tipuri de retele
  • 12. Se bazeaza pe stiva de protocoale TCP/IP : Nivelul de aplicatii (SMTP – Simple Mail Transfer Protocol, FTP – File Transfer Protocol, HTTP – HyperText Transfer Protocol,…) Nivelul transport (TCP – Transmission Control Protocol, UDP – User Datagram Protocol) Nivelul retea (IP – Internet Protocol) Nivelul legatura de date (ARP – Address Resolution Protocol, RARP – Reverse ARP) internet | protocoale
  • 13. Categorii principale: Gazde ( hosts ) – orice sistem computational conectat la Internet (comunicind via TCP/IP) Ruleaza aplicatii de inter-conectare Retele ( networks ) – colectii de minim 2 gazde interconectate via o tehnologie de conectare fizica Arhitectura Internet este independenta de modul de conectare fizica (retelistica) Rutere ( routers ) – dispozitive oferind conectivitatea intre retele individuale Dirijarea datelor se poate face software ori hardware internet | componente
  • 14. Posta electronica (e-mail) Transfer de fisiere (FTP) Grupuri de stiri ( news ) Cautare de fisiere (Archie) Organizare de date (Gopher) Comunicatii inter-personale (IRC) Spatiul World-Wide Web (WWW) Mesagerie instantanee ( instant messanging ) Partajare de fisiere ( file sharing ) … internet | servicii
  • 15. Coordonare ISOC ( Internet SOCiety ) IETF ( Internet Engineering Task Force ) Reglemententari Request For Comments (RFC) Specifica arhitectura si standardele Internet internet | organizare
  • 16. Moduri de adresare Adrese fizice (placa de retea) Ethernet: 00-13-02-6E-E0-E5 Adrese logice numerice IP (4 octeti): 193.231.30.225 IPv6 (16 octeti) Adrese logice simbolice (DNS – Domain Name System) Domenii, nume de masina: thor.info.uaic.ro Masina locala: localhost ( 127.0.0.1 ) internet | adresare
  • 17. Domenii simbolice primare: .org (organizatie) .gov (guvernamental) .mil (militar) .int (organizatie internationala) .edu (educational) .com (comercial) .net (intretinere retea/Internet) corespunzatoare statelor lumii: .ro .uk .it de interes general: .info .biz internet | adresare
  • 18. Fiecare domeniu poate avea in jurisdictie sub-domenii: info.uaic.ro Un sub-domeniu poate include alte sub-domenii sau nume de masini Nume simbolice: thor , fenrir ,… Alias -uri: www  thor , ftp  thor ( www.infoiasi.ro  thor.info.uaic.ro ) internet | adresare
  • 20. cuprins Spatiul WWW Definitii & caracterizare Adresarea resurselor via URI Protocolul HTTP Privire de ansamblu
  • 21. world-wide web Web, WWW, “pinza de paianjen mondiala” S istem de distributie locala sau globala a informatiilor hipermedia Serviciu Internet ( WWW  Internet ) Bazat pe modelul client/server si pe hipertext CERN – 1989, Sir Tim Berners-Lee et al. “ Information Management: A Proposal ” http://www.w3.org/History/1989/proposal.html Functioneaza conform reglementarilor Consortiului Web (>500 membri): www.w3.org
  • 22. world-wide web Ideea: integrarea unor sisteme informa t ionale disparate i ntr-un mod unitar , fara diferen t e intre surse le de date Scopuri principale (Tim Berners-Lee): Independenta de dispozitiv Independenta de software Scalabilitatea Multimedia “ Anything can link to anything ”
  • 23. world-wide web Resursele sint identificate prin adresa lor – identificator uniform de resurse ( URI ) Existenta unui protocol ( e.g. , HTTP ) pentru accesul la continutul resurselor Resursele (vazute ca documente ) includ marcaje (adnotari) Marcajele contin la rindul lor URI-uri Detalii: www.w3.org/TR/webarch/ pagini Web
  • 24. Relatiile dintre o resursa Web, adresa ei (URI) si reprezentarea structurata a resursei world-wide web Reprezentarea = date propriu-zise + meta-date (date despre date)
  • 25. URI | definitie Resursa – “lucru” care poseda o identitate Identificator – obiect care poate juca rolul unei resurse (secventa de caractere avind o sintaxa precisa) Uniformitate – se permite o interpretare semantica uniforma a mai multor conventii sintactice comune desemnind identificatori ai unor resurse eterogene URI  Uniform Resource Identifier ( RFC 2396, 3986)
  • 26. URI | componenta URI = URL + URN URL ( Uniform Resource Locator ) identifica resursele prin reprezentarea mecanismului de accesare (adresa de retea, domeniu simbolic) http:// www.infoiasi.ro/~busaco/teach/ mailto: [email_address] ftp:// ftp.funet.fi/pub/README.txt tel: +40232201090
  • 27. URI | componenta URI = URL + URN URN ( Uniform Resource Name ) identifica resursele prin nume, intr-o forma persistenta, chiar daca resursa este inaccesibila sau a disparut urn: infoiasi.ro:BookInfo urn: mozilla:package:communicator urn: schemas-microsoft-com:datatypes
  • 28. URI | sintaxa & semantica schema :// authority path ? query http :// www.pinguin.info/cauta.php ? id=Tux Caractere rezervate: ; / ? : @ & = + $ , Se codifica in baza 16 Schema se considera case-insensitive
  • 29. URI | sintaxa & semantica URL-urile pot fi absolute sau relative http://www.infoiasi.ro/~busaco/cv.html ../../csb.css “ Fragmente” dintr-un continut pot fi referite prin URIref (referinte, fragment identifiers ) URI # URIref web.html # laborator Identificarea unei resurse se poate face indirect ( e.g. , mailto:[email protected] identifica o cutie postala Internet specificata prin schema mailto )
  • 30. URI | sintaxa & semantica O resursa Web poate fi identificata de unul sau mai multe URI-uri URI aliases (de evitat) Utilizarea URI-urilor trebuie sa fie consistenta URI-urile trebuie considerate opace (nu trebuie “ghicit” tipul continutului inspectind URI-ul asociat resursei) Starea resursei poate evolua in timp, dar URI-ul asociat ei nu
  • 31. IRI IRI = Internationalized Resource Identifier (RFC 3987) Complementar URI-ului Permite folosirea unor caractere din seturi de caractere mai largi decit ASCII (de exemplu, Unicode) Exemplu: http://color.org/ros&#xE9 este identic cu URI-ul http://color.org/ros&#233 (in HTML/XML) sau http://color.org/ros&#xE9 (in XML) si poate fi reprezentat vizual prin http://color.org/rosé
  • 32. http | caracterizare HyperText Transfer Protocol Bazat pe TCP/IP Protocol fiabil, de tip cerere/raspuns HTTP/0.9, HTTP/1.0, HTTP/1.1 Port standard de acces: 80 Arhitectura: Server Web (daemon HTTP – httpd ) Apache, MS Internet Information Services etc. Client Web (navigator, browser , robot,…) Netscape, Mozilla (Firefox), Internet Explorer, Opera, wget, Teleport, RSS Reader, iTunes,…
  • 33. http | caracterizare Cererea si raspunsul Accesarea (eventual, modificarea) reprezentarii resursei via URI-ul asociat
  • 34. http | termeni Mesaj – unitatea de baza a unei comunicatii HTTP (cerere sau raspuns) Intermediar Proxy – cu rol atit de server, cit si de client Poarta – intermediar care ascunde serverul de origine, clientul nestiind acest lucru Tunel – cu rol de retransmitere (eventual, criptata) a mesajului Cache – depozit local de stocare (in memorie, pe disc) a mesajelor (datelor) la nivel de server/client
  • 35. http | mesaje Mesaj HTTP = antet + corp Antet = multime de cimpuri Message-header ::= field-name “ : ” [ field-value ] CRLF Cerere HTTP: Request ::= Method Request-URI ProtocolVersion CRLF [ Message-header ] [ CRLF MIME-data ] GET /index.html HTTP/1.1 CRLF Host: www.pinguin.info Raspuns HTTP: Status-line ::= HTTP-version Digit Digit Digit Reason CRLF HTTP/1.1 200 OK CRLF …
  • 36. http | metode GET – cerere de acces la reprezentarea unei resurse ( e.g. , cod HTML, CSS, RSS, PDF,…) HEAD – similara cu GET, dar in mod uzual se doresc doar meta-informatii ( e.g. , tipul) POST – utilizata pentru trimiterea unor entitati (date, actiuni) spre server ( e.g. , datele dintr-un formular) PUT – plaseaza reprezentarea unei resurse pe server OPTIONS – furnizeaza optiunile dialogului intre client & server ( e.g. , negocierea reprezentarii) DELETE – sterge o resursa (reprezentarea ei) de pe server
  • 37. http | reprezentari ale resursei Codificarea setului de caractere ( encoding ): ISO-8859-1 (implicit), ISO-8859-2 ,... Tipul continutului resursei ( MIME type ) – vezi urmatorul slide Codificarea mesajelor (comprimare, asigurarea identitatii si/sau integritatii): gzip , compress ,... Formatul reprezentarii poate fi: text (HTML, text obisnuit, XML,...) sau binar
  • 38. http | cimpuri (atribute) Content-Type MIME (Multipurpose Internet Mail Extensions) Content-Type: tip/subtip Tipuri MIME principale text defineste formatele text ( text/plain , text/html , text/xml , text/javascript ) image specifica formatele grafice ( image/png , image/jpeg ) application defineste aplicatiile client ( application/executable , application/javascript ) audio specifica formatele audio ( audio/basic ) video specifica formatele video ( video/mpeg ) multipart utilizat pentru trans. datelor compuse
  • 39. http | cimpuri (atribute) Location Location “ : ” “ http:// ” host [ “ : ” port ] [ abs_path ] Location: http://www.infoiasi.ro:8080/s-a_mutat.html Caracterele rezervate URI sint codificate – URI encoding : %hexa ( e.g. , “ spatiul ” devine “ + ” sau “ %20 ” etc.) Location este folosit la redirectarea spre o alta reprezentare a resursei
  • 40. http | cimpuri (atribute) Altele: Accept – specifica tipul/tipurile de reprezentare acceptate de client, plus calitatea Cache-Control – stabileste parametrii de control ai cache -ului (la nivel de proxy , uzual) Referer – desemneaza URI-ul resursei care a referit resursa curenta Host – specifica adresa masinii de pe care se solicita accesul la o resursa Authorization si WWW-Authenticate – utilizate la autentificarea accesului la o resursa protejata Detalii: www.w3.org/Protocols/HTTP/
  • 41. http | starea Coduri de informare (1xx) 100 Continue, 101 Switching Protocols Coduri de succes (2xx) 200 Ok, 201 Created, 202 Accepted Coduri de redirectare (3xx) 300 Multiple Choices, 302 Moved Temporarily Coduri de eroare client (4xx) 400 Bad Request, 403 Forbidden, 404 Not Found Coduri de eroare server (5xx) 501 Not Implemented, 503 Service Unavailable Coduri de avertisment: 0..99
  • 42. http | jurnalizarea cererilor dyn419.win.tue.nl – licenta [29/Sep/2006:11:08:04 +0300] &quot; GET /~busaco/teach/bsc2006/ HTTP/1.1 &quot; 200 24757 dyn419.win.tue.nl – – [29/Sep/2006:11:07:54 +0300] &quot; GET /~busaco/teach/bsc2006 HTTP/1.1 &quot; 401 1283 193.226.24.219 – – [29/Sep/2006:11:06:17 +0300] &quot; GET / HTTP/1.1 &quot; 403 1039 83.115.156.9 – – [29/Sep/2006:11:05:59 +0300] &quot; GET /~busaco/paint/days/trio.jpg HTTP/1.1 &quot; 304 – proxy.info.uaic.ro – – [29/Sep/2006:11:05:38 +0300] &quot; GET /favicon.ico HTTP/1.1 &quot; 404 1035 rat.cluj.astral.ro – – [29/Sep/2006:11:04:27 +0300] &quot; GET /~linux/ HTTP/1.0 &quot; 200 4974 triton.france3.fr – – [29/Sep/2006:11:04:27 +0300] &quot; GET /~acf/ HTTP/1.1 &quot; 200 446 triton.france3.fr – – [29/Sep/2006:11:04:27 +0300] &quot; GET /~acf HTTP/1.1 &quot; 301 327 crawl.googlebot.com – – [29/Sep/2006:11:03:11 +0300] &quot; GET /~busaco/paint/works/Forms.jpg HTTP/1.1 &quot; 304 –
  • 43. http | exemplu cerere GET / HTTP/1.1 Host: www.pinguin.info User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/1.5.0.5 Accept: text/html, image/gif, image/jpeg, */* Accept-Language: en -us Accept-Encoding: gzip,deflate,compress,identity Connection: K eep- A live metoda cimpuri
  • 44. http | exemplu raspuns HTTP/1.1 302 Found Date: Tue, 22 Aug 2006 07:17:13 GMT Server: Apache/2.0.54 (Win32) PHP/5.0.4 Location: http://www. pinguin . info /index.html Content-Length: 295 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML 2.0//EN&quot;> <html> <head><title>302 Found</title></head> <body><h1>Found</h1><p>The document has moved <a href=&quot; http://www.pinguin.info/index.html &quot;>here</a>.</p> <hr /><address>Apache/2.0.54 Server at www.pinguin.info Port 80</address></body> </html> continut starea cimpuri
  • 45. privire de ansamblu Arhitectura Web-ului Web -ul  spatiu informational compus din elemente de interes, numite resurse , desemnate de identificatori globali URI ( Uniform Resource Identifiers ) Identificarea Interactiunea Reprezentarea prin formate de date Detalii la www.w3.org/TR/webarch/ (recomandare W3C, 2004)
  • 46. privire de ansamblu Situri & aplicatii Web Sit Web  sistem pe care ruleaza un server Web gazduind o serie de pagini (documente) WWW inrudite – ale unei organizatii, companii sau persoane Ofera informatii unitare (scopuri comune) Are asociata o adresa publica (vizibila), bazata pe un domeniu Internet Serverul Web poate gestiona simultan mai multe situri  gazduire virtuala Poate fi disponibil in intranet sau extranet
  • 47. privire de ansamblu Situri & aplicatii Web Aplicatie Web  colectie interconectata de pagini Web cu continut generat dinamic, menita a oferi utilizatorilor o functionalitate specifica Interactiunea dintre aplicatie si utilizatori are loc via o interfata Web Uzual, sit Web = aplicatie Web Exemple: Amazon , Expedia , Flickr , GESCO , GMail , Kartoo , PHPMyAdmin , webmin , Wikipedia etc.
  • 48. privire de ansamblu Situri & aplicatii Web Arhitectura generala a unei aplicatii Web
  • 49. rezumat Internet : notiuni de baza & organizare Spatiul World-Wide Web : “definitii”, istorie, constituenti Adresarea resurselor Web: identificatori uniformi de resurse (URI) Protocolul HTTP ( HyperText Transfer Protocol ) Privire de ansamblu