Programare Web - Arhitectura WWW
Upcoming SlideShare
Loading in...5
×
 

Programare Web - Arhitectura WWW

on

  • 7,061 views

An overview regarding Internet and Web architecture, including Web addressing and HTTP protocol.

An overview regarding Internet and Web architecture, including Web addressing and HTTP protocol.

Statistics

Views

Total Views
7,061
Views on SlideShare
7,047
Embed Views
14

Actions

Likes
0
Downloads
116
Comments
0

1 Embed 14

http://www.slideshare.net 14

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Programare Web - Arhitectura WWW Programare Web - Arhitectura WWW Presentation Transcript

  • 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
    View slide
  • 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
    View slide
  • 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…?