In questa lezione analizziamo come il client, generalmente attraverso un browser, può passare valori al server.
HTTP
WWW (World Wide Web) significa “ragnatela intorno al mondo” ed è un insieme di pagine multimediali, documenti testuali, audio e video, collegati tra loro, entro i quali ci si può spostare con diverse modalità. Il World Wide Web per il trasferimento di dati ipertestuali si basa sul protocollo applicativo Hyper-Text Transfer Protocol (HTTP) che, come tutti i servizi di rete, utilizza l’architettura client-server. I pacchetti HTTP scambiati possono essere di tipo Request se partono dal client verso il server e Response se sono risposte che il server invia al client.
L’HTTP è un protocollo che lavora con un’architettura di tipo client/server: il client invia una richiesta e il server restituisce la risposta al mittente. Nell’uso comune il client corrisponde al browser ed il server alla macchina su cui risiede il sito web. Vi sono quindi due tipi di messaggi HTTP: messaggi richiesta e messaggi risposta.
Il server generalmente resta in ascolto delle richieste dei client sulla porta 80 usando il protocollo TCP a livello di trasporto.
Una riga del messaggio di request è composta dal metodo, l’URI e versione del protocollo. Il metodo di richiesta può essere uno dei seguenti:
- GET
- POST
- HEAD
- PUT
- DELETE
- PATCH
- TRACE
- OPTIONS
- CONNECT
GET
I metodi più utilizzati per il passaggio di valori al server sono il metodo GET e quello POST. Il metodo GET è utile quando vogliamo passare dei valori in chiaro, cioè visibili a tutti. Possiamo inviare dei valori al server inserendoli direttamente nell’URL dove risiede la pagina php facendolo seguire dal carattere ? e da coppie <variabile>=<valore>:
Nella figura è rappresentato il passaggio al server dei valori presenti nelle variabili nome e cognome. Il server può leggere questi valori perchè vengono memorizzati nell’array $_GET:
<?php
$nome = $_GET['nome'];
$cognome = $_GET['cognome'];
echo "Il nome è ".$nome." n/ il cognome è ".$cognome;
?>
POST
Il metodo POST permette di inviare al server dei dati non esplicitamente visibili. Solitamente viene utilizzato se occorre passare valori attraverso gli HTML Forms.
Supponiamo di dover creare la seguente interfaccia che permette di calcolare la somma di due valori:
Possiamo implementare la pagina HTML nel seguente modo:
<html>
<head> <title> Calcolatrice </title></head>
<body>
<form action="somma.php" method="post">
<table>
<tr>
<td> primo numero </td>
<td> <input type="text" name="txtNumero1"></td>
</tr>
<tr>
<td> secondo numero </td>
<td> <input type="text" name="txtNumero2"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="somma"></td>
</tr>
<table>
</form>
</body>
</html>
Il file destinatario dei dati del form è somma.php che risiede sul web server
<form action="somma.php" method="post">
Le variabili nelle quali sono memorizzati i dati provenienti dal client sono contenuti nel vettore $_POST:
<?php
$primoNumero = $_POST['txtNumero1'];
$secondoNumero = $_POST['txtNumero2'];
$somma = $primoNumero + $secondoNumero;
echo "La soluzione è ".$somma;
?>
Torna a PHP