La demande et la réponse sont les deux objets intégrés les plus couramment utilisés fournis par ASP. Entre le navigateur (ou tout autre agent utilisateur) et le serveur Web, l'échange d'informations qui se produit dans la demande et la réponse peut être accessible et géré via deux objets intégrés dans l'ASP, appelés objets de demande et de réponse.
Presque tout le travail à effectuer dans la page ASP nécessite l'accès à ces deux objets. Bien sûr, leur objectif principal est d'accéder à la valeur renvoyée au serveur par l'utilisateur, c'est-à-dire obtenir à partir du segment <form> de la page HTML ou de le joindre à l'URL en tant que chaîne de requête, et de créer une sortie appropriée pour revenir à l'utilisateur, et il peut partager beaucoup de facteurs. Par exemple, les deux objets peuvent utiliser des cookies stockés sur l'ordinateur client.
Par conséquent, nous divisons le contenu en deux parties indépendantes (partie de chaque objet), et commençons d'abord par l'échange d'informations entre le client et le serveur, puis étudions chaque objet.
Le contenu de la recherche est:
· Comment le client communique avec le serveur pour livrer le Web ou d'autres ressources.
· Détails des objets de demande et de réponse, et ce qu'ils sont en commun.
· Comment accéder à la valeur correspondante via une chaîne de formulaire et de requête.
· Comment lire ou créer des cookies et les stocker sur l'ordinateur du client.
· Quelles sont les variables du serveur? Comment accéder et modifier les en-têtes HTTP.
· Décrire les modifications à d'autres entrées connexes, telles que l'utilisation du certificat du client.
Communication entre les clients et les serveurs
Pour économiser de l'espace, le navigateur de mots est utilisé dans le contenu suivant. Mais il faut rappeler que les applications qui peuvent accéder aux pages Web sont non seulement des navigateurs, mais de nombreuses applications spéciales téléchargent des pages Web à partir du site, telles que des programmes clients spéciaux conçus pour les utilisateurs ayant des défauts de vision ou en utilisant l'habituel le navigateur a d'autres difficultés pour personnes. L'exemple le plus évident est le robot utilisé par les moteurs de recherche pour accéder aux sites sur le Web. Considérez ces facteurs de manière approfondie, y compris les navigateurs Web ordinaires, le mot exact doit être un agent utilisateur.
Conversation de demande de page
Lorsqu'un navigateur fait une demande de page à un site Web, il doit évidemment dire au serveur quelle page il demande. La première chose à faire est d'établir une connexion au serveur via le nom de domaine, puis de fournir le chemin complet et le nom de la page demandée. Pourquoi avez-vous besoin d'un chemin complet et d'un nom? Le Web est un environnement sans bordure, il est donc nécessaire de créer une session pour identifier chaque client (comment ASP peut le faire plus tard).
Cela signifie que chaque fois que le serveur termine l'envoi de la page au client, le serveur oublie complètement le client. Ainsi, lorsque le client demande la page suivante, c'est exactement la même chose qu'un nouveau visiteur. Le serveur ne se souvient pas de ce client et, par conséquent, il ne peut pas déterminer quelle page il a demandé la dernière fois. Parce que vous ne pouvez pas utiliser un chemin relatif pour fournir une page, même si la page contient un lien relatif, par exemple:
| < a href = download.asp> page suivante </a> |
Le navigateur créera automatiquement une URL complète pour une nouvelle page en utilisant le domaine et le chemin de la page actuel; ou utilisez l'élément <base> dans la section <adref une page est. Par exemple:
| < Base Herf = http: //www.wrox.com/store > |
Lorsque vous pointez la souris vers un lien vers une page, il peut être vu dans la barre d'état du navigateur. Le chemin d'accès à la page actuelle et le domaine actuel ou le domaine de base ou le chemin de base ont été combinés avec le nom de la page demandée.
1. Détails des demandes des clients
La combinaison du chemin complet et du nom de la page demandée est la seule résidence du serveur lorsque le navigateur demande la page. Le contenu d'informations réel changera en conséquence avec le navigateur, et seul un petit nombre peut être fourni par d'autres applications telles que le robot du moteur de recherche. Pour mieux comprendre ces informations, voici une page de IE 5.0 http://www.wrox.com/store/
Download.asp Informations de demande:
| 7/8/99 10:27:16 Envoyé get /store/download.asp http / 1.1 Accepter: application / msword, application / vnd.ms-execl, application / vnd.ms- PowerPoint, image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / x- comète, * / * Accept-Language: en-us Encodage: gzip, dégonfler Référer: http://wwrox.com/main_menu.asp Cookie: VisitCount = 2 & LastDate = 6% 2F4% 2F99 + 10% 3A10% 3A13 + AM Agent utilisateur: Mozilla / 4.0 (compatible; MSIE 5.0; Windows 98) Hôte: 212.250.238.67 Connexion: Keep-Alive |
On peut voir à partir de cela que les informations contiennent des détails sur l'agent utilisateur et la connexion utilisateur (comme la langue par défaut), ainsi qu'une liste de types de fichiers ou d'applications acceptables. . beaucoup. Le navigateur peut accepter plusieurs fichiers image et plusieurs types de fichiers Microsoft Office. Les types de fichiers standard tels que TESX / HTML et Text / Text ne sont pas répertoriés. * / * Dans la liste de fichiers, tout type de fichier peut être renvoyé au navigateur, interprété par le navigateur ou via une application de plug-in.
Cookie: Le cookie contenu dans l'entrée est stocké sur l'ordinateur du client et n'est valable que pour ce domaine. Si la demande est le résultat de cliquer sur le lien, au lieu de saisir directement l'URL dans la barre d'adresse du navigateur, référente: l'entrée s'affiche, qui contient l'URL complète de la page de lien.
Hôte: l'entrée contient l'adresse IP ou le nom de l'ordinateur client. Cependant, cela ne suffit pas pour identifier avec précision le client. Parce que lorsqu'ils se connectent via un FAI, les adresses IP sont allouées dynamiquement, ou lorsqu'ils se connectent via un serveur proxy, les adresses IP proviennent du proxy plutôt que du client réel.
2. Détails de la réponse du serveur
Afin de répondre à la demande ci-dessus et de fournir la page demandée à un navigateur anonyme (c'est-à-dire que l'utilisateur n'a pas à fournir un nom d'utilisateur et un mot de passe d'accès), le contenu suivant est envoyé du serveur au client:
| 7/8/99 10:27:16 reçu HTTP / 1.1 200 OK Serveur: Microsoft-IIS / 5.0 Connexion: Keep-Alive Date: Thu, 8 juil 1999 10:27:16 GMT Type de contenu: texte / html Accept-glages: octets Longueur du contenu: 2946 Dernier mode: jeu, 8 juil 1999 10:27:16 GMT Cookie: VisitCount = 3 & LastDate = 7% 2F8% 2F99 + 10% 3A27% 3A16 + AM < html > & hellip; reste de la page… < / html > |
On peut voir que le serveur explique le logiciel et la version qu'il utilise au client. Message 200 OK signifie que la demande a été acceptée et satisfaite. Les informations suivantes sont les détails de la page renvoyés, y compris le type MIME (contenu-longueur :), taille (octet), le dernier temps de changement et le cookie de retour stocké par le client. Les autres informations de la réponse sont le flux d'informations du contenu de la page.
Dans certains cas, le serveur ne peut pas renvoyer une page après avoir répondu à une demande, peut-être parce que la page n'existe pas, ou que le client n'a pas les autorisations correspondantes pour y accéder. Nous discuterons des problèmes de sécurité plus tard. Maintenant, pour les situations où la page de demande n'existe pas (par exemple, l'utilisateur a entré la mauvaise URL dans la barre d'adresse du navigateur), les informations retournées commencent par:
| 7/8/99 14:27:16 reçu HTTP / 1.1 404 non trouvé Serveur: Microsoft-IIS / 5.0 … |
Ici, le code d'état et les informations indiquent que la page demandée par le client ne peut être trouvée. Le navigateur peut utiliser ces informations pour afficher les informations correspondantes à l'utilisateur (dans ce cas, les informations de réponse du serveur ne sont pas affichées dans IE 5.0, mais la page d'invite d'erreur d'aide correspondante) ou la page par défaut créée par le serveur (en s'appuyant sur le Paramètres du serveur. Objets de demande et de réponse
Les détails de la possibilité d'appliquer les demandes des clients et les réponses du serveur d'ASP sont implémentés via les objets de demande et de réponse intégrés de l'ASP.
· OBJET DE PRODICATION: Fournit les scripts avec toutes les informations fournies par le client lorsque le client demande une page ou transmet un formulaire. Cela inclut les variables HTTP qui peuvent indiquer le navigateur et l'utilisateur, les cookies stockés dans le navigateur sous ce nom de domaine, toute valeur de contrôle HTML fixée en tant que chaîne de requête à la chaîne après l'URL ou la section <form> de la page. Accès autorisé à l'aide de la couche de socket sécurisée (SSL) ou d'autres protocoles de communication chiffrés, ainsi que des attributs qui aident à gérer les connexions.
· Objet de réponse: utilisé pour accéder aux informations de réponse créées par le serveur et renvoyés au client. Fournit des variables HTTP pour les scripts qui indiquent les fonctions du serveur et du serveur et des informations sur le contenu renvoyé au navigateur, ainsi que pour tous les nouveaux cookies qui seront stockés dans le navigateur pour ce domaine. Il fournit également une gamme de méthodes pour créer une sortie, comme la méthode omniprésente.
1. Aperçu des membres de l'objet de demande
a) Collection d'objets de demande
L'objet de demande fournit 5 collections qui peuvent être utilisées pour accéder à diverses informations demandées par le client au serveur Web.
Collection et description des objets de demande
| Nom de collection | illustrer |
| ClientCertificate | Lorsqu'un client accède à une page ou à une autre ressource, l'ensemble numérique de tous les champs ou entrées du certificat client utilisé pour indiquer l'identité au serveur, chaque membre est en lecture seule |
| Cookies | Selon la demande de l'utilisateur, une collection de tous les cookies émis par le système de l'utilisateur. |
| Formulaire | Lorsque la valeur d'attribut de la méthode est POST, chaque membre est en lecture seule pour tous les ensembles de valeurs des unités de contrôle HTML dans la section <form> soumise en tant que demande. |
| Requête | Chaque membre est en lecture seule pour la valeur de toutes les unités de contrôle HTML dans <form>, en fonction de la paire de noms / valeur après que l'URL demandait par l'utilisateur ou soumis en tant que demande et l'attribut de méthode est GET (ou son attribut est omis ), ou les valeurs de toutes les unités de contrôle HTML dans <form> |
| Serveur | Une collection de valeurs d'en-tête HTTP émises par la demande du client et les valeurs de plusieurs variables d'environnement du serveur Web, chaque membre est en lecture seule |
b) Propriétés de l'objet de demande
Les propriétés uniques et la description de l'objet de demande sont présentées dans le tableau suivant. .
| propriété | illustrer |
| Totlbytes | En lecture seule, renvoie le nombre total d'octets de la demande émise par le client |
c) Méthodes d'objet de demande
La seule méthode et la description de l'objet de demande sont affichées dans le tableau suivant, qui permet d'accéder au contenu complet de la pièce de demande utilisateur transmise au serveur à partir d'un segment <form>.
Méthode et description de l'objet de demande
| méthode | illustrer |
| BinaryRead (Count) | Lorsque les données sont envoyées au serveur dans le cadre de la demande de poste, les octets de compte de données sont obtenus à partir de la demande du client et un tableau de variantes (ou SafeArray) est renvoyé. Si le code ASP fait déjà référence à la collection Request.form, cette méthode ne peut pas être utilisée. En même temps, si la méthode BinaryRead est utilisée, la collection de requête.form ne peut pas être accessible |
2. Aperçu des membres de l'objet de réponse
a) Collection d'objets de réponse
L'objet de réponse n'a qu'une seule collection, comme indiqué dans le tableau suivant, qui définit la valeur du cookie que vous souhaitez placer sur le système client, qui est directement équivalent à la collection de demande.cookies.
Collection et description des objets de réponse
| Nom de collection | illustrer |
| Cookies | Dans la réponse actuelle, les valeurs de tous les cookies renvoyés au client, cet ensemble est en écriture uniquement |
b) Propriétés de l'objet de réponse
L'objet de réponse fournit également une série de propriétés qui peuvent être lues (dans la plupart des cas) et modifiées afin que la réponse puisse être adaptée à la demande. Ceux-ci sont définis par le serveur et nous n'avons pas besoin de les configurer. Il convient de noter que lors de la définition de certaines propriétés, la syntaxe utilisée peut être différente de ce qui est couramment utilisé.
Propriétés et descriptions des objets de réponse
| propriété | illustrer |
| Buuffer = true | false | Lire / écrire, booléen, indiquant si la sortie créée par une page ASP est stockée dans le tampon IIS jusqu'à ce que tous les scripts de serveur de la page en cours soient traités ou que les méthodes de rinçage et de fin soient appelées. Cette propriété doit être définie avant toute sortie (y compris les informations de rapport HTTP) est envoyée à IIS. Par conséquent, dans le fichier .asp, ce paramètre doit être dans la première ligne après l'instruction <% @ language =…%>. La mise en mémoire tampon par défaut ASP 3.0 est sur (vrai), tandis que dans les versions antérieures, il est désactivé (false) |
| CacheControlsetting | Lire / écrire, type de caractère, définir cette propriété en public pour permettre au serveur proxy de mettre en cache des pages. |
| Charset = valeur | Lire / écrire, type de caractère, joindre le nom de jeu de caractères utilisé dans l'en-tête de type contenu HTTP créé par le serveur pour chaque réponse (par exemple: ISO-LATIN-7) |
| Type de contenu = Type MIME | Lire / écrire, type de caractères, spécifier le type de contenu HTTP de la réponse et le type de mime standard (tel que le texte / xml ou l'image / GIF). Si par défaut, cela signifie que le texte de type MIME / HTML est utilisé, et le type de contenu indique au navigateur le type de contenu attendu. |
| Expire les minutes | LIRE / ÉCRIRE, TYPE NUMÉRIQUE, indique la durée que la page est valide en quelques minutes. , la page ne sera plus conservée en tampon privé (utilisateur) ou public (proxy) |
| Expire absolu #Date [time] # | Lire / écrire, type de date / heure, indiquant la date et l'heure absolues où une page expire et n'est plus valide |
| IsClientConnected | Read Only, Boolean, renvoie le drapeau d'état de si le client est toujours connecté et téléchargé. Avant l'exécution de la page actuelle, si un client est transféré sur une autre page, ce drapeau peut être utilisé pour interrompre le traitement (en utilisant la méthode Response.end) |
| Photos (Pics-Label-String) | Écrivez uniquement, type de personnage, créez un en-tête de photos pour définir le niveau de vocabulaire dans le contenu de la page, tels que la violence, le sexe, le mauvais langage, etc. |
| Status = message de code | Lire / écrire, type de caractère, valeurs d'état et informations indiquant si l'en-tête HTTP renvoyé à la réponse du client indique si l'erreur ou le traitement de page est réussi. Par exemple 200 ok et 404 introuvables |
c) Méthodes d'objet de réponse
L'objet de réponse fournit une série de méthodes, comme le montre le tableau suivant, permettant un traitement direct du contenu de page créé à retourner au client.
Méthodes et descriptions des objets de réponse
| méthode | illustrer |
| AddHeader (nom, contenu) | Créez un en-tête HTTP personnalisé en utilisant des valeurs de nom et de contenu et ajoutez-le à la réponse. Un en-tête existant avec le même nom ne peut pas être remplacé. Une fois qu'un en-tête a été ajouté, il ne peut pas être supprimé. Cette méthode doit être utilisée avant que tout contenu de page (c'est-à-dire le texte et le HTML) soit envoyé au client |
| APPENDTOLOG (String) | Lorsque vous utilisez le format de fichier de fichier journal étendu W3C, ajoutez une entrée au fichier journal du serveur Web demandé par l'utilisateur. Au moins, il faut sélectionner la tige d'URL dans la page Propriétés étendues du site contenant la page |
| Écriture binaire (SafeArray) | Écrivez une sécurité de type variante dans le flux de sortie HTTP actuel sans conversion de caractères. Il est très utile pour rédiger des informations non corrigées, telles que les données binaires demandées par une application personnalisée ou des octets binaires qui composent un fichier image |
| Clair() | Lorsque Response.Buffer est vrai, supprimez le contenu de page tamponné existant du tampon de réponse IIS. Mais l'en-tête de la réponse HTTP peut être utilisé pour abandonner les pages partiellement terminées |
| Fin() | Laissez l'ASP terminer le script pour le traitement de la page et renvoyez le contenu actuellement créé, puis abandonnez tout traitement supplémentaire de la page |
| Flush() | Envoyez toutes les pages tamponnées actuelles dans le tampon IIS au client. Lorsque la réponse.Buffer est vraie, elle peut être utilisée pour envoyer une partie du contenu d'une page plus grande aux utilisateurs individuels |
| Rediriger (URL) | En envoyant un en-tête 302 objet déplacé |
| Écrire (chaîne) | Écrivez des caractères spécifiés dans le flux de réponse HTTP actuel et le tampon IIS pour en faire partie de la page de retour |