Laborator 1. Introducere


Responsabil: Popovici Matei <pdmatei@gmail.com>

Data publicarii: 21-02-2008

Data ultimei modificari: 21-02-2008


Obiective

In urma parcurgerii acestui laborator studentul va fi capabil sa:

- cunoasca mecanismul de transmitere a informatiilor intre client si server, folosind protocolul HTTP

- inteleaga aspectele-cheie ale dezvoltarii unei aplicatii web cu PHP

- instaleze si foloseasca aplicatia WAMP (Windows-Apache-MySQL-PHP)


Prezentarea laboratorului


Protocolul HTTP (HyperText Transfer Protocol) este folosit pentru schimbul de informatii intre un client si un server in mediul Internet. HTTP este un protocol "request-response". Astfel, clientul (de obicei un browser web), efectueaza o "cerere HTTP" catre un server, pentru a obtine o resursa (de cele mai multe ori, o pagina web). Serverul trimite clientului un "raspuns HTTP" ce contine resursa ceruta, sau un mesaj de eroare, in cazul in care aceasta este inexistenta.


HTTP este un protocol "stateless", in sensul ca fiecare cerere de la client este tratata independent de celelalte. Astfel, stabilirea unei "sesiuni de comunicare" intre client si server nu poate fi realizata la nivelul HTTP. Pentru aceasta se vor folosi alte mecanisme, precum cookie-uri sau sesiuni in PHP, asa cum se va vedea mai tarziu.


HTTP contine o serie de metode (comenzi care pot fi adresate serverului). Aceste metode indica actiunea de executat pentru resursa specificata. Metodele protocolului HTTP, utile la Programare Web sunt GET si POST.

Ele se clasifica in metode "safe" si metode generale. Metodele "safe" (cum este GET), pot fi folosite doar pentru obtinerea de informatii particulare aferente unei resurse; nu este recomandata folosirea metodelor "safe" pentru schimbarea starii interne a serverului (de ex, modificarea unui tabel din baza de date a serverului). Pentru astfel de actiuni, se recomanda folosirea metodei POST.

Modul de folosire a metodelor GET si POST va fi detaliat la laboratoarele viitoare. Pentru detalii vizavi de protocolul HTTP consultati:


http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol


Aspecte cheie pentru dezvoltarea aplicatiilor web


Datorita usurintei de programare folosind PHP, si a gamei extinse de resurse si tutoriale legate de acest limbaj, orice persoana, indiferent de pregatire, poate scrie o aplicatie web cu nivel mediu de complexitate, intr-un timp relativ scurt. Aceasta tendinta se poate observa cu usurinta examinand multitudinea de site-uri de calitate slaba de pe piata romaneasca. Necesitatea unor aplicatii robuste si performante este cu-atat mai mare, in acest context.


Cel mai important aspect-cheie pentru o aplicatie web este arhitectura. O aplicatie de cele mai multe ori se modifica si extinde in acelasi ritm cu cresterea companiei pe care o sustine. Prin urmare codul unei astfel de aplicatii trebuie sa fie usor de citit si de modificat ("refactorable"), trebuie sa fie usor extensibil ("extensible") si mai ales sigur ("defensive coding": folosirea unor norme pre-stabilite la scrierea codului, pentru a evita bug-urile, precum si verificarea exhaustiva a datelor ce "intra" in aplicatie). De asemenea, componentele unei aplicatii trebuie sa fie cuplate cat mai slab.


Toate aceste aspecte sunt de mare importanta in realizarea unei arhitecturi web iar aceasta necesitate este impusa partial si de situatia din "industria web". Realizarea unui magazin-online poate dura astazi mai putin de 5 zile lucratoare. Ori acest lucru nu poate fi posibil decat folosind aplicatii cu grad mare de genericitate, si usor de adaptat la cerintele particulare ale clientilor.

Subsumata arhitecturii, se afla si urmatoarele alte aspecte fundamentale legate de o aplicatie web:

- interfata & utilizabilitate - o aplicatie web trebuie sa aiba o interfata simpla si predictiva pentru utilizator, iar interactiunile si fluxurile de informatii interschimbate trebuie sa fie intuitive si simple;

- gestiunea informatiilor - informatiile unei aplicatii trebuie sa fie cat mai vizibile / usor de accesat;

- structura bazei de date;

- securitatea aplicatiei;

- optimizarea pentru motoarele de cautare.



WAMP


WampServer este un mediu de dezvoltare in Windows pentru aplicatii web folosind ApacheServer, PHP si MySQL. De asemenea el contine utilitarele SQLite Manager si PHPMyAdmin utile pentru gestionarea bazei de date.

Pentru detalii si download consultati:

http://www.wampserver.com/


Pentru administrarea bazelor de date mai puteti folosi pachetul de aplicatii "MySQL Administrator - MySQL Query Browser - MySQL Migration Toolkit", ce poate fi downloadat de aici:


http://dev.mysql.com/downloads/gui-tools/5.0.html