GET /~kn/index.html HTTP/1.1
Host: www.lri.fr
HTTP/1.1 200 OK
Server: nginx/1.4.1 (Ubuntu)
Date: Sun, 17 Nov 2013 16:44:48 GMT
Content-Type: text/html
Content-Length: 2038
Homepage
…
]]>
} ← code de retour
} ← type de contenu
} ← longueur du contenu
} ← contenu (2038 octets)
GET /~kn/fichier.pdf HTTP/1.1
Host: www.lri.fr
HTTP/1.1 200 OK
Server: nginx/1.4.1 (Ubuntu)
Date: Sun, 17 Nov 2013 16:44:48 GMT
Content-Type: application/pdf
Content-Length: 103449
>
stream
………
]]>
Fichier notes_csv.php:
<?php
header('Content-type: application/csv');
header('Content-Disposition: attachement; filename="notes.csv"');
echo "Nom, Note\n";
foreach ($NOTES as $nom => $note)
echo $nom . ", " . $note . "\n";
?>
⚠ Attention!
En tête utilisés par le serveur dans ses réponses
En tête utilisés par le client dans ses requêtes
On rappelle que HTTP est un protocole stateless (sans état, i.e. le serveur Web ne conserve pas d'information entre les connexions). Quel problème cela pose-t-il ?
⇒ difficle de réaliser une « application » moderne répartie sur plusieurs pages
Un cookie est un packet de données envoyé par le serveur, stocké par le client (navigateur Web) et renvoyé au serveur lors d'une nouvelle connexion. Les propriétés d'un cookie sont:
⚠ Attention! seul le domaine qui a déposé le cookie est capable de le relire
Créer ou mettre à jour un cookie sur le client:
setcookie($nom, $val, $date);
(on peut récupérer le nombre de secondes depuis epoche avec
la fonction time()).
Exemple:
setcookie("mon_cookie", "42", time() + 3600 * 24 * 30);
On peut récupérer la valeur d'un cookie depuis PHP:
$_COOKIE["mon_cookie"]
Un cookie "foo" existe (i.e. a été défini auparavant) si une entrée correspondante existe dans le tableau global $_COOKIE. On peut tester qu'une entrée existe dans un tableau avec isset().
⚠ Attention!
Une session HTTP est un ensemble de requêtes/réponses HTTP
entre un serveur et un même client.
Exemple d'un sondage en ligne:
Pour programmer une application Web, on souhaîte avoir accès à des variables de session c'est à dire des variables qui sont:
Les variables de sessions sont donc propres à chaque client et persistent le temp de la session (le temps de session est décidé par le serveur)
On initie une session avec la fonction:
session_start();
Une fois appelée, la variable $_SESSION contient un tableau que l'on peut utiliser entre plusieurs pages. Les valeurs contenues dans le tableau persistent jusqu'à la fin de la session. Une session se termine:
⚠ Attention! session_start() doit être appelé avant le premier echo du fichier.
<?php /* Fichier page1.php */
session_start();
$_SESSION["Valeur"] = 42;
?>
Veuillez cliquer sur le "page2.php"lien
]]>
La valeur est echo $_SESSION["Valeur"];