Anfrage und Antwort sind die beiden von ASP bereitgestellten integrierten Objekte. Zwischen dem Browser (oder einem anderen Benutzeragenten) und dem Webserver kann der Informationsaustausch, der in der Anforderung und der Antwort auftritt, über zwei integrierte Objekte im ASP, die als Anforderungs- und Antwortobjekte bezeichnet werden, zugegriffen und verwaltet werden.
Fast die gesamte Arbeit, die auf der ASP -Seite durchgeführt werden soll, erfordert den Zugriff auf diese beiden Objekte. Ihr Hauptzweck besteht natürlich darin, auf den vom Benutzer an den Server zurückgesandten Wert zugreifen zu können, d. H. Aus dem Segment <Formular> des Segments der HTML Der Benutzer und sie können viel gleiche Faktor teilen. Beispielsweise können beide Objekte Cookies verwenden, die auf dem Client -Computer gespeichert sind.
Daher teilen wir den Inhalt in zwei unabhängige Teile (Teil jedes Objekts) und beginnen zuerst mit dem Informationsaustausch zwischen dem Client und dem Server und untersuchen dann jedes Objekt.
Der Forschungsinhalt ist:
· Wie der Client mit dem Server kommuniziert, um das Web oder andere Ressourcen bereitzustellen.
· Details zu Anforderungs- und Antwortobjekten und was sie gemeinsam haben.
· So greifen Sie über einen Formular- und Abfragebarium auf den entsprechenden Wert zu.
· So lesen oder erstellen Sie Cookies und speichern sie auf dem Computer des Kunden.
· Was sind die Variablen des Servers? So greifen Sie auf und ändern Sie HTTP -Header.
· Beschreiben Sie Änderungen an anderen verwandten Einträgen, z. B. der Verwendung des Kundenzertifikats.
Kommunikation zwischen Kunden und Servern
Um Platz zu sparen, wird im folgenden Inhalt der Wortbrowser verwendet. Es sollte jedoch daran erinnert werden, dass Anwendungen, die auf Webseiten zugreifen können Menschen. Das offensichtlichste Beispiel ist der Roboter, der von Suchmaschinen zum Zugriff auf Websites im Web verwendet wird. Betrachten Sie diese Faktoren umfassend, einschließlich normaler Webbrowser, das genaue Wort sollte ein Benutzeragenten sein.
Page -Anfrage -Konversation
Wenn ein Browser eine Seitenanforderung an eine Website stellt, muss er offensichtlich dem Server mitteilen, auf welcher Seite er angefordert wird. Das erste, was Sie tun müssen, ist, über den Domänennamen eine Verbindung zum Server herzustellen und dann den vollständigen Pfad und den Namen der angeforderten Seite anzugeben. Warum brauchst du einen vollständigen Pfad und Namen? Das Web ist eine randlose Umgebung, daher ist es erforderlich, eine Sitzung zu erstellen, um jeden Kunden zu identifizieren (wie ASP dies später tun kann).
Dies bedeutet, dass der Server jedes Mal, wenn der Server die Seite an den Client sendet, den Client vollständig vergisst. Wenn der Client die nächste Seite anfordert, ist dies genau das gleiche wie ein neuer Besucher. Der Server kann sich nicht an diesen Kunden erinnern, und entsprechend kann er nicht bestimmen, welche Seite er beim letzten Mal angefordert hat. Da Sie keinen relativen Pfad verwenden können, um eine Seite anzugeben, auch wenn die Seite einen relativen Link enthält, zum Beispiel:
| < a href = download.asp> nächste Seite </a> |
Der Browser erstellt automatisch eine vollständige URL für eine neue Seite, indem sie die Domäne und den Pfad der aktuellen Seite verwendet. Eine Seite ist. Zum Beispiel:
| < Basis Herf = http: //www.wrox.com/store > |
Wenn Sie die Maus auf einen Link zu einer Seite zeigen, ist sie in der Statusleiste des Browsers zu sehen. Der Pfad zur aktuellen Seite und zur aktuellen Domäne oder der Basisdomäne oder zur Basispfad wurde mit dem angeforderten Seitennamen kombiniert.
1. Details zu Kundenanfragen
Die Kombination aus dem vollständigen Pfad und dem Namen der angeforderten Seite ist die einzige Residenz des Servers, wenn der Browser die Seite anfordert. Der tatsächliche Informationsinhalt ändert sich entsprechend dem Browser, und nur eine kleine Anzahl davon kann von anderen Anwendungen wie Suchmaschinenroboter bereitgestellt werden. Um diese Informationen klarer zu verstehen, finden Sie hier eine Seite von IE 5.0 http://www.wrox.com/store/
Download.asp -Anfrageinformationen:
| 7/8/99 10:27:16 gesendet get /store/download.asp http/1.1 Akzeptieren: Anwendung/MSWord, Application/Vnd.ms-Execl, Application/Vnd.ms- PowerPoint, Image/GIF, Bild/X-Xbitmap, Bild/JPEG, Image/PJPEG, Anwendung/X- Komet, */ * Akzeptieren Sprache: en-us Codierung: Gzip, Deflate Referer: http://wwrox.com/main_menu.asp Cookie: VisitCount = 2 & lastDate = 6%2F4%2F99+10%3A10%3A13+Am Benutzer-Agent: Mozilla/4.0 (kompatibel; MSIE 5.0; Windows 98) Host: 212.250.238.67 Verbindung: Keep-Alive |
Daraus ist zu sehen, dass die Informationen Details über den Benutzeragenten und die Benutzerverbindung (z. B. die Standardsprache) sowie eine Liste von akzeptablen Dateien oder Anwendungen enthalten. . viele. Der Browser kann mehrere Bilddateien und mehrere Microsoft Office -Dateitypen akzeptieren. Standard -Dateitypen wie TESX/HTML und Text/Text sind nicht aufgeführt. */* In der Dateiliste bedeutet, dass jede Art von Datei an den Browser zurückgesendet werden kann, der vom Browser oder über eine Plug-in-Anwendung interpretiert wird.
Cookie: Der im Eintrag enthaltene Cookie wird auf dem Computer des Kunden gespeichert und ist nur für diese Domain gültig. Wenn die Anforderung das Ergebnis des Klickens auf den Link ist, anstatt die URL in der Adressleiste des Browsers direkt einzugeben, wird der Eintrag angezeigt, der die vollständige URL der Link -Seite enthält.
HOST: Der Eintrag enthält die IP -Adresse oder den Namen des Client -Computers. Dies reicht jedoch nicht aus, um den Kunden genau zu identifizieren. Denn wenn sie über einen ISP herstellen, werden die IP -Adressen dynamisch zugewiesen oder wenn sie über einen Proxy -Server herstellen, stammen die IP -Adressen eher vom Proxy als aus dem tatsächlichen Client.
2. Details zur Serverantwort
Um auf die oben genannte Anfrage zu antworten und die angeforderte Seite einem anonymen Browser zu geben (dh der Benutzer muss keinen Benutzernamen und Zugriff auf Passwort angeben), wird der folgende Inhalt vom Server an den Client gesendet:
| 08.07.99 10:27:16 HTTP/1.1 200 OK erhalten Server: Microsoft-IIS/5.0 Verbindung: Keep-Alive Datum: Do, 8. Juli 1999 10:27:16 GMT Inhaltstyp: Text/HTML Akzeptieren von Bytes Inhaltslänge: 2946 Last-Modified: Thu, 8. Juli 1999 10:27:16 GMT Cookie: VisitCount = 3 & lastDate = 7%2F8%2F99+10%3A27%3A16+Am < html > & Hellip; </html > |
Es ist zu erkennen, dass der Server die Software und Version für den Client erläutert. Nachricht 200 OK bedeutet, dass die Anfrage angenommen und zufrieden ist. Die folgenden Informationen sind die Details der zurückgegebenen Seite, einschließlich des MIME-Typs (Inhaltslänge :), Größe (Byte), die letzte Änderungszeit und das vom Client gespeicherte Rückgabereiter. Die anderen Informationen in der Antwort sind der Informationsfluss des Seiteninhalts.
In einigen Fällen kann der Server nach der Beantwortung einer Anfrage keine Seite zurückgeben, möglicherweise weil die Seite nicht vorhanden ist oder der Client nicht über die entsprechenden Berechtigungen verfügt, um darauf zuzugreifen. Wir werden später Sicherheitsfragen diskutieren. In Situationen, in denen die Anforderungsseite nicht vorhanden ist (z. B. der Benutzer hat die falsche URL in der Adressleiste des Browsers eingegeben), beginnt die zurückgegebenen Informationen mit:
| 7/8/99 14:27:16 erhielt http/1.1 404 nicht gefunden Server: Microsoft-IIS/5.0 … |
Hier zeigen der Statuscode und die Informationen an, dass die vom Client angeforderte Seite nicht gefunden werden kann. Der Browser kann diese Informationen verwenden, um die entsprechenden Informationen dem Benutzer anzuzeigen (in diesem Fall werden die Antwortinformationen des Servers in IE 5.0 nicht angezeigt, sondern die entsprechende Seite der Hilfefehleraufforderung) oder die vom Server erstellte Standardseite (auf die auf den Server. Anforderungs- und Antwortobjekte
Die Details zur Anwendung von Client-Anfragen und Serverantworten von ASP werden über die integrierten Anforderungs- und Antwortobjekte des ASP implementiert.
· Anforderungsobjekt: Bietet Skripte alle vom Client bereitgestellten Informationen, wenn der Client eine Seite anfordert oder ein Formular übergibt. Dies schließt HTTP -Variablen ein, die den Browser und den Benutzer angeben können, Cookies, die im Browser unter diesem Domänennamen gespeichert sind, jeder HTML -Steuerwert, der als Abfragebarstellung an der Zeichenfolge nach der URL oder dem Abschnitt der Seite <form> beigefügt ist. Autorisierter Zugriff mit Secure Socket Layer (SSL) oder anderen verschlüsselten Kommunikationsprotokollen sowie Attribute, mit denen Verbindungen verwaltet werden.
· Antwortobjekt: Wird zum Zugriff auf die vom Server erstellten Antwortinformationen verwendet und an den Client zurückgesandt. Bietet HTTP -Variablen für Skripte, die die Funktionen des Servers und des Servers sowie Informationen über den an den Browser zurückgesandten Inhalt sowie alle neuen Cookies angeben, die für diese Domäne im Browser gespeichert werden. Es bietet auch eine Reihe von Methoden, um Ausgaben zu erstellen, z. B. die allgegenwärtige Reaktion. Schreiben Sie.
1. Überblick über Anforderungsobjektmitglieder
a) Sammlung von Anforderungsobjekten
Das Anforderungsobjekt enthält 5 Sammlungen, mit denen verschiedene Informationen zum Webserver angefordert werden können.
Sammlung und Beschreibung von Anforderungsobjekten
| Sammlungsname | veranschaulichen |
| ClientCertificate | Wenn ein Client auf eine Seite oder eine andere Ressource zugreift, die numerische Menge aller Felder oder Einträge des Client-Zertifikats zur Angabe der Identität mit dem Server, ist jedes Mitglied nur schreibgeschützt |
| Kekse | Nach Anfrage des Benutzers ist eine Sammlung aller vom Benutzer des Benutzers ausgestellten Cookies nur für die entsprechende Domäne gültig, und jedes Mitglied ist schreibgeschützt, nur schreibgeschützt. |
| Bilden | Wenn der Attributwert der Methode post ist, ist jedes Mitglied nur für alle Werte von HTML-Steuereinheiten im Abschnitt <form> als Anfrage eingestuft. |
| QueryString | Jedes Mitglied ist nur schreibgeschützt für den Wert aller HTML-Steuereinheiten in <form>, abhängig vom Namen/Wert-Paar, nachdem die vom Benutzer angeforderte URL oder als Anforderung eingereicht wurde, und das Methodeattribut wird erhalten (oder sein Attribut wird weggelassen ) oder die Werte aller HTML -Steuereinheiten in <form> |
| Servervariablen | Eine Sammlung von HTTP-Headerwerten, die von der Client-Anforderung und der Werte mehrerer Umgebungsvariablen des Webservers ausgegeben werden, ist jedes Mitglied schreibgeschützt |
b) Eigenschaften des Anforderungsobjekts
Die eindeutigen Eigenschaften und Beschreibung des Anforderungsobjekts sind in der folgenden Tabelle angezeigt. .
| Eigentum | veranschaulichen |
| TOTLBYTES | Schreibgeschützte Rücksendungen gibt die gesamte Anzahl von Bytes der vom Client herausgegebenen Anfrage zurück |
c) Methoden des Anforderungsobjekts
Die einzige Methode und Beschreibung des Anforderungsobjekts wird in der folgenden Tabelle angezeigt, mit der der Zugriff auf den vollständigen Inhalt des Benutzeranforderungsparts zu dem Server aus einem <formular> Segment übergeben wird.
Methode und Beschreibung des Anforderungsobjekts
| Verfahren | veranschaulichen |
| BinaryRead (Graf) | Wenn die Daten als Teil der Postanforderung an den Server gesendet werden, werden die Datenbytes der Daten aus der Client -Anforderung und ein Variante -Array (oder Safearray) zurückgegeben. Wenn der ASP -Code bereits auf die Sammlung von Request.Form verweist, kann diese Methode nicht verwendet werden. Gleichzeitig kann auf die BinaryRead -Methode auf die Anforderung angewendet werden. |
2. Überblick über Antwortobjektelemente
a) Sammlung von Antwortobjekten
Das Antwortobjekt verfügt nur über eine Sammlung, wie in der folgenden Tabelle gezeigt, die den Wert des Cookies festlegt, den Sie auf dem Client -System platzieren möchten, was direkt zur Anforderung entspricht.
Sammlung und Beschreibung von Antwortobjekten
| Sammlungsname | veranschaulichen |
| Kekse | In der aktuellen Antwort sind die Werte aller an den Client zurückgesandten Cookies, dieses Set ist nur Schreiben |
b) Eigenschaften des Antwortobjekts
Das Antwortobjekt enthält auch eine Reihe von Eigenschaften, die (in den meisten Fällen) gelesen und so geändert werden können, dass die Antwort an die Anforderung angepasst werden kann. Diese werden vom Server festgelegt und wir müssen sie nicht einrichten. Es ist zu beachten, dass die verwendete Syntax beim Festlegen bestimmter Eigenschaften sich von dem unterscheiden kann, was häufig verwendet wird.
Eigenschaften und Beschreibungen von Antwortobjekten
| Eigentum | veranschaulichen |
| Buuffer = true | false | Lesen/Schreiben, boolean, angibt, ob die von einer ASP -Seite erstellte Ausgabe im IIS -Puffer gespeichert ist, bis alle Serverskripte auf der aktuellen Seite verarbeitet oder die Methoden für Flush- und End -Methoden aufgerufen werden. Diese Eigenschaft muss festgelegt werden, bevor eine Ausgabe (einschließlich HTTP -Berichtsinformationen) an IIS gesendet wird. Daher sollte diese Einstellung in der .asp -Datei in der ersten Zeile nach der <%@ -Sprache =…%> angegeben. ASP 3.0 Standardpufferung ist eingeschaltet (wahr), während es in früheren Versionen ausgeschaltet ist (falsch) |
| CacheControlSetting | Lesen/Schreiben, Charaktertyp, setzen Sie diese Eigenschaft auf die Öffentlichkeit, damit der Proxy -Server Seiten cache. |
| CharSet = Wert | Lesen/Schreiben, Charaktertyp, den im HTTP-Inhaltsheader verwendeten Charakter-Set-Namen anhängen, der vom Server für jede Antwort erstellt wurde (z. B. ISO-Latin-7) |
| Inhaltstyp = MIME-Typ | Lesen/Schreiben, Zeichentyp, Geben Sie den HTTP -Inhaltstyp der Antwort und den Standard -MIME -Typ (z. B. Text/XML oder Bild/GIF) an. Wenn Standardeinstellung, bedeutet dies, dass MIME -Text/HTML verwendet wird und der Inhaltstyp dem Browser den erwarteten Inhaltsart mitteilt. |
| Läuft Minuten ab | Lesen/Schreiben, numerischer Typ, gibt die Zeitspanne, die die Seite in Minuten gültig ist, vor, wenn der Benutzer vor Ablauf der Gültigkeitszeit dieselbe Seite anfordert, der Inhalt in der Anzeigepuffer direkt gelesen wird. , Die Seite wird nicht mehr in privaten (Benutzer) oder öffentlichen Pufferung (Proxy) beibehalten |
| Läuft absolut #Date [Zeit] #ab | Lesen/Schreiben, Datum/Uhrzeittyp, und geben Sie das absolute Datum und die Uhrzeit an, wenn eine Seite abläuft und nicht mehr gültig ist |
| Isclientconnected | Der schreibgeschützte Boolean gibt das Statusflag, ob der Client noch verbunden und heruntergeladen ist. Bevor die aktuelle Seite ausgeführt wurde, kann dieses Flag zum Abbrechen der Verarbeitung verwendet werden (unter Verwendung der Antwort.end -Methode), wenn ein Client auf eine andere Seite übertragen wird). |
| Bilder (Bilder-Label-String) | Nur schreiben, Charaktertyp, erstellen Sie einen Bilde -Header, um den Wortschatz in den Seiteninhalten wie Gewalt, Sex, schlechte Sprache usw. zu definieren. |
| Status = code meldung | Lesen/Schreiben, Zeichentyp, Statuswerte und Informationen angeben, ob der an die Antwort des Clients zurückgesandte HTTP -Header angibt, ob der Fehler oder die Seitenverarbeitung erfolgreich ist. Zum Beispiel 200 OK und 404 nicht gefunden |
c) Methoden des Antwortobjekts
Das Antwortobjekt enthält eine Reihe von Methoden, wie in der folgenden Tabelle gezeigt, sodass die direkte Verarbeitung von Seiteninhalten an den Client zurückgegeben werden kann.
Methoden und Beschreibungen von Antwortobjekten
| Verfahren | veranschaulichen |
| AddHeader (Name, Inhalt) | Erstellen Sie einen benutzerdefinierten HTTP -Header mit Namen und Inhaltswerten und fügen Sie ihn der Antwort hinzu. Ein vorhandener Header mit demselben Namen kann nicht ersetzt werden. Sobald ein Kopfball hinzugefügt wurde, kann er nicht gelöscht werden. Diese Methode muss verwendet werden, bevor ein Seiteninhalt (d. H. Text und HTML) an den Client gesendet wird |
| AppendTolog (String) | Fügen Sie bei Verwendung des Formats "W3C Extended Protokolldatei" -Format einen Eintrag zur Protokolldatei des vom Benutzer angeforderten Webservers hinzu. Erfordern Sie, dass der URL -Stamm auf der Seite "Extended Properties" der Seite der Seite ausgewählt wird, die die Seite enthält |
| Binarywrite (Safearray) | Schreiben Sie einen Safearray vom Varianten-Typ in den aktuellen HTTP-Ausgangsstrom ohne Zeichenumwandlung. Es ist sehr nützlich, um Nicht-String-Informationen zu schreiben, wie z. |
| Klar() | Wenn response.buffer wahr ist, löschen Sie den vorhandenen gepufferten Seiteninhalt aus dem IIS -Antwortpuffer. Der Kopfball der HTTP -Antwort kann jedoch verwendet werden, um teilweise abgeschlossene Seiten aufzugeben |
| Ende() | Lassen Sie das ASP das Skript zum Verarbeiten der Seite beenden und den aktuell erstellten Inhalt zurückgeben und geben Sie dann eine weitere Verarbeitung der Seite auf |
| Spülen() | Senden Sie alle aktuellen gepufferten Seiten im IIS -Puffer an den Client. Wenn reagieren.buffer wahr ist, kann es verwendet werden, um einen Teil des Inhalts einer größeren Seite an einzelne Benutzer zu senden |
| Umleiten (URL) | Durch das Senden eines 302 -Objekts bewegtes Header in der Antwort weist der Browser die Seite der entsprechenden Adresse gemäß der String -URL an |
| Schreiben (Zeichenfolge) | Schreiben Sie angegebene Zeichen im aktuellen HTTP -Antwortstrom und im IIS -Puffer, um den Teil der Rückgabeseite zu machen |