Script-PHP.Ro
Interactiunea dintre PHP, serverul Web si browser - Versiune printabilă

+- Script-PHP.Ro (https://script-php.ro)
+-- Forum: ZONA WEB (https://script-php.ro/forumdisplay.php?fid=85)
+--- Forum: Tutoriale (https://script-php.ro/forumdisplay.php?fid=98)
+--- Subiect: Interactiunea dintre PHP, serverul Web si browser (/showthread.php?tid=383)



Interactiunea dintre PHP, serverul Web si browser - YoYo - 29/04/2017

PHP este un limbaj interpretat, adica un program php este executat direct de interpretorul PHP care este un fisier binar (numit php.exe sau php-win.exe pe Windows si php pe Unix).

Programele PHP pot fi rulate in doua moduri:

- din linia de comanda prin apelarea interpretorului php avand ca argument scriptul de executat.

- cu ajutorul serverului web. Serverul web folosit in general pentru colaborarea cu interpretorul PHP este Apache. Este in prezent cel mai folosit server web, este un proiect open-source (ca si php si mysql), si este gratuit.
Serverul web trebuie configurat astfel incat sa functioneze impreuna cu interpretorul PHP. Serverul web va fi configurat astfel incat va diferentia fisierele cu extensia .html fata de fisierele cu extensia .php astfel:
- fisierele html le trimite direct catre browser (clientul web)
- fisierele php le va trimite interpretorului php pentru a fi executate, si rezultatul executarii va fi trimis in final catre browser

Ca si programatori web ne intereseaza inspecial a doua optiune, executarea programului PHP prin intermediul serverului web.


Interactiunea dintre PHP, Apache, Mysql si clientul web

Voi lua ca exemplu accesarea adresei You are not allowed to view links. Register or Login to view. pentru explicarea modului in care aceste aplicatii interactioneaza.

Pasul 1
Utilizatorul tasteaza in browser adresa You are not allowed to view links. Register or Login to view. sau da click pe un link ce trimite browserul la aceasta adresa. Aceasta adresa, numita URL, este formata din 3 parti:
- http:// - reprezinta protocolul (setul de reguli) prin care clientul web comunica cu serverul web. Acest protocol se numeste HTTP.
- script-php.ro - reprezinta numele serverului la care clientul trebuie sa se conecteze
- /index.php - indica locatia resursei cautata de client pe acel server (poate fi si mai complicata, gen: /folder/fila.php!).

Pasul 2
Browserul (clientul web), prin intermediul unui server DNS afla adresa IP a serverului script-php.ro si trimite acestui server web o cerere HTTP ce solicita resursa /index.php de pe server.

Pasul 3
Serverul web primeste cererea HTTP si determina locatia fisierului respectiv pe harddisk. Acest lucru se realizeaza prin configurarea optiunii DocumentRoot sau prin configurarea de alias-uri.
DocumentRoot indica locatia de pe harddiskul serverului in care se afla si din care sunt partajate paginile web. Astfel, calea /index.php este transformata de server in c:\www\index.php, daca DocumentRoot este setat cu valoarea c:\www.

Pasul 4
Extensia fisierului cerut fiind .php, serverul web va trimite continutul fisierului .php catre interpretorul PHP pentru a fi executat.

Pasul 5
Interpretorul PHP citeste sursa fisierului .php, si construieste output-ul final, ce constituie sursa paginii web ce va fi trimisa browserului. La aceasta etapa, daca exista cereri catre serverul de baze de date, interpretorul PHP comunica cu serverul mysql pentru interogarea bazei de date si folosirea datelor obtinute astfel in program.

Pasul 6
Output-ul generat de interpretorul .php este trimis serverului web, si reprezinta sursa finala a paginii web. Serverul web trimite sursa paginii catre clientul web (browser).

Pasul 7
Browserul primeste in final sursa paginii web (cod html, css si javascript) si o formateaza pentru a fi afisata utilizatorului.