![]() |
![]() |
![]() |
![]() |
![]() |
Présentation de l'objet Request |
Le rôle de l'objet Request est de permettre de récupérer la réponse HTTP envoyée par le navigateur au serveur, c'est-à-dire la page Web demandée par le client.
L'objet Response permet en réalité de manipuler l'ensemble des informations
Les constituants de l'objet Request |
L'objet Request possède plusieurs collections, une propriété et une méthode:
Objet Request | ||
Collections | Methodes | Propriétés |
---|---|---|
ClientCertificates | TotalBytes | BinaryRead |
Cookies | ||
Form | ||
QueryString | ||
ServerVariables |
La majorité des propriété et des méthodes de l'objet Request correspondent à des fonctions ou propriétés permettant de manipuler les champs de la requete HTTP.
La réception de données |
Pour comprendre comment utiliser l'objet Request, il est nécessaire de connaître la manière de laquelle les données sont envoyées au navigateur grâce à la requête HTTP. Pour cela réferrez-vous à la section "formulaire HTML".
L'envoi de données à un script CGi se fait par l'intermédiaire d'un formulaire HTML.
Les formulaires HTML se créent à l'aide de la balise <FORM>
contenant des boutons, des champs, des listes et/ou des cases à cocher repérés
par des noms auxquels seront associés des valeurs, fonction de la saisie des utilisateurs,
puis d'un bouton de soumission du formulaire qui enverra l'ensemble des informations au script
indiqué en tant qu'attribut Action de la balise FORM selon la méthode
GET ou POST. Chaque élément du formulaire doit possèder un nom unique, de
telle façon que la valeur associé à l'élément forme avec le nom
de celui-ci une paire nom/valeur du type:
Nom_de_l_element=valeur
L'ensemble des paires nom/valeur sont séparées par des esperluettes (le caractère
"&"). Ainsi, l'envoi d'un formulaire crée une chaîne de la forme:
champ1=valeur1&champ2=valeur2&champ3=valeur3
L'envoi de cette chaîne se fera différamment selon que la méthode utilisée
pour l'envoi du formulaire est GET ou POST.
![]() |
Il est possible de lire les informations transmises à la page cible avec une seule et unique méthode et ce quelque soit la méthode d'envoi (GET ou POST).
Par exemple : dim sParam1 : sParam1 = Request("Pramar1") dim sParam2 : sParam2 = Request("Pramar2")Cela est trés pratique lorsqu'une même page peut-être appelée par un formulaire en GET et un autre en POST. |
La collection QueryString |
La collection QueryString permet de récupérer la valeur associée
à un champ par la syntaxe suivante
<%@ LANGUAGE="VBSCRIPT" %>
<% Request.QueryString("Champ") %>
Ainsi pour afficher tous les champs d'un formulaire, il est possible d'utiliser la
clause For Each du VBScript, qui permet de parcourir l'ensemble des enregistrements
d'une collection. Voici un script qui affiche l'ensemble des valeurs associées aux champs
d'un formulaire après envoi au serveur:
<%@ LANGUAGE="VBSCRIPT" %>
<% For Each Champ in Request.QueryString %>
<%
Response.write(Champ + " = ")
Response.write(Request.QueryString(Champ)) %>
<%BR%>
<% Next %>
La collection Form |
Alors que la collection QueryString permet de récupérer de façon simple les données envoyées au script ASP par l'intermédiaire de l'URL (c-est-à-dire par la méthode GET), la collection Form permet de manipuler les données envoyées par un formulaire utilisant la méthode POST.
La collection Form permet de récupérer la valeur associée
à un champ par la syntaxe suivante
<%@ LANGUAGE="VBSCRIPT" %>
<% Request.Form("Champ") %>
Ainsi pour afficher tous les champs d'un formulaire, il est possible, comme pour la
collection QueryString, d'utiliser la
clause For Each du VBScript, permettant de parcourir les enregistrements
d'une collection. Voici un script qui affiche l'ensemble des valeurs associées aux champs
d'un formulaire après envoi au serveur:
<%@ LANGUAGE="VBSCRIPT" %>
<% For Each Champ in Request.Form %>
<%
Response.write(Champ + " = ")
Response.write(Request.Form(Champ)) %>
<%BR%>
<% Next %>
La collection Cookies |
La collection Cookies permet de récupérer les valeurs d'un cookie, c'est-à-dire un fichier présent sur le disque du client contenant des données envoyées par le serveur, (un cookie peut être créé grâce à l'objet Response).
L'accève aux données d'un cookie se fait de la manière suivante:
<%@ LANGUAGE="VBSCRIPT" %>
<% Variable = Request.Cookies("NomCookie")("Element") %>
Il est possible de parcourir l'ensemble des Cookies par le script suivant:
<%@ LANGUAGE="VBSCRIPT" %>
<% For Each Element in Request.Cookies %>
<%
Response.write(Element + " = ")
Response.write(Request.Cookies(Element)) %>
<%BR%>
<% Next %>
La collection ServerVariabless |
La collection ServerVariables de l'objet Request contient les en-têtes HTTP de la requête, pouvant parfois donner des informations très utiles sur les visiteurs où le navigateur du client...
La syntaxe pour récupérer ces en-têtes est la suivante:
Request.ServerVariables("NOM-EN-TETE")
Voici les principaux en-têtes pouvant être utiles:
Nom de l'en-tête | Description |
---|---|
ALL_HTTP | Type de méthode utilisée par le client (ie POST ou GET) |
CONTENT_TYPE | Type de contenu du corps de la requête (par exemple text/html). Voir types MIME |
METHOD | Type de méthode utilisée par le client (ie POST ou GET) |
REFERER | URL du lien à partir duquel la requête a été effectuée |
REMOTE_ADDR | Adresse IP du client |
HTTP_ACCEPT_LANGUAGE | Langage attendu par le browser (anglais par défaut) |
HTTP_USER_AGENT | Chaîne donnant des informations sur le client, comme le nom et la version du navigateur, du système d'exploitation |
Pour compter les visiteurs d'un site par exemple, il peut être intéressant de stocker
l'adresse IP de ces derniers et de compter le nombre d'adresses IP stockées étant
différentes chaque jour. Voici le code permettant de stocker dans une variable l'adresse IP
d'un visiteur, et qui l'affiche:
<%@ LANGUAGE="VBSCRIPT" %>
<%
IP = Request.ServerVariables("REMOTE_ADDR")
Response.write("Votre adresse IP est : " + IP) %>
<%BR%>