Sunteți pe pagina 1din 9

Tehnologii WEB

Cursul 7

URI Uniform Resource Identifier

URI =URL +URN
Identificatorul uniform al resurselor este format din combinarea localizatorului ce
identifica resursele prin reprezentarea mecanismului de accesare si numele prin care sunt
identificate resursele.
Resursa poate fi definita ca si un lucru care poseda o identitate;
I dentificator proate fi reprezentat ca si un obiect care joaca rolul unei resurse
(secventa de caractere avand o sintaxa precisa);
Uniformitate calitate prin care se permite o interpretare semantica uniforma a mai
multor conventii sintactice comune, desemnand identificatori ai unor resurse eterogene.

URL (Uniform Resource Locator) identifica resursele prin reprezentarea
mecanismului de accesare (adresa de retea, domeniu simbolic).
Exemplu:
http://www.infoiasi.ro/~busaco/teach/
mailto:tux@pinguin.info
ftp://ftp.funet.fi/pub/README.txt
tel:+40232201090

URN (Uniform Resource Name) identifica resursele prin nume, intr-o forma
persistenta, chiar daca resursa este inaccesibila sau a disparut.
Exemplu:
urn:infoiasi.ro:BookInfo
urn:mozilla:package:communicator
urn:schemas-microsoft-com:datatypes

URL-urile pot fi absolutesau relative.
Exemplu:
URL absolut: http://www.infoiasi.ro/~busaco/cv.html
URL relativ: ../../csb.css

Fragmente dintr-un continut pot fi referite prin URI ref (referinte, fragment
identifiers).
Exemplu:
URI#URIref: web.html#laborator
In schimb, o resursa Web poate fi identificata de unul sau mai multe URI -uri, cu conditia ca
utilizarea URI-urilor sa fie consistenta.

I RI (I nternationalized Resource I dentifier) este complementar URI-ului, diferenta
constand in faptul ca IRI 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 (HyperText Transfer Protocol) este un protocol fiabil de tip
cerere/raspuns, bazat pe protocolul TCP/IP. Portul standard de acces este 80.
Arhitectura protocolului este de tipul Server Web (Apache, MS Internet Information Services
etc.) si Client Web (navigator, browser, robot --- Netscape, Mozilla (Firefox), Internet
Explorer, Opera, Teleport, RSS Reader, iTunes).

Mesaj reprezinta unitatea de baza a unei comunicatii HTTP (cerere sau raspuns);
I ntermediar:
o Proxy cu rol atat de server, cat si de client;
Exemplu: squid (Linux) portul folosit: 8080
o Poarta intermediar care ascunde serverul de origine, clientul nestiind acest
lucru;
o 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.

Metode HTTP
GET cerere de acces la reprezentarea unei resurse (e.g., cod HTML, CSS, SVG,
PDF,);
HEAD similara cu GET, dar in mod uzual se doresc doar meta-informatii;
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.

Codificarea setului de caractere (encoding) este realizata respectand standardele
ISO-8859-1 (implicit) si ISO-8859-2. Formatul reprezentarii caracterelor poate fi: text
(HTML, text obisnuit, XML) sau binar.

Arhitectura Web-ului
Web-ul este spatiu informational compus din elemente de interes, numite resurse,
desemnate de identificatori globali URI (Uniform Resource Identifiers)
Identificarea
Interactiunea
Reprezentarea prin formate de date

Identificarea resurselor
Fiecare resursa trebuie sa fie adresabila
Fiecarei resurse i se asigneaza un URI distinct (reducerea coliziunilor)
Un URI va avea un proprietar (persoana, organizatie, specificatie,...)
De incurajat utilizarea consistenta a URI-urilor
Opacitatea URI natura unei resurse nu este data de adresa (URI), ci de reprezentare
Identificatorii de fragment duc la identificarea indirecta a unei resurse secundare
legata de resursa initiala

