Die Cookies-Sammlung legt Werte für Cookies fest. Wenn die angegebenen Cookies nicht vorhanden sind, werden sie erstellt. Wenn das Cookie existiert, nimmt es einen neuen Wert an und zerstört den alten.
Response.Cookies(cookie) [(key) | . Attribute ] = Wert
Wenn Sie mycookie einen Wert zuweisen, ohne Schlüssel zu verwenden, werden durch diese Aktion die Schlüssel Typ 1 und Typ 2 zerstört. Z.B:
Im vorherigen Beispiel werden die Schlüssel Typ1 und Typ2 zerstört und ihre Werte gehen verloren. Mycookie enthält jetzt den Wert Schokoladen-Marshmallow.
Sie können die Existenz eines bestimmten Schlüssels auch folgendermaßen überprüfen:
Wird TRUE angezeigt, existiert ein solcher Schlüssel, bei FALSE nicht.
Antwort. Variable_oder_Wert schreiben
Das folgende Beispiel zeigt, wie die Response.write-Methode funktioniert, um eine Nachricht an den Client auszugeben.
Im folgenden Beispiel wird einer Webseite ein HTML-Tag hinzugefügt. Da diese Methode die Kombination %> nicht enthalten kann, verwenden wir die Sequenz %\>. Also ein Beispielskript:
Response.Redirect-Methode Response.Redirect-URL (URL – Uniform Resource Locator)
Optionen:
- URL – Der Parameter ist ein universeller Ressourcendeskriptor. Es zeigt an, wann der Browser umgeleitet werden muss.
Kommentar:
Jedes Vorkommnis diese Methode zwischen Tags und der Webseite werden ignoriert. Diese Methode kann nur im Kopf einer HTML-Seite verwendet werden. Diese Methode übergibt einen Header an den Browser, wenn der URL-Parameter dieses Objekts in der folgenden Form fehlt:
HTTP/1.0 302 Objekt verschobene Standort-URL
Response.End-Methode Antwort.Ende
Kommentar:
Wenn die Response.Buffer-Eigenschaft auf TRUE festgelegt wurde, wird durch den Aufruf der Response.End-Methode der Puffer gelöscht und Daten daraus an den Client übertragen. Wenn Sie keine Daten an den Benutzer ausgeben möchten, sollten Sie die folgende Methode aufrufen:
Response.AddHeader-Methode Die AddHeader-Methode fügt einen HTML-Header mit bestimmten Werten hinzu. Diese Methode fügt der Antwort an den Client-Browser immer einen neuen Header hinzu. Diese Methode ersetzt den vorhandenen Header nicht durch einen neuen. Der hinzugefügte Header kann nicht entfernt werden.
Diese Methode wird nur für „fortgeschrittene“ Aufgaben verwendet.
Response.AddHeader Variablenname, Wert
Optionen:
- variable_name – Der Name der neuen HTML-Header-Parameter.
- value – Legen Sie den Wert fest, der in der Kopfzeile gespeichert wird.
Anmerkungen: Für korrekte Bedienung Methode darf Variablenname keinen Unterstrich (_) enthalten. Der ServerVariables-Satz interpretiert den Unterstrich als Bindestrich im Header. Als Beispiel zwingt das folgende Skript den Server, einen Parameter aus dem HTML-Header namens MY-HEADER zu finden.
Als HTTP-Protokoll erfordert, dass alle Header-Parameter vor dem Hauptteil der HTML-Seite übergeben werden. Dann müssen Sie die AddHeader-Methode in Ihrem Skript aufrufen, bevor die Beschreibung beginnt.... Es gibt eine Ausnahme. Wenn die Buffer-Eigenschaft auf true gesetzt ist, können Sie AddHeader an einer beliebigen Stelle im Skript schreiben, jedoch vor dem ersten Aufruf der Flush-Methode. Andernfalls löst der Aufruf der AddHeader-Methode einen Fehler aus.
Die folgenden zwei .ASP-Dateien veranschaulichen diesen letzten Punkt.
Ihren Text auf der Seite
IN in diesem Beispiel Die Seite ist nicht gepuffert. Das Skript funktioniert, AddHeader wird jedoch aufgerufen, bevor der Server eine HTML-Ausgabe an den Client erzeugt.
Hier sind einige Informationen von Ihrer Seite ...
Im zweiten Beispiel wird die Seite gepuffert und der Server gibt daher keinen Text an den Client aus, bis das Skript selbst endet oder die Flush-Methode angetroffen wird. Sie können diese Methode verwenden, um mehrere Kopien einiger Header-Parameter mit unterschiedlichen Werten zu senden, wie beim WWW-Authenticate-Header.
Response.AppendToLog-Methode Die AppendToLog-Methode fügt am Ende der Berichtsdatei (Logdatei) des Webservers eine Zeile hinzu. Sie können diese Methode beliebig oft aufrufen. Bei jedem Aufruf der Methode wird die von Ihnen angegebene Zeichenfolge in die Serverberichtsdatei geschrieben.
Response.AppendToLog-Wert
Optionen:
- Wert – Text, der der Webserver-Berichtsdatei hinzugefügt wird. Diese Zeichenfolge darf das Kommazeichen (,) nicht enthalten. Darüber hinaus sollte die Gesamtlänge der hinzugefügten Zeile 80 Zeichen nicht überschreiten.
Anmerkungen: Um diese Funktion nutzen zu können, muss die Option „URI-Abfrage“ im Bereich „Erweiterte Protokollierungseigenschaften“ für diesen Webserver in IIS aktiviert sein.
Response.BinaryWrite-Methode Mit der BinaryWrite-Methode können Sie bestimmte Informationen ohne Zeichenkonvertierung in die aktuelle HTTP-Ausgabe schreiben. Diese Methode ist nützlich für die Ausgabe von Nicht-String-Informationen, beispielsweise von Binärdaten, die von einer Anwendung benötigt werden.
Response.BinaryWrite-Daten
Optionen:
- Daten – Daten, die für die HTTP-Ausgabe bestimmt sind.
Wenn Sie ein Objekt haben, das ein Byte-Array erzeugt, können Sie den folgenden Aufruf dieser Methode verwenden, um dieses Array an eine Anwendung zu übergeben, die auf dem Client-Computer ausgeführt wird.
Response.Clear-Methode Die Clear-Methode löscht alle gepufferten HTML-Ausgaben. Diese Methode löscht jedoch nicht die mit dem Header verknüpften Pufferinformationen. Mit dieser Methode können Sie Fehler verwalten. Die Ausführung dieser Methode führt jedoch zu einem Fehler, wenn die Response.Buffer-Eigenschaft nicht true ist.
Response.CacheControl-Eigenschaft Diese Eigenschaft überschreibt den Standardwert. Wenn Sie die Eigenschaft auf „Öffentlich“ festlegen, kann der Proxyserver die von ASP generierte Ausgabe zwischenspeichern.
Response.CacheControl [= Cache-Steuerungsheader]
Optionen:
- Cache-Kontrollheader – Diese Header-Kontrolloption kann entweder öffentlich oder privat sein.
Response.CharSet-Eigenschaft Mit der CharSet-Eigenschaft können Sie den Namen der Zeichencodetabelle (z. B. WINDOWS-1251) zum HTML-Header, der Inhaltstypzeile, hinzufügen.
Response.CharSet code_table_name
Optionen:
- charset_name – Eine Zeichenfolge, die den Zeichensatz für diese HTML-Seite angibt. Der Name dieser Codetabelle wird dem Header der HTML-Datei unter dem Parameter „content-type“ hinzugefügt.
Für eine ASP-Seite, die die Eigenschaft Response.Charset nicht verwendet, lautet der Parameter „content-type“ im Header wie folgt:
Inhaltstyp:text/html
Wenn die ASP-Datei den Befehl enthält
dann sieht in der Kopfzeile das Feld „Inhaltstyp“ so aus
Inhaltstyp:text/html; charset=Windows-1251
Kommentar:
Diese Funktion fügt eine beliebige Zeile in den Header ein und prüft nicht deren Gültigkeit.
Wenn eine Seite mehrere Response.Charset-Tags enthält, ersetzt jedes weitere den Wert durch seinen eigenen.
Response.ContentType-Eigenschaft Mit der ContentType-Eigenschaft können Sie den Typ (Typ) des Inhalts der HTML-Datei angeben. Wenn diese Eigenschaft nicht verwendet wird, wird standardmäßig text/html verwendet.
Response.ContentType [=content_type]
Optionen:
- content_type – Eine Zeichenfolge, die den HTML-Inhaltstyp beschreibt. Diese Zeichenfolge hat normalerweise die Form „Typ/Subtyp“, wobei „Typ“ die Hauptkategorie des Inhalts ist und „Subtyp“ die Art des Inhalts angibt. Zum Erhalten volle Liste Unterstützte Typen: Weitere Informationen finden Sie in der Dokumentation Ihres Browsers oder in der HHTP-Spezifikation.
Das folgende Beispiel veranschaulicht die Einstellung des Inhaltstyps auf Channel Definition Format (Push Channels).
Das zweite Beispiel zeigt das Festlegen einer Eigenschaft auf die gängigsten bekannten Werte.
Response.Expires-Eigenschaft Die Expires-Eigenschaft gibt den Zeitraum bis an HTML-Seite Die vom Browser zwischengespeicherten Daten gelten als nicht abgelaufen (Speicherdauer). Wenn ein Benutzer vom Browser eine zwischengespeicherte Seite anfordert, die noch nicht abgelaufen ist, gibt der Browser sie direkt aus seinem Cache zurück.
Response.Expires [=Nummer]
Optionen:
- Zahl – Die Zeit in Minuten, bevor die Seite als „überfällig“ gilt. Wenn Sie diesen Wert auf 0 setzen, wird die angegebene Seite sofort „abgelaufen“.
Kommentar:
Wenn diese Eigenschaft mehr als einmal auf einer Seite festgelegt ist, wird der kleinste Wert verwendet.
Response.ExpiresAbsolute-Eigenschaft Die ExpiresAbsolute-Eigenschaft gibt die Uhrzeit und das Datum an, nach denen die vom Browser zwischengespeicherte HTML-Seite als abgelaufen gilt (der Aufbewahrungszeitraum ist abgelaufen). Wenn ein Benutzer vom Browser eine zwischengespeicherte Seite anfordert, die noch nicht abgelaufen ist, gibt der Browser sie direkt aus seinem Cache zurück. Wenn die Uhrzeit angegeben ist (und das Datum angegeben ist), dann läuft das „Ablaufdatum“ dieser Seite um Mitternacht dieses Tages ab. Wenn weder Uhrzeit noch Datum angegeben sind, wird der Wert entsprechend dem Tag und der Uhrzeit der Ausführung des Skripts zugewiesen.
Response.ExpiresAbsolute [= [Datum] [Uhrzeit]]
Optionen:
- Datum – Gibt das Ablaufdatum der „Haltbarkeit“ an. Das Datumsformat muss dem RFC-1123-Standard entsprechen.
- Zeit – Gibt die Zeit an, zu der die Seite abläuft. Dieser Wert wird in das GMT-Format (Greenwich Mean Time) konvertiert, bevor der Header an den Client gesendet wird.
Kommentar:
Wenn eine bestimmte Eigenschaft mehr als einmal auf einer Seite definiert ist, wird als Ablaufzeit des „Speicherzeitraums“ der früheste aller angegebenen Werte angenommen.
Response.IsClientConnected-Eigenschaft Diese Eigenschaft ist schreibgeschützt, d. h. dieser Eigenschaft können keine Werte zugewiesen werden. Diese Eigenschaft gibt an, ob der Client mit dem im letzten Response.Write definierten Server verbunden ist oder nicht mehr.
Response.IsClientConnected()
Kommentar:
Mit dieser Eigenschaft können Sie bestimmen, wann ein Benutzer mit dem Server verbunden ist und wann die Verbindung getrennt wird. Beispielsweise gibt die Länge des Zeitraums zwischen der Antwort des Servers und der Anfrage des Clients die Gewissheit, dass der Client immer noch verbunden ist und es sinnvoll ist, mit der Ausführung des Skripts fortzufahren.
- größer als //Benutzer muss mit allen übereinstimmen HTML-Objekte mit den entsprechenden Dezimalwerten. //Objektzuordnungen zu Dezimalwerten werden in der folgenden Tabelle angezeigt) public static String escapeHtml() ( String str = "alert(\"abc\")"; try ( StringWriterwriter = new StringWriter((int) (str .length() * 1.5)); escape(writer, str); System.out.println("codierter String ist " + write.toString()); return write.toString(); ) Catch (IOException ioe) ( ioe .printStackTrace() ; return null; ) ) public static void escape(Writerwriter, String str) throws IOException ( int len = str.length(); for (int i = 0; i< len; i++) {
char c = str.charAt(i);
int ascii = (int) c;
String entityName = (String) m.get(ascii);
if (entityName == null) {
if (c >0x7F) ( Writer.write(""); Writer.write(Integer.toString(c, 10)); Writer.write(";"); ) else ( Writer.write(c); ) ) else ( Writer. write(entityName); ) ) ) )
Der Java-Code in Listing 1 kodiert den HTML-String String String „alert(\“abc\)“ . Gehen Sie wie folgt vor:
Als Ergebnis erscheint in der Ausgabe die folgende Zeile: alarm("abc") .
Tabelle 2 zeigt die Zuordnung von HTML-Objekten zu ihren Dezimalwerten.
Tabelle 2. Dezimalwerte für HTML-Objekte Dezimalwert Objektbeschreibung
160
|
| Geschützter Raum |
60
| <
| Weniger als |
62
| >
| Mehr als |
38
| &
| Et-Zeichen |
162
| ¢
| Cent |
163
| £
| Pfund |
165
| ¥
| Jena |
8364
| €
| Euro |
167
| §
| Absatz |
169
|
| Urheberrechte © |
174
| ®
| Eingetragene Marke |
8482
| ™
| Warenzeichen |
Abschluss Cross-Site-Script-Injection ist eine der häufigsten Angriffsmethoden auf den Computer eines Benutzers. Sie können jedoch die Möglichkeiten eines Angreifers, Ihre Webanwendung zu infizieren, erheblich verringern. Schadcode. Achten Sie beim Erstellen Ihrer Anwendung darauf, alle Seitenausgabewerte zu verschlüsseln, bevor Sie sie an den Browser des Endbenutzers senden.
Nach dem Empfang und der Interpretation einer Anforderungsnachricht antwortet ein Server mit einer HTTP-Antwortnachricht:
- Eine Statuszeile
- Kein oder mehr Header-Felder (Allgemein|Antwort|Entität), gefolgt von CRLF
- Eine leere Zeile (d. h. eine Zeile, in der nichts vor dem CRLF steht), die das Ende der Header-Felder angibt
- Optional ein Nachrichtentext
In den folgenden Abschnitten werden jeweils die in einer HTTP-Antwortnachricht verwendeten Entitäten erläutert.
Nachrichtenstatuszeile Eine Statuszeile besteht aus der Protokollversion, gefolgt von einem numerischen Statuscode und dem zugehörigen Textsatz. Die Elemente werden durch Leerzeichen SP getrennt.
Statuszeile = HTTP-Version SP-Statuscode SP-Ursachenphrase CRLF HTTP-Version Ein Server, der HTTP Version 1.1 unterstützt, gibt die folgenden Versionsinformationen zurück:
HTTP-Version = HTTP/1.1
Statuscode Das Status-Code-Element ist eine dreistellige Ganzzahl, wobei die erste Ziffer des Status-Codes die Antwortklasse definiert und die letzten beiden Ziffern keine Kategorisierungsfunktion haben. Für die erste Ziffer gibt es 5 Werte:
S.N. Code und Beschreibung
1
|
1xx: Informativ Dies bedeutet, dass die Anfrage eingegangen ist und der Prozess fortgesetzt wird.
|
2
|
2xx: Erfolg Dies bedeutet, dass die Aktion erfolgreich empfangen, verstanden und akzeptiert wurde.
|
3
|
3xx: Umleitung Dies bedeutet, dass weitere Maßnahmen ergriffen werden müssen, um die Anfrage abzuschließen.
|
4
|
4xx: Clientfehler Dies bedeutet, dass die Anfrage eine falsche Syntax enthält oder nicht erfüllt werden kann.
|
5
|
5xx: Serverfehler Dies bedeutet, dass der Server eine scheinbar gültige Anfrage nicht erfüllen konnte.
|
HTTP-Statuscodes sind erweiterbar und HTTP-Anwendungen müssen nicht die Bedeutung aller registrierten Statuscodes verstehen. Eine Liste aller Statuscodes finden Sie zu Ihrer Information in einem separaten Kapitel.
Antwort-Header-Felder Wir werden General-Header und Entity-Header in einem separaten Kapitel untersuchen, wenn wir uns mit HTTP-Header-Feldern befassen. Schauen wir uns zunächst einmal an, was Response-Header-Felder sind.
Die Antwort-Header-Felder ermöglichen es dem Server, zusätzliche Informationen über die Antwort zu übergeben, die nicht in der Statuszeile platziert werden können. Diese Header-Felder geben Auskunft über den Server und über den weiteren Zugriff auf die durch den Request-URI identifizierte Ressource.
-
Proxy-Authentifizieren
-
WWW-Authentifizieren
Sie können Ihre benutzerdefinierten Felder einführen, falls Sie Ihren eigenen benutzerdefinierten Web-Client und -Server schreiben möchten.
Beispiele für Antwortnachrichten Lassen Sie uns nun alles zusammenfügen, um eine HTTP-Antwort für eine Anfrage zum Abrufen der Seite „hello.htm“ vom Webserver vor Ort zu bilden
HTTP/1.1 200 OK Datum: Montag, 27. Juli 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Letzte Änderung: Mittwoch, 22. Juli 2009 19:15:56 GMT Inhaltslänge: 88 Inhalts- Typ: text/html Verbindung: Geschlossen Hallo Welt!
Das folgende Beispiel zeigt eine HTTP-Antwortnachricht, die einen Fehlerzustand anzeigt, wenn der Webserver die angeforderte Seite nicht finden konnte:
HTTP/1.1 404 Nicht gefunden Datum: So, 18. Oktober 2012 10:36:20 GMT Server: Apache/2.2.14 (Win32) Inhaltslänge: 230 Verbindung: Geschlossen Inhaltstyp: text/html; charset=iso-8859-1 404 Nicht gefunden Nicht gefunden
Die angeforderte URL war /t.html nicht gefunden auf diesem Server.
Das Folgende ist ein Beispiel für eine HTTP-Antwortnachricht, die einen Fehlerzustand anzeigt, wenn der Webserver in der angegebenen HTTP-Anfrage eine falsche HTTP-Version gefunden hat:
HTTP/1.1 400 Bad Request Datum: So, 18. Okt. 2012 10:36:20 GMT Server: Apache/2.2.14 (Win32) Inhaltslänge: 230 Inhaltstyp: text/html; charset=iso-8859-1 Verbindung: Geschlossen 400 Bad Request Bad Request
Ihr Browser hat eine Anfrage gesendet, die dieser Server nicht verstehen konnte.
Die Anforderungszeile enthielt ungültige Zeichen nach der Protokollzeichenfolge.
Wir empfehlen die Lektüre:
Programme
Die Situation, wenn das Telefon klingelt und „Inkognito“ oder eine ähnliche Meldung auf dem Bildschirm angezeigt wird, kennt fast jeder. Kann der Operator helfen, den Fremden zu enttarnen?...