Programmare server Programmazione Web 1
Richiesta a un sito sta2co HTTP req: GET www.uniroma2.it You client (client) HTTP resp: HTML, CSS, js,... web server Server 1. Riceve una richiesta per un file 2. Cerca il file e se lo trova lo invia in risposta Programmazione Web 2
Richiesta a un sito dinamico Il server deve rispondere dinamicamente se è necessario fornire risultal diversi a seconda della situazione Ora o data richieste specifiche Contenuto del DB form o autenlcazione You client (client) HTTP req: GET www.uniroma2.it HTTP resp: HTML, CSS, js,... web server Server 1.Riceve la richiesta e vede che è per una risorsa "dinamica" 2. esegue il codice associato alla risorsa 3. invia l'output del codice al client Programmazione Web 3
Linguaggi per server Php linguaggio specifico per il web, open source, interpretato CGI/Perl Più vecchio del php ma difficile da usare. Usato per creare degli script nei sistemi unix ASP.NET Linguaggio MicrosoX, licenza commerciale; di pendente dalla piazaforma. Coldfusion linguaggio Adobe per chi non sa programmare, facile. costoso il server. Python Linguaggio ad ogge\ per scriplng generici. Java (JSP o servlet)- Java server-side programming, richiede Apache Tomcat o simili. Ruby linguaggio generico a ogge\ Javascript server di script come node.js Programmazione Web 4
CaraHeris2che da confrontare Embedding L'HTML è inserito nel codice (con delle print) o è il codice inserito nell'html? Flexibility quante strade ho per la soluzione del mio problema? Usability quanto è difficile da imparare e da usare il linguaggio? Security sviluppare nel linguaggio scelto è sicuro o devo scrivere del codice per garanlre la sicirezza? Ci sono buchi di sicurezza nel linguaggio? Speed of execu2on Con che velocità viene eseguito uno script? Generality Il linguaggio è generico o specifico? Programmazione Web 5
Sta2s2che Programmazione Web 6
Classifica per i maggiori si2 Programmazione Web 7
Programmazione Web 8
Programmazione Web 9
Popular sites using PHP Facebook.com Baidu.com Wikipedia.org Qq.com TwiZer.com Taobao.com Sina.com.cn Vk.com Pinterest.com Onclickads.net Programmazione Web 10
Content Management Systems Applicazione lato server memorizza i contenul su db una sezione di amministrazione (back end), per geslre i contenul; una sezione applicalva (front end),per mostrare i contenul CMS famosi wordpress joomla drupal magento django Programmazione Web 11
Content Management Systems Programmazione Web 12
Content Management Systems Programmazione Web 13
PHP Programmazione Web 14
Cosa è PHP? PHP è l acronimo ricorsivo di PHP HyperText Preprocessor Inizialmente era l acronimo di Personal Home Page PHP è un linguaggio di programmazione creato da Rasmus Lerdorf nel 1994 per costruire delle estensioni in documenl HTML e migliorare così la sua home page personale Porzioni del documento HTML sono generate dinamicamente PHP è open source Programmazione Web 15
Cosa è PHP PHP convive normalmente all interno di documenl HTML È possibile creare degli script in PHP eseguil da una shell PHP viene normalmente eseguito dal server prima che la pagina venga inviata all utente L output di PHP è normalmente codice HTML per il browser, ma ci sono molte eccezioni Puo generare anche immagini, documenl pdf, documenl XML, filmal Flash,... Programmazione Web 16
Storia 1994 PHP fu pensato e sviluppato nell autunno del 1994 da Rasmus Lerdorf (membro del team di sviluppo di Apache). 1995 Rilasciato PHP/FI (Form Interpreter) versione 2. PermeZeva l accesso a database (MySql) 1997 Rilasciato PHP versione 3 (riscrizura in C++ dell interprete da parte di Zeev Suraski e Andi Gutmans) 2000 Rilascio di PHP 4 basato sul motore di scriplng Zend www.zend.com 2004 Rilascio di PHP 5 Programmazione Web 17
Vantaggi La curva di apprendimento è brevissima Veloci tempi di sviluppo Alte prestazioni e stabilità Supporto dei sistemi operalvi principali (UNIX, Linux, Windows,...) Supporto nalvo per i database più popolari Molte librerie built-in Pre-installato nelle distribuzioni Linux Programmazione Web 18
Esempio PHP hello.php Programmazione Web 19
Risposta server Programmazione Web 20
ArchiteHura web con php HTTP req: GET www.uniroma2.it/hello.php php You client (client) HTTP resp: output dell' interprete web server 1. richiesta di un documento con estensione.php 2. il server invia il documento al PHP 3. PHP interpreta lo script produce un output 4. il server produce la risposta HTTP Programmazione Web 21
Esempio PHP hello2.php Programmazione Web 22
Esempio PHP 2 hello3.php Programmazione Web 23
Esempio PHP - CSS Programmazione Web 24
Inserire codice php <?php...?> TuZo quello che è racchiuso fra i tag <?php...?> viene interpretato dal modulo PHP in alcuni casi si può omezere il tag di chiusura Metodi alternalvi per inserire codice php da configurare in php.ini <? CODICE PHP?> (short_open_tag) NON PIU' SUPPORTATO <% CODICE PHP %> (asp_tags) <script language= php > CODICE PHP </script> Programmazione Web 25
Pagina di configurazione Per vedere quali parlcolari estensioni sono state installate o per vedere come il file php.ini è stato configurato è possibile eseguire il seguente script <?php phpinfo();?>! Inserire la riga precedente in un file (e.g., info.php) e poi invocare hzp://localhost/info.php La funzione phpinfo() crea una pagina HTML contente informazioni su come PHP è stato installato Programmazione Web 26
Errori in PHP Il server non comunica gli errori al client Possiamo modificare una dire\va in php.ini per mostrare nel browser gli eventuali errori (solo il primo) di script PHP Cercare la dire\va display_errors e sezare display_errors = On SOLO PER DEBUGGING Programmazione Web 27
Ambiente server Server STUD Apache con modulo php Mysql SoXware per lavoro in locale Xampp WINDOWS, LINUX, MAC Easyphp WINDOWS Wamp WINDOWS Programmazione Web 28
Sviluppare con IDE NetBeans + Chorme Connector h"p://www.netbeans.org Eclipse PDT h"p://eclipse.org/pdt/downloads/ Komodo IDE h"p://ac5vestate.com/products/komodo_ide phpdesigner h"p://mpso<ware.dk PHPEclipse h"p://phpeclipse.de PhpED h"p://nusphere.com PHPEdit h"p://www.phpedit.com Programmazione Web 29
Verificare il proprio ambiente Creare programma hello.php Creare programma info.php Programmazione Web 30