Documente Academic
Documente Profesional
Documente Cultură
Sinteza
[SUBTITLU DOCUMENT]
WWW.REGIELIVE.RO
Cuprins
INTRODUCERE..........................................................................................................................................2
1. NOŢIUNI GENERALE DESPRE PROGRAMAREA ÎN INTERNET............................................2
1.1 Despre Internet şi WWW...............................................................................................................2
1.1.1 Clienţi Web................................................................................................................................3
1.1.2 Servere Web...............................................................................................................................4
1.1.3 Cookie........................................................................................................................................4
1.1.4 Despre HTML............................................................................................................................5
1.2 PROTOCOLUL HTTP........................................................................................................................6
1.3 GENERAREA DINAMICĂ A CONŢINUTULUI UNEI PAGINI.................................................8
2.1 APLICAŢII WEB ÎN PHP..................................................................................................................9
2.1.1 Elemente de PHP.......................................................................................................................9
2.1.2 Gestiunea unei aplicaţii Web în PHP........................................................................................9
2.1.3 Accesul componentelor software din PHP..............................................................................10
3.1 CERINŢELE SISTEMULUI............................................................................................................11
3.1.1 Descrierea cerinţelor...............................................................................................................11
3.1.2 Analiza cerinţelor....................................................................................................................11
3.2 Proiectarea sistemului................................................................................................................11
3.2.1 Proiectarea aplicaţiei de gestiune a materialelor...................................................................11
3.2.2 Proiectarea celor două aplicaţii Web......................................................................................11
3.2.3 Comunicarea între aplicaţii.....................................................................................................11
3.3 IMPLEMENTAREA APLICAŢIILOR...........................................................................................12
3.4 TESTAREA APLICAŢIILOR WEB...............................................................................................12
3.5 UTILIZAREA APLICAŢIILOR WEB............................................................................................12
Bibliografie.................................................................................................................................................13
1
Introducere
Această lucrare prezintă câteva noţiuni generale despre tehnologiile server-side CGI,
PHP, ASP şi PHP dar şi despre modul în care acestea pot fi folosite pentru a interacţiona
cu sisteme existente în scopul de a le crea o interfaţă Web. În ultimul capitol este
prezentată analiza, proiectarea şi implementarea unei aplicaţii de gestiune a materialelor
căreia i s-a adăugat o interfaţă Web, pentru o parte din cazurile de utilizare, folosind
tehnologiile JSP şi ASP.NET.
Structura acestei lucrări este următoarea:
Primul capitol tratează câteva probleme generale legate de Internet cum ar URL-urile
(Uniform Resource Locators), paşii în comunicarea dintre un browser şi un server Web,
tipuri MIME (Multipurpose Internet Mail Extensions), plug-in-uri şi aplicaţii ajutătoare
pentru un browser, cookie-uri, limbajul HTML şi evoluţia acestuia, despre protocolul
HTTP şi alte protocoale cunoscute. Tot în primul capitol se tratează istoricul tehnologiilor
de generare a conţinutului dinamic într-o pagină Web. Sunt trecute în revistă atât
tehnologii client-side precum JavaScript şi Applet, dar şi tehnologiile server-side cum ar fi
CGI, Server-Side JavaScript, Servlet şi JSP, dar şi ISAPI, ASP, ASP.NET şi următoarea
versiune de ASP.NET denumită ASP.NET "Whidbey".
Al doilea capitol precizează câteva noţiuni fundamentale despre CGI, PHP, JSP şi ASP
şi felul în care acestea pot interacţiona cu limbaje de nivel înalt. Deoarece ultima versiune
a tehnologiei ASP este ASP.NET, am tratat această versiune în acest capitol.
Al treilea capitol prezintă modul de proiectare şi implementare al unei aplicaţii reale
pentru gestiune a stocurilor de materiale şi modul în care acesteia i s-a extins
funcţionalitatea astfel încât să suporte clienţi Web. Am realizat două aplicaţii Web, una în
Java unde am folosit tehnologia JSP şi alta în C# unde am folosit tehnologia ASP.NET.
Anexate sunt codul sursă Java folosit în paginile JSP ale primei aplicaţii Web, codul
sursă C# folosit în pagina ASP a celei de-a doua aplicaţie Web, şi o parte din codul sursă
Object Pascal al aplicaţiei de gestiune a stocurilor de materiale.
Din punctul de vedere al unui utilizator, Web-ul este format dintr-o colecţie vastă de
documente sau pagini Web, orice pagină poate conţine legături spre alte documente aflate
oriunde în lume. Ideea ca o pagină să conţină referinţe spre o alta, ceea ce numim
hypertext, a apărut cu mult înaintea Internetului şi anume în 1945. Această idee aparţine
unui profesor de inginerie electrică de la MIT pe nume Vannevar Bush . Un browser este
un program ce poate afişa o pagină Web. Navigarea de la o pagină la alta se efectuează cu
ajutorul hyperlink-urilor, astfel este nevoie de o metodă de a numi şi identifica alte pagini.
Această problemă se rezolvă cu ajutorul URL-urilor (Uniform Resource Locators). Un
URL are trei părţi: numele protocolului, numele DNS al maşinii unde pe care se află
fişierul şi numele fişierului care conţine obiectul cerut (un document hypertext, o imagine,
un fişier audio, de animaţie sau video). Paşii în comunicarea dintre un browser şi un server
Web sunt următorii: browser-ul determină URL-ul, cere serverului de nume (DNS) adresa
internet (IP) a maşinii cu care va comunica, după ce obţine această adresă deschide o
conexiune TCP prin care trimite cererea pentru un anumit fişier, server-ul Web îi trimite
fişierul cerut apoi închide conexiunea iar în final browser-ul afişează conţinutul fişierului .
Pentru a putea afişa o pagină un browser trebuie să cunoască formatul acesteia. Acest lucru
este posibil datorită limbajului comun în care sunt scrise aceste pagini şi anume limbajul
HTML. Obiectele accesibile au mai multe formate, de exemplu o imagine poate fi GIF sau
JPEG, unele documente pot fi PDF-uri, altele pot fi fişiere Microsoft Word. O pagină
HTML poate să refere un fişier de orice tip pe care browser-ul nu este întotdeauna capabil
să îl interpreteze. Soluţia la această problemă o constituie faptul că serverele Web oferă
informaţii adiţionale despre un anumit fişier cum ar fi tipul MIME (Multipurpose Internet
Mail Extensions) al acestuia . Fişierele de tip text/html şi de alte tipuri care sunt direct
recunoscute de către browser (built-in types) şi sunt afişate direct, dar dacă tipul fişierului
nu este printre acestea atunci browser-ul foloseşte un tabel de tipuri MIME pentru a vedea
cum să trateze fişierul respectiv. Acest tabel asociază un tip MIME cu un program capabil
să afişeze resurse de tipul respectiv. Sunt două posibilităţi: plug-in-uri şi aplicaţii
ajutătoare.
Un plug-in este un modul care se instalează ca o extensie a browser-ului şi rulează în
interiorul acestuia. Are acces la pagina curentă ce conţine obiecte pe care ştie să le afişeze
corespunzător. După ce afişarea nu mai este necesară plug-in-ul este eliberat din memoria
browser-ului. Browser-ul oferă un set de proceduri pe care toate plug-in-urile trebuie să le
implementeze pentru a putea fi apelate de către acesta. Acest set de proceduri reprezintă
interfaţa plug-in-ului şi sunt specifice diferitelor tipuri de browsere. La rândul lui şi
browser-ul oferă anumite proceduri pe care plug-in-ul le poate apela, acestea fac parte din
interfaţa browser-ului şi se referă la alocare şi dealocare de memorie, afişarea unui mesaj
în status-bar-ul browser-ului, sau la aflarea diferitor parametri .
Alt mod de a extinde funcţionalitatea unui browser îl reprezintă aplicaţiile ajutătoare,
acestea sunt programe diferite care rulează separat de browser. Ele nu oferă o interfaţă
browser-ului şi de obicei sunt apelate pentru a afişa conţinutul unui fişier aflat într-un
anumit loc. Aplicaţii de acest gen sunt Adobe Acrobat Reader sau Microsoft Word, unele
au şi un plug-in a cărui scop este să invoce aplicaţia atunci când este cazul (de exemplu
Acrobat).
3
Multe dintre aceste aplicaţii folosesc tipul MIME "application" iar ca subtipuri
folosesc ceva specific cum ar fi "pdf" sau "msword", astfel un URL poate să refere un
fişier PDF sau DOC fară nici o problemă pentru că aplicaţia corespunzătoare îi va afişa
corect conţinutul. Alte tipuri MIME ce pot fi folosite de către acest fel de aplicaţii sunt
"audio" sau "image", depinde de aplicaţie.
Browser-ele pot afişa şi fişiere locale, pentru care nu este disponibilă informaţia
referitoare la tipul MIME corespunzător (aceasta fiind oferită de server-ul Web) pentru a
face posibilă vizualizarea acestor pagini se verifică extensia fişierului. Astfel, de exemplu
Internet Explorer se bazează mai mult pe extensia fişierului decât pe tipul MIME
corespunzător. O problemă ar putea fi atunci când un fişier cu extensia "exe", un astfel de
fişier ar trebui executat direct, dar având în vedere că ar putea fi un virus, browser-ele au
opţiuni referitoare la executarea unor programe străine.
1.1.3 Cookie
HTML 1.0 permitea destul de multe lucruri dar în esenţă era unidirecţional în sensul că
utilizatorilor le era permis doar să trimită o cerere pentru o anumită pagină dar nu exista
posibilitatea trimiterii altor informaţii. Când acest lucru a devenit o necesitate s-au introdus
în HTML 2.0 aşa numitele Web forms ce conţin butoane, cutii de text şi alte controale utile
ce permit utilizatorului să introducă informaţii în scopul de a le trimite către server. O
importanţă mai mare o are butonul pentru "submit" (acceptare şi trimitere a informaţiei).
Când se apasă acest buton browser-ul colectează informaţia din forme şi o trimite la server
pentru ca acesta să o poată procesa.
Cu sau fară Web forms HTML-ul în sine nu oferă o structură paginilor Web în sensul
că formatarea unei pagini este amestecată cu conţinutul acesteia. Cum aplicaţiile pentru
comerţ electronic au devenit din ce în ce mai complexe a devenit necesară o mai bună
structurare a paginilor şi o separare a conţinutului acestora de formatare. De exemplu un
program ce caută pe Web cel mai mic preţ pentru un anumit produs trebuie să analizeze
multe pagini pentru a determina existenţa produsului precum şi preţul acestuia, dacă pagina
este formată cu HTML acest lucru este destul de dificil. W3C a dezvoltat un mecanism
prin care procesarea automată a paginilor Web să se realizeze mult mai uşor. Au fost
creeate două noi limbaje, mai întâi XML (eXtensible Markup Language) pentru a structura
conţinutul unei pagini Web şi XSL (eXtensible Style Language) pentru a formata
independent de conţinut. XML se foloseşte acum în mult mai multe scopuri decât pentru a
structura conţinutul unei pagini Web, unul dintre acestea este comunicarea între aplicaţii.
De exemplu SOAP (Simple Object Access Protocol) este o metodă prin care un client
construieşte o cerere în forma unui mesaj XML şi o trimite unui server folosind protocolul
HTTP, server-ul la rândul lui răspunde tot cu un mesaj XML, astfel aplicaţii de pe diferite
platforme pot comunica.
HTML evoluează pentru a face faţă noilor cerinţe. Urmaşul limbajului HTML 4.0 este
XHTML (eXtended HyperText Markup Language) şi nu se numeşte HTML 5.0 pentru că
în esenţă este HTML 4.0 reformulat în XML, astfel tag-uri precum <h1> nu au nici un
înţeles anume, pentru a obţine efectul pe care acesta îl are în HTML 4.0 este necesar un
fişier XSL. XHTML este un nou standard Web ce ar trebui folosit pentru o bună
portabilitate între platorme şi browsere.
5
1.2 Protocolul HTTP
Exemple de protocoale sunt: http (protocolul Web, HyperText Transfer Protocol), ftp
(File Transfer Protocol, folosit în Internet pentru a efectua transfer de fişiere), file (pentru
acces local al unor pagini Web), news (înaintea Internetului exista sistemul news
"USENET", există mai multe subiecte de discuţie; astfel se pot plasa şi citi articole
referitoare la câte un subiect, protocolul news foloseşte la vizualizarea acestor articole un
mod similar celui în care sunt vizualizate paginile Web), gopher (protocol folosit de
sistemul Gopher care obţinea informaţii similar Web-ului, doar că suportă doar text nu şi
imagini), mailto (oferă posibilitatea utilizatorilor să trimită mail-uri dintr-un browser) .
Protocolul HTTP (HyperText Transfer Protocol) este folosit pentru comunicarea între
un browser şi un server Web. Acesta specifică ce mesaje pot trimite clienţii către server şi
ce răspunsuri pot primi. Clientul de obicei deschide o conexiune TCP pe portul 80 al
maşinii pe care rulează serverul. Conform protocolului HTTP 1.0 după ce o conexiune se
deschidea, o singură cerere şi un singur răspuns se puteau trimite folosind această
conexiune, care apoi se închidea. Dacă pagina conţine doar text HTML această metodă era
suficientă dar în câţiva ani o pagină Web a ajuns să conţină un număr impresionant de
imagini, sunete şi alte resurse astfel încât a deschide o conexiune TCP pentru a primi o
resursă de dimensiuni reduse este prea costisitor. Acest lucru a dus la existenţa
conexiunilor persistente în HTTP 1.1, conexiuni care se pot folosi pentru a trimite şi primi
mai multe cereri şi răspunsuri . Protocolul a fost făcut mai general astfel o parte din
operaţiile suportate fac mai mult decât cererea unei pagini Web, tocmai aceste lucruri au
permis existenţa unor tehnologii ca SOAP de exemplu. Metodele pentru a efectua cereri
prin protocolul HTTP sunt:
Metodă Descriere
GET Cerere pentru a obţine o resursă
HEAD Cerere pentru a citi header-ul unei pagini Web
PUT Cerere pentru a stoca o resursă
POST Cerere de adăugare la o anumită resursă
DELET Ştergerea unei anumite resurse
E TRACE Afişarea cererii curente
CONNE Rezervat
CT OPTION Interogarea anumitor opţiuni
S
Metoda GET se foloseşte pentru a obţine o anumită resursă, majoritatea cererilor fiind
de tip GET. Metoda HEAD cere header-ul unei pagini fără pagina respectivă. Se foloseşte
pentru a obţine data şi ora ultimei modificări a unei pagini, pentru a colecta informaţie
pentru indexări sau pentru a testa validitatea unui URL. Metoda PUT este inversul metodei
GET: în loc să citească pagina aceasta o scrie. Prin această metodă se poate crea o colecţie
de pagini Web pe un anumit server la distanţă. Corpul cererii PUT conţine resursa
respectivă, dacă resursa este codificată cu MIME atunci liniile ce urmează după PUT
conţin content-type-ul resursei şi headere de autentificare. Metoda POST este într-un fel
asemănătoare metodei PUT numai că nu se înlocuieşte resursa ci se adaugă la ea într-un
mod mai general (de exemplu POST se face cu un mesaj într-un newsgroup). Metoda
DELETE şterge o anumită resursă, asemănător metodei PUT; autentificarea şi drepturile de
acces apar ca parametri. Această metodă nu garantează faptul că fişierul respectiv va fi
şters. Metoda TRACE este mai mult pentru debugging şi îi spune serverului să trimită
înapoi cererea. Metoda CONNECT este rezervată pentru utilizări viitoare. Metoda
OPTIONS permite interogarea serverului despre anumite proprietăţi ale sale sau ale unei
anumite resurse. Fiecare cerere primeşte un răspuns format dintr-o linie ce reprezintă starea
şi posibil alte informaţii (conţinutul unei pagini Web, sau doar o parte a acestuia). O linie
6
ce reprezintă starea conţine de fapt un număr format din trei cifre al cărui rol este de a
specifica succesul sau insuccesul operaţiei. Prima cifră a acestui număr este folosită pentru
a împărţi răspunsurile în cinci categorii majore. Codurile care încep cu 1 sunt rar folosite,
cele care încep cu 2 înseamnă că cererea s-a rezolvat cu succes şi conţinutul (dacă este
cazul) urmează a fi returnat, cele care încep cu 3 au rolul de a anunţa clientul să caute în
altă parte. Codurile care încep cu 4 reprezintă coduri de eroare, şi anume faptul că cererea
nu a putut fi rezolvată din cauza unei erori datorată clientului (pagină inexistentă sau cerere
invalidă). Codurile care încep cu 5 reprezintă erori interne ale serverului .
O cerere poate conţine şi alte linii de text cu alte informaţii acestea se numesc
request headers. Aceste linii pot fi comparate cu parametrii unei proceduri, iar răspunsurile
pot avea şi ele response headers. Cele mai importante headere sunt descrise în tabelul
următor:
2. Aplicaţii Web
PHP este o tehnologie interesantă care îmbină caracteristici dintre cele mai complexe
cu simplitatea în utilizare. Este un instrument pentru dezvoltarea aplicaţiilor Web. Este un
limbaj de scriptare server-side comod pentru începători. Este Open Source şi este proiectat
să ruleze pe mai multe sisteme de operare şi să coopereze cu mai multe tipuri de servere şi
baze de date şi servere Web. Tag-urile pentru cod PHP sunt <?php … ?> sau <? … ?>.
Interpretorul de PHP ignoră orice se află înafara acestor tag-uri.
Programele PHP execută trei categorii de operaţii elemetare: obţin date de la un
utilizator, execută prelucrări ale datelor, respectiv obţin accesul la date stocate la server şi
le manipulează; afişează date astfel încât un utilizator să le poată vizualiza [McC].
8
Din punct de vedere sintactic PHP-ul este o mixtură din mai multe limbaje. Se poate
observa o influenţă puternică din C. Deşi sintaxa este asemănătoare cu cea a limbajului C
semantica diferă. PHP este interpretat şi astfel tipurile variabilelor nu sunt stricte. Când
este referită o variabilă tipul acesteia este determinat pe moment şi variabila este tratată ca
fiind ceea ce se cere în contextul dat. Codul PHP este evaluat şi executat pas cu pas astfel
nesiguranţa tipurilor unei variabile este o sursă foarte bogată de erori. Programele PHP
folosesc două categorii principale de date: numere şi şiruri de caractere. Numerele sunt
întregi sau cu virgulă flotantă. Pentru a defini o variabilă se foloseşte o notaţie de forma:
$nume_variabilă. Tipul unei variabile se determină în funcţie de contexul în care este
folosită. De exemplu unei variabile i se poate atribui succesiv un număr întreg apoi un
număr real fară să fie vreo problemă. Tablourile sunt asociative, astfel se pot indexa nu
numai după numere ci şi după şiruri de caractere. PHP-ul include o diversitate de operatori
şi funcţii utile pentru prelucrarea tablourilor, şirurilor de caractere şi a numerelor .
Datele dintr-o formă sunt disponibile prin intermediul variabilelor globale care sunt
gestionate automat de PHP şi sunt accesibile prin şirul asociativ $GLOBALS sau direct.
Unele dintre acestea sunt: $HTTP_USER_AGENT, $REMOTE_ADDR,
$REQUEST_METHOD, $QUERY_STRING, $PATH_INFO şi altele. Există variabilele
globale $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS,
$HTTP_ENV_VARS, $HTTP_SESSION_VARS, $HTTP_SERVER_VARS. Acestea sunt
şiruri asociative ce permit accesul la datele trimise dintr-o formă .
Există o bibliotecă cu funcţii pentru gestiunea unei sesiuni. O sesiune este creată în
momentul apelului funcţiei session_start() sau implicit când se înregistrează o variabilă ca
fiind legată de o sesiune cu funcţia session_register(). Aceste funcţii au rolul de a oferi
utilizatorului un identificator unic de sesiune, care apoi poate fi apoi folosit pentru a accesa
informaţii legate de acest identificator. Când un utilizator accesează o pagină care face
parte dintr-o sesiune atunci acestui utilizator i se va asocia un identificator nou sau i se va
reasocia unul care deja a fost stabilit într-un acces anterior. Variabilele globale asociate
sesiunii devin disponibile în codul paginii. Există module ce persistă starea unei sesiuni în
baze de date. După apelul funcţiei session_start() se poate accesa identificatorul de sesiune
prin funcţia session_id(). Când o sesiune nu mai este necesară se poate apela funcţia
session_destroy() care şterge datele asociate cu o sesiune. Variabilele asociate sunt
disponibile în script-ul care apelează session_destroy() până la reîncărcarea acestuia.
Pentru a elimina variabilele de sesiune există funcţia session_unset() .
În ceea ce priveşte interacţiunea cu serverul, există funcţii pentru a executa comenzi
shell (exec()) şi pentru a comunica între procese (de exemplu prin pipe sau prin socket).
Pentru a apela CGI-uri se poate folosi funcţia virtual(); singura problemă este ca CGI-ul
respectiv să trateze corect informaţiile de header HTTP [Sæt].
În PHP se pot folosi mai multe biblioteci ce oferă funcţii pentru prelucrarea
documentelor XML, pentru acces la diverse surse de date (MySQL, Oracle, prin ODBC,
PostgreSQL etc.), pentru comunicare în reţea, pentru prelucrarea arhivelor, pentru accesul
la memorie partajată şi semafoare, pentru criptare şi multe altele [Sæt].
PHP 4.0 spre deosebire de versiunile anterioare oferă suport mai bun pentru accesul
altor componente software. Astfel accesul unei componente COM în Windows sau accesul
unor metode Java pe orice sistem ce suportă un JVM devine posibil. Arhitecturile standard
pentru componente la nivel de întreprindere sunt (D)COM de la Microsoft, JavaBeans/RMI
de la Sun şi CORBA de la Object Management Group.
9
COM (Component Object Model) este o arhitectură software dezvoltată de Microsoft
ce permite abstractizarea unui obiect sau grup de obiecte în componente binare
reutilizabile. Componente situate pe maşini diferite pot comunica prin DCOM. Astfel
COM permite construirea de aplicaţii din componente software binare. Această tehnologie
este independentă de limbajul de programare.
Pentru a invoca serviciile unei componente COM în PHP 4.0 există clasa COM care se
instanţiază pasând numele componentei COM constructorului [Rat]. Astfel se obţine o
instanţă a obiectului COM ale cărui metode se pot executa. Pentru a crea o instanţă a unei
componente DCOM se foloseşte un alt constructor al clasei COM din PHP 4.0 dar cu alţi
parametri: $comp = new COM("Nume.Componentă","adresă.server.com"). În PHP 3.0 nu
se poate folosi clasa COM dar există funcţiile ajutătoare: com_load("Nume.Componentă),
com_invoke($comp, "nume.metodă", "param1", "param2"), com_set($comp,
"Nume.Proprietate", "valoare") şi com_get($comp, "Nume.Proprietate"), aici $comp este
rezultatul întors de com_load() [Rat].
PHP 4.0 poate fi compilat să suporte apelul de metode Java. Asemănător unei
componente COM se utilizează şi o clasă Java: $system = new Java("java.lang.System").
Pentru accesul proprietăţilor există funcţiile ajutătoarea getProperty() şi setProperty(), de
exemplu: printf("Java version = %s \n", $system->getProperty("java.version")).
Accesul obiectelor Java şi a componentelor COM este posibil datorită motorului de
interpretare a PHP-ului. Acesta foloseşte o tehnică denumită object overloading .
10
Voi prezenta într-o pagină Web situaţia mişcărilor de materiale accesibilă prin
intermediul fişei unui material aflat în catalogul de materiale al unei societăţi comerciale.
Accesibile vor mai fi catalogul notelor de recepţie şi cel al bonurilor de consum. Un alt caz
de utilizare pe care doresc să-l prezint este acela al introducerii unităţilor de măsura în
scopul de le asocia materialelor existente în catalog, liniilor unei note de recepţie şi ale
unui bon de consum.
Sistemul este format dintr-o aplicaţie de gestiune a materialelor şi două aplicaţii Web
care comunică cu aplicaţia de gestiune. În cele ce urmează voi prezenta structura
aplicaţiilor, din cea de gestiune a materialelor voi prezenta doar atât cât este folosit în cele
două aplicaţii Web.
Această aplicaţie are o arhitectură pe trei nivele, care propune separarea în trei straturi :
cel care realizează accesul la date, cel care se ocupă de logica a aplicaţiei şi stratul care
reprezintă interfaţa cu utilizatorul.
Concluzii
Un mare avantaj al aplicaţiilor Web este acela că sunt foarte uşor de livrat. Singurul
produs de care are nevoie un client este un browser, restul se lasă pe seama aplicaţiei şi a
server-ului care o găzduieşte.
PHP-ul este un limbaj de scriptare; nu se deosebeşte cu mult de restul din punct de
vedere al facilităţilor pentru gestiunea de cereri HTTP, menţinerea stării clientului şi
construirea unui răspuns. În opinia mea PHP este o opţiune în cadrul aplicaţiilor simple sau
medii care comunică direct cu o bază de date. Este dificil de folosit în cazul unor aplicaţii
mari pe mai multe nivele care folosesc diverse tehnologii şi sunt executate conform mai
multor şabloane de proiectare.
11
Bibliografie
[1] Ahmed M., Garrett C., Faircloth J., Payne C. "ASP.NET Web Developer’s Guide",
Syngress Publishing, 2002
[2] Armstrong E., Ball J., Bodoff S., Bode Carson D., Evans I., Green D., Haase K.,
Jendrock E. "The J2EE™ 1.4 Tutorial", Sun Microsystems, 2004"
[3] Calvert C., Calvert M., Kaster J., Swart B. "Kylix Developer’s Guide" , Sams 2002
[4] Iyengar A., Jim Challenger, Daniel Dias, Paul Dantzig "High-Performance Web
Site Design Techniques" IEEE Internet Computing Martie-Aprilie 2000
[5] Martin J., Tomson B. "Introducere în ASP.NET", Teora 2002
[6] McCarty B."PHP 4", Teora 2002
[7] Trifu B.E."Programarea Dinamică a Paginilor Web cu Active Server Pages",
Editura Albastră 2001
12