Interactiunea
Agentul Web este reprezentat de persoane sau software ce actioneaza pe Web
Agentul utilizator este reprezentat de software ce actioneaza in numele unui utilizator
(uman)
Agent software este reprezentat de servere, proxy-uri, roboti, navigatoare, player-e
multimedia etc.
Comunicarea intre agenti implica URI-uri, mesaje si date, via protocoale (HTTP, FTP,
SOAP, SMTP)
Un mesaj poate fi compus din date & meta-date (date descriind date)
Accesul la o resursa se realizeaza prin URI (dereferentiere), eventual implicind mai
multi pasi, rezultand o reprezentare a resursei
O reprezentare reprezinta datele care codifica informatia despre starea unei resurse
Creatorilor resurselor trebuie sa li se permita controlul asupra metadatelor atasate
reprezentarilor resurselor
Preluarea unei resurse (retrieval) trebuie sa fie sigura
Managementul reprezentarii proprietarul unui URI ar trebui sa ofere reprezentari ale
resursei desemnate, intr-un mod consistent si predictibil

Reprezentarea prin formate de date
Arhitectura Web-ului nu impune utilizarea unor formate de date, dar incurajeaza
refolosirea celor existente
Aspecte importante: formate binare vs. textuale, controlul versiunilor, extensibilitatea,
compunerea formatelor, separarea continutului, prezentarii & interactiunii

Situri & aplicatii Web
Situl Web este reprezentat de un 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
Aplicatia Web este reprezentata de o colectie interconectata de pagini Web cu
continut generat dinamic, menita a oferi utilizatorilor o functionalitate specifica.
Interactiunea dintre aplicatie si utilizatori are loc printr-o interfata Web
Uzual, sit Web = aplicatie Web
Exemple: Amazon, Expedia, Flickr, GESCO, GMail, Kartoo, PHPMyAdmin,
webmin, Wikipedia etc.







Arhitectura generala a unei aplicatii Web


Serverele de aplicatii ofera posibilitatea de a include cod (script) direct in cadrul
documentelor Web, cod invocat pe server ce conduce la generarea de continut dinamic pe
partea de server
Maniera de includere depinde de serverul de aplicatii Web:
o <% ... %> pentru ASP / ASP.NET
o <% ... %> pentru JSP (Java Server Pages)
o <?php ... ?> pentru PHP
Mai general: <script language=...>...</script>

Facilitati oferite de cadrul de lucru pus la dispozitie de serverul de aplicatii:
o Limbaj(e) de programare
o Suport pentru baze de date
o Suport pentru interactiunea Web
o Suport pentru cookie-uri & sesiuni
o Suport pentru procesari XML
o Medii de dezvoltare
o Alte facilitati particulare

Limbaj(e) de programare
VBScript & JScript (ASP)
limbajele .NET (ASP.NET) ASP.NET este independent de limbaj, fiind parte a
.NET Framework
Java (servlet-uri, JSP)
Python (Zope)
Ruby (Ruby on Rails)
altele











Platforme Web



Medii de dezvoltare







Suport acordat inginerilor software
Aplicatii N-tier
Se incurajeaza folosirea sabloanelor de proiectare (design patterns): Container, MVC
(Model-View-Controller), Proxy, Configuration Parameters, Invocation Context,
Unitati de testare automata cadrul general dat de XUnit (JUnit, PHP Unit, NUnit,...)
Generarea automata de documentatii, in diverse formate
Suport pentru source control code review, versioning (CVS, Subversion,)
Pot folosi o paradigma (e.g., agile programming)

I ngineria Web


Cookie-uri
Cookie-ul este un mecanism standard care permite ca un server Web sa trimita
anumite informatii pe calculatorul unui client (utilizator), prin intermediul browser-ului, sa
ceara clientului sa stocheze aceste informatii pentru ca, ulterior, navigatorul sa returneze
informatiile spre serverul WWW. Este un mijloc persistent de stocare a datelor pe masina
clientului Web cu scopul de a fi accesate ulterior de pe server.

