|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ASP - L'objet ResponsePrésentation de l'objet ResponseLe rôle de l'objet Response est de permettre de créer la réponse HTTP qui va être envoyée au navigateur, c'est-à-dire la page Web demandée par le client. L'objet Response permet ainsi de manipuler l'ensemble des informations à destination du navigateur du client, c'est-à-dire le corps de la réponse mais également les statuts et en-têtes HTTP. Les constituants de l'objet ResponseL'objet Response possède une seule collection et de nombreuses propriétés et méthodes :
La majorité des propriétés et des méthodes de l'objet Response correspondent à des champs de la réponse HTTP. L'envoi de données au navigateurPour envoyer du texte au navigateur dans un code ASP, il suffit d'utiliser la méthode write de l'objet Response, voici un exemple simple montrant comment utiliser cette méthode : <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Exemple de script ASP</TITLE> </HEAD> <BODY> <% Response.write("http://www.commentcamarche.net") %> </BODY> </HTML> Ce script est totalement inutile dans la mesure où un simple fichier HTML pourrait donner le même résultat. L'intérêt de cette méthode est de pouvoir gérer des variables ainsi que des chaînes : <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Exemple de script ASP</TITLE> </HEAD> <BODY> <% For i=1 to 10 Response.write("Compte à rebours: " & 10 - i & "<br>") Next %> </BODY> </HTML> Il existe une écriture simplifiée permettant d'envoyer du texte au navigateur, elle consiste à faire précéder la chaîne à envoyer du caractère = : <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Exemple de script ASP</TITLE> </HEAD> <BODY> <% for i=1 to 10 %> <% = "Compte à rebours: " & 10 - i & "<br>" %> <% Next %> </BODY> </HTML> La méthode Write() gère la conversion des données entrées en paramètre en chaîne de caractères utilisant le jeu de caractères par défaut du serveur. Pour envoyer des données binaires, il est possible d'utiliser la méthode BinaryWrite(). La méthode BinaryWriteTandis que la méthode Response.Write envoie au navigateur des données formatées selon le jeu de caractères du serveur, la méthode BinaryWrite permet d'envoyer au navigateur des données brutes (binaires). Sa syntaxe suit le même schéma que la méthode Response.Write : <% Response.BinaryWrite(DonneesBinaire) %> A l'inverse, ASP fournit une méthode à l'objet Request permettant de lire des données binaires, il s'agit de Request.BinaryRead. Les en-têtes HTTPLors de chaque échange par le protocole HTTP entre votre navigateur et le serveur, des données dites d'en-têtes contenant des informations non affichées sont transmises. Les en-têtes HTTP permettent aussi d'effectuer des actions sur le navigateur comme le transfert de cookies ou bien une redirection vers une autre page. Ces en-têtes sont les premières informations envoyées au navigateur (pour une réponse) ou au serveur (dans le cas d'une requête), elles se présentent sous la forme : en-tête: valeur
La méthode Response.AddHeaderASP fournit une méthode permettant d'envoyer très simplement des en-têtes HTTP au navigateur du client. La syntaxe de cette méthode est la suivante : <% Response.AddHeader Nom-en-tete-HTTP, Valeur-en-tete-HTTP %>
Voici quelques utilisations possibles de la fonction AddHeader() :
Dans la plupart des cas (comme ceux décrits ci-dessus) il existe une méthode de l'objet Response permettant d'envoyer spécifiquement l'en-tête désiré. Ainsi il est conseillé d'utiliser la méthode Response.Redirect pour envoyer l'en-ête Location. L'envoi de cookies au navigateurL'objet Response, outre la possibilité qu'il offre d'envoyer une page Web au navigateur du client, permet aussi d'envoyer des cookies à celui-ci, c'est-à-dire de stocker des données dans un fichier du client sous la forme de paires nom/valeur. L'objet Response fournit la collection cookies pour effectuer les opérations d'envoi de cookies au navigateur. Le protocole HTTP permet de spécifier les valeurs de cookies dans les en-têtes HTTP, l'envoi de cookies au navigateur dans la page ASP doit donc se faire avant tout envoi dans le corps de la réponse. Pour stocker une valeur dans un cookie appelé CCMCookie, il suffit d'utiliser la commande suivante : <%@ LANGUAGE="VBSCRIPT" %> <% response.cookies("CCMCookie") = "Valeur" %> Pour stocker plusieurs valeurs associées à des index dans un cookie appelé CCMCookie, il suffit d'utiliser la commande suivante : <%@ LANGUAGE="VBSCRIPT" %> <% response.cookies("CCMCookie")("Index1") = "Valeur1" %> <% response.cookies("CCMCookie")("Index2") = "Valeur2" %> <% response.cookies("CCMCookie")("Index3") = "Valeur3" %> <% ... %> En réalité, le cookie ainsi créé n'aura qu'une durée limitée à celle de l'utilisation du navigateur, cela signifie qu'il sera effacé à la fermeture de celui-ci. Pour y remédier, il suffit de définir la propriété expires, qui définit la « date limite de péremption du gâteau ». <% response.cookies("CCMCookie").expires = #4/18/2000# %> La collection cookies possède d'autres propriétés que expires :
La méthode RedirectLa méthode Response.Redirect permet de forcer la redirection de la page du navigateur vers l'URL passée en paramètre. La syntaxe de la méthode Response.Redirect est la suivante : <% response.redirect "URL" %> Voici un exemple d'utilisation de cette méthode afin de faire rediriger le navigateur du client vers CCM : <% response.redirect "http://www.commentcamarche.net" %> La méthode AppendToLogLe serveur Web sur lequel l'application fonctionne possède un ou plusieurs fichiers spécifiques dans lesquels sont enregistrés certains événements. On appelle ce type de fichier log (en français fichier journal). ASP fournit une méthode permettant d'ajouter une ligne dans le fichier journal. Cette méthode s'utilise comme suit : <% response.AppendToLog "chaîne à stocker dans le fichier journal" %>
La propriété BufferLa propriété Buffer de l'objet Response indique au serveur s'il doit mettre en cache (mémoire tampon) ou non les données à envoyer au navigateur. Autrement dit, il s'agit d'une propriété spécifiant si les données sont envoyées au fur et à mesure de l'interprétation de la page ASP ou bien si le résultat de cette interprétation est envoyé en une seule fois à la fin. Cette propriété s'utilise de la manière suivante : <% response.buffer = [TRUE | FALSE] %> Lorsque la propriété Buffer est initialisée avec la valeur TRUE, les données sont mises en mémoire tampon. Il s'agit de la valeur par défaut du serveur Microsoft IIS 4.0. Lorsque la propriété Buffer est initialisée avec la valeur FALSE, les données sont envoyées au client au fur et à mesure. Il s'agit de la valeur par défaut du serveur Microsoft IIS 5.0. La méthode FlushLa méthode Response.Flush permet de forcer l'envoi des données au navigateur lorsque la propriété Buffer est activée (c'est-à-dire initialisée avec la valeur TRUE). Sa syntaxe est la suivante : <% response.flush %>
La méthode EndLa méthode Response.End permet de mettre fin à l'interprétation du script par le serveur (en cas d'erreur par exemple) et retourne au navigateur la réponse en cours (les éléments de réponse qui suivent l'appel de la méthode End sont ignorés). Cette méthode s'utilise simplement de la manière suivante : <% Response.End %>
La méthode ClearL'appel de la méthode Clear permet de supprimer tout le contenu de la réponse mis en mémoire tampon. Sa syntaxe est la suivante : <% Response.Clear %>
La propriété ExpiresLa plupart des navigateurs ont la possibilité de mettre en mémoire cache (le terme cacher est parfois utilisé) les pages web, c'est-à-dire la capacité à stocker temporairement une page sur le disque dur du client afin de pouvoir la restituer au plus vite si celle-ci est à nouveau demandée. La propriété Expires de l'objet Response permet de préciser le temps (en minutes) au bout duquel la page expire, c'est-à-dire le temps nécessaire pour que le navigateur du client estime qu'elle est périmée et qu'il la recharge afin d'actualiser celle qui est dans le cache. Sa syntaxe est la suivante : <% Response.Expires = Nombre_de_minutes %> Ainsi une valeur égale à zéro obligera le navigateur à recharger la page à chaque nouvelle requête : <% Response.Expires = 0 %>
La propriété ExpiresAbsoluteTandis que la propriété Expires permet de préciser une durée d'expiration en minutes, la propriété ExpiresAbsolute permet de fixer l'heure à laquelle la page sera considérée comme expirée et devra être à nouveau chargée : <% Response.ExpiresAbsolute = Date_d_expiration %> Voici un exemple d'utilisation de la propriété ExpiresAbsolute <% Response.ExpiresAbsolute = #October 3, 2007 18:24:31# %>
La propriété ContentTypeLa propriété ContentType permet d'informer le client sur le type de contenu envoyé par le serveur en lui faisant envoyer un en-tête HTTP (Content-Type) qui définit le type de données (Type MIME) qu'il s'apprête à lui envoyer. Par défaut le serveur envoie un en-tête contenant le type text/HTML correspondant à une page web (fichier HTML). Voici la manière selon laquelle cette propriété doit être utilisée : <% Response.ContentType = "type/MIME" %> Dans l'exemple ci-dessus type/MIME représente le type de fichier que le serveur
s'apprête à retourner. Les valeurs possibles de ce champ sont normalisées par l'IANA.
La propriété IsClientConnectedLa propriété Response.IsClientConnected permet au serveur de savoir si le client est toujours connecté, ou plus exactement s'il est encore en mesure de recevoir des données. Cette propriété est notamment utile dans le cas où le serveur envoie un volume de données important nécessitant que le client reste connecté pour télécharger les données (par exemple téléchargement d'un gros fichier généré dynamiquement par le serveur). La valeur prise par cette propriété permet de savoir si le client est encore en ligne ou non : <% Response.IsClientConnected %> Si la valeur est TRUE, le client est encore connecté. Dans le cas contraire (valeur FALSE) le client n'est plus à même de recevoir des informations de la part du serveur. La propriété CacheControlLa propriété CacheControl permet de spécifier si la page peut être mise « en cache » ou non, c'est-à-dire si des serveurs proxy peuvent ou non garder une copie locale de la page pour des gains en rapidité. La syntaxe de cette propriété est la suivante : <% Response.CacheControl = "public" | "private" %>Cette propriété peut prendre deux valeurs :
Il est possible de définir plus précisément la mise en cache des pages grâce aux propriétés Expires et ExpiresAbsolute, définissant une date d'expiration de la page, afin que le proxy ne garde pas en cache une page au-delà d'une certaine limite. La propriété CharsetCette propriété permet de définir le jeu de caractères Unicode utilisé dans la page. Il crée en fait un en-tête HTTP Content-Type définissant le jeu de caractères. La syntaxe de cette propriété est la suivante : <% Response.Charset = jeu_de_caracteres %> Le jeu de caractères utilisé en Europe est généralement le jeu ISO-latin-1 noté iso-8859-1 : <% Response.Charset = "iso-8859-1" %> La propriété PICSLa propriété PICS (Platform for Internet Content Selection) permet de définir une étiquette PICS (standardisée par le W3C) sur la page afin de permettre d'en évaluer le contenu. Sa syntaxe est la suivante : <% Response.PICS = chaine_PICS %> Voici un exemple d'usage de la propriété PICS : <% Response.PICS = "(PICS-1.1 ""http://www.gcf.org/v2.5"" labels on ""2003.03.16T11:34-0500"" exp ""2004.07.14T15:25-0000"" for ""http://www.commentcamarche.net/asp/aspintro.php3"" by ""Jean-François PILLOU"" ratings (suds 0.5 density 0 color/hue 1))" %>Le code ci-dessus produira l'envoi de l'en-tête HTTP suivant : PICS-Label: (PICS-1.1 "http://www.gcf.org/v2.5" labels on "2003.03.16T11:34-0500" exp "2004.07.14T15:25-0000" for "http://www.commentcamarche.net/asp/aspintro.php3" by "Jean-François PILLOU" ratings (suds 0.5 density 0 color/hue 1)) Plus d'informationDiscussions pertinentes trouvées dans le forum
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||