Utilizari:
memorarea preferintelor utilizatorilor
stocarea informatiilor de autentificare
tranzactii in cadrul comertului electronic
completarea automata a formularelor
managementul sesiunilor Web
si multe altele
Tipuri:
Cookie-uri persistente
nu vor fi distruse la inchiderea navigatorului, ci vor fi memorate intr-un fisier,
perioada lor de viata fiind stabilita de creatorul cookie-urilor
Cookie-uri nepersistente
dispar la inchiderea browser-ului

Un cookie consta dintr-o pereche nume=valoare. Valoarea este un sir de caractere
codificat in maniera URL-urilor.
Datele referitoare la un cookie vor fi receptionate de navigator care mentine o lista
de cookie-uri apartinind serverului care le-a trimis. Un cookie este trimis unui client incluzind
campul-antet Set-Cookie intr-un raspuns HTTP.

Exemplu:
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secure
expires data si timpul cand cookie-ul va expira si va fi sters de pe disc
domain numele simbolic al serverului care a generat cookie-ul
path specifica un subset de URL-uri din domeniul corespunzator unui cookie
secure cookie-ul este transmis doar daca tranzactia este sigura (via HTTPS)

Un cookie e transmis doar daca intruneste toate conditiile de validitate (se potrivesc
domeniul, calea de directoare, timpul de expirare si securitatea canalului de comunicatie).
Serverul va primi de la client, in antetul HTTP, o linie de forma: Cookie: nume1=valoare1;
nume2=valoare2.

Sesiuni
HTTP este un protocol stateless, neputind oferi informatii daca cereri succesive
provin de la acelasi client (eventual, de la aceeasi instanta a navigatorului). Apare necesitatea
de a prezerva anumite date de-a lungul mai multor accesari inrudite.
Exemple: starea cosului de cumparaturi, formulare Web completate in mai multi pasi,
paginarea continutului, starea autentificarii etc.
Orice vizitator al sitului va avea asociat un identificator unic session ID (SID),
stocat intr-un cookie ori propagat prin URL.
Unele servere de aplicatii garanteaza integritatea sesiunii si dupa o restartare (a
serverului ori a aplicatiei). Unei sesiuni i se pot asocia diverse variabile sa fie mentinute intre
accesari consecutive.
O sesiune se poate inregistra (initia) implicit sau explicit, in functie de serverul de
aplicatii sau de configuratia stabilita.

Exemplu:
ASP.NET vezi HttpSession (System.Web)
Exemplul1: nume = Session["Nume"].ToString (); Ofera suport si pentru evenimente
de sesiune






PHP functiile session_start(), session_register(), session_id(),
session_unregister(), session_destroy()
Exemplul2:
<?php
session_start();
if (!isset($_SESSION['accesari'])) {
$_SESSION['accesari'] = 0; } else {
$_SESSION['accesari']++; }
?>

Arhitectura orientata spre servicii
SOA Service Oriented Architecture este un stil arhitectural de dezvoltare de
aplicatii considerate drept servicii ce vor fi invocate de alte aplicatii.
Arhitectura orientata spre servicii este arhitectura software ce defineste utilizarea
de servicii, oferind functionalitati solicitate de utilizatori. Resursele sunt disponibile pentru o
suita de servicii independente ale caror implementari nu trebuie sa fie cunoscute.
Componentele sistemului in ansamblu au un grad mare de independenta (de-
coupling) Serviciile pot fi recompuse/orchestrate conform cerintelor.

Principii de baza:
o serviciile sa partajeze un contract specificat riguros (formal)
o serviciile sa fie slab conectate (loosely coupled)
o serviciile sa ascunda detaliile de implementare
o serviciile sa ofere suport pentru compunerea cu alte servicii (composability)
o serviciile sa poata fi reutilizate
o serviciile sa se execute ntr-un mod autonom
o serviciile sa nu depinda de starea comunicarii (statelessness), cantitatea de
informaie specifica unei activitati ce trebuie retinuta fiind minimala
o serviciile sa poata fi facil descoperite (discoverability)

Securitatea aplicatiilor WEB

- Confidentialitatea - imposibilitatea unei terte entitati sa aiba acces la datele vehiculate
intre doi receptori
Solutii:
conexiuni private intre cele 2 puncte terminale ale canalului de comunicatie; datele
circula printr-un tunel oferit de o retea privata virtuala (VPN Virtual Private Network)
criptarea datelor prin diverse tehnici (biblioteci specializate si/sau oferite de
mediile de dezvoltare)

- Autentificarea - mecanism ce permite utilizatorilor sa acceseze un serviciu dupa
verificarea identitatii utilizatorului (uzual, pe baza de nume + parola)
Solutii:
serverul Web ofera suport pentru autentificari de baza sau bazate pe algoritmi de
tip digest (e.g.,MD5)
folosirea/implementarea serviciilor de autentificare (SAML - Security Assertion
Markup Language)

- Autorizarea - specifica actiunile (rolurile) pe care un utilizator le poate realiza,
asociata autentificarii; se permite administratorului definirea politicilor de control al
accesului la servicii
Solutii:
drepturi de acces (permisiuni) + liste de control al accesului (ACL Access
Control List)
controlul accesului bazat pe roluri (RBAC Role-Based Access Control)
tehnici de tip SSO (Single Sign-On)

- Integritatea - in acest context, implica detectarea incercarilor de modificare
neautorizata a datelor transmise
Solutii:
algoritmi de tip digest
semnaturi digitale (stocate, eventual, in format XML XML Signature); pot fi
vehiculate si prin mesaje SOAP

- Nerepudierea - expeditorul mesajului nu poate afirma ca nu l-a trimis
Solutii:
certificate digitale:
stocheaza datele privind identitatea unei entitati detinatoare a unui secret
(parola, serie a cartii de credit, certif. digital)
emise de o autoritate de certificare (CA Certification Authority)
verificate de o autoritate de inregistrare (RA Registration Authority)
servicii PKI via XKMS (XML Key Management Specification)

- Disponibilitatea - o anumita resursa sa poata fi accesata la momentul oportune
Cauze ale indisponibilitatii:
atacuri de refuz al serviciilor DoS (Denial Of Service)
atacuri distribuite de tip DDoS (Distributed DoS)

- Intimitatea - confundata, deseori, cu confidentialitatea, vizeaza drepturile ce trebuie
respectate privind caracterul (subiectul) datelor vehiculate
Brese:
stocarea necorespunzatoare a datelor la nivel de server (information disclosure)
atacuri de tip XSS (Cross-Site Scripting)
atacuri de tip phishing
configurarea necorespunzatoare a sistemelor

S-ar putea să vă placă și

  • 83 Curs11 BD
    83 Curs11 BD
    Document21 pagini
    83 Curs11 BD
    Octavian Enache
    Încă nu există evaluări
  • 91 Curs19 BD
    91 Curs19 BD
    Document26 pagini
    91 Curs19 BD
    Octavian Enache
    Încă nu există evaluări
  • Cap.4. SSC Control Acces
    Cap.4. SSC Control Acces
    Document19 pagini
    Cap.4. SSC Control Acces
    Octavian Enache
    Încă nu există evaluări
  • Cap. 7 Surse Alimentare SSC
    Cap. 7 Surse Alimentare SSC
    Document20 pagini
    Cap. 7 Surse Alimentare SSC
    Octavian Enache
    Încă nu există evaluări
  • Cap.4. SSC Control Acces
    Cap.4. SSC Control Acces
    Document19 pagini
    Cap.4. SSC Control Acces
    Octavian Enache
    Încă nu există evaluări
  • 15 13 21 21arsenie Boca
    15 13 21 21arsenie Boca
    Document19 pagini
    15 13 21 21arsenie Boca
    Octavian Enache
    Încă nu există evaluări
  • 3 Cursul 3
    3 Cursul 3
    Document17 pagini
    3 Cursul 3
    Octavian Enache
    Încă nu există evaluări
  • 11 Cursul 11
    11 Cursul 11
    Document15 pagini
    11 Cursul 11
    Octavian Enache
    Încă nu există evaluări
  • 7 Cursul 7
    7 Cursul 7
    Document9 pagini
    7 Cursul 7
    Octavian Enache
    Încă nu există evaluări
  • 6 Cursul 6
    6 Cursul 6
    Document11 pagini
    6 Cursul 6
    Octavian Enache
    Încă nu există evaluări
  • 9 Cursul 9
    9 Cursul 9
    Document7 pagini
    9 Cursul 9
    Octavian Enache
    Încă nu există evaluări
  • Laboratoare TSDP
    Laboratoare TSDP
    Document33 pagini
    Laboratoare TSDP
    Octavian Enache
    Încă nu există evaluări
  • 6 Cursul 6
    6 Cursul 6
    Document11 pagini
    6 Cursul 6
    Octavian Enache
    Încă nu există evaluări
  • 4 Cursul 4
    4 Cursul 4
    Document18 pagini
    4 Cursul 4
    Octavian Enache
    Încă nu există evaluări
  • 7 Cursul 7
    7 Cursul 7
    Document9 pagini
    7 Cursul 7
    Octavian Enache
    Încă nu există evaluări
  • 1 Cursul 1
    1 Cursul 1
    Document11 pagini
    1 Cursul 1
    Octavian Enache
    Încă nu există evaluări
  • 2 Cursul 2
    2 Cursul 2
    Document14 pagini
    2 Cursul 2
    Octavian Enache
    Încă nu există evaluări
  • 9 Cursul 9
    9 Cursul 9
    Document7 pagini
    9 Cursul 9
    Octavian Enache
    Încă nu există evaluări
  • 10 Cursul 10
    10 Cursul 10
    Document16 pagini
    10 Cursul 10
    Octavian Enache
    Încă nu există evaluări
  • 11 Cursul 11
    11 Cursul 11
    Document15 pagini
    11 Cursul 11
    Octavian Enache
    Încă nu există evaluări
  • 5 Cursul 5
    5 Cursul 5
    Document16 pagini
    5 Cursul 5
    Octavian Enache
    Încă nu există evaluări
  • 12 Cursul 12
    12 Cursul 12
    Document11 pagini
    12 Cursul 12
    Octavian Enache
    Încă nu există evaluări
  • Diploma - WWW - Tocilar
    Diploma - WWW - Tocilar
    Document48 pagini
    Diploma - WWW - Tocilar
    Verhovetchi Anita
    Încă nu există evaluări
  • 12 Cursul 12
    12 Cursul 12
    Document11 pagini
    12 Cursul 12
    Octavian Enache
    Încă nu există evaluări
  • 8 Cursul 8
    8 Cursul 8
    Document4 pagini
    8 Cursul 8
    Octavian Enache
    Încă nu există evaluări
  • Curs 5 TSDP
    Curs 5 TSDP
    Document14 pagini
    Curs 5 TSDP
    Octavian Enache
    Încă nu există evaluări
  • Sisteme de Pozitionare Localizare Indoor
    Sisteme de Pozitionare Localizare Indoor
    Document5 pagini
    Sisteme de Pozitionare Localizare Indoor
    Octavian Enache
    Încă nu există evaluări
  • 7 Cursul 7
    7 Cursul 7
    Document9 pagini
    7 Cursul 7
    Octavian Enache
    Încă nu există evaluări
  • Curs 4 TSDP
    Curs 4 TSDP
    Document17 pagini
    Curs 4 TSDP
    Octavian Enache
    Încă nu există evaluări
  • 8 Cursul 8
    8 Cursul 8
    Document4 pagini
    8 Cursul 8
    Octavian Enache
    Încă nu există evaluări