Ruby-CGI-Cookie

Das HTTP-Protokoll ist ein zustandsloses Protokoll. Für eine kommerzielle Website müssen jedoch Sitzungsinformationen zwischen verschiedenen Seiten beibehalten werden.

Wenn ein Benutzer beispielsweise während des Registrierungsprozesses auf einer Website zwischen Seiten navigieren muss, muss sichergestellt werden, dass zuvor ausgefüllte Informationen nicht verloren gehen.

In diesem Fall helfen uns Cookies sehr gut, das Problem zu lösen.


Wie funktionieren Cookies?

Fast alle Website-Designer verwenden beim Entwerfen von Websites Cookies, weil sie alle den Nutzern, die die Website durchsuchen, eine freundlichere, humanisierte Browsing-Umgebung bieten und gleichzeitig die Informationen der Besucher genauer erfassen möchten.

Schreiben und Lesen

Die Cookies-Auflistung ist eine Datensammlung, die an das Response-Objekt und das Request-Objekt angehängt ist. Bei der Verwendung müssen Sie ihr Response oder Request voranstellen.

Die Syntax, mit der Cookies an den Client gesendet werden, ist normalerweise:

Wenn eine Cookies-Auflistung festgelegt wird, die nicht existiert, wird sie auf dem Client-Rechner erstellt. Wenn die Cookies bereits existiert, wird sie ersetzt. Da Cookies als Teil der HTTP-Übertragungs-Header-Informationen an den Client gesendet werden, wird der Code zum Senden von Cookies an den Client im Allgemeinen vor dem `<HTML>`-Tag der an den Browser gesendeten HTML-Datei platziert.

Wenn der Benutzer Cookies lesen möchte, muss er die Cookies-Auflistung des Request-Objekts verwenden. Die Verwendung ist: Beachten Sie, dass der Browser Cookies-Auflistungsdaten nur mit dem Server austauschen kann, bevor der Server Daten an den Browser heruntergeladen hat. Sobald der Browser beginnt, vom Server heruntergeladene Daten zu empfangen, stoppt der Cookies-Datenaustausch. Um Fehler zu vermeiden, fügen Sie vor dem Programm und dem `<HTML>`-Tag `response.Buffer=True` hinzu.

Eigenschaften der Auflistung

  • 1. Expires-Eigenschaft:Diese Eigenschaft wird verwendet, um einen Zeitraum für Cookies festzulegen. Innerhalb des Zeitraums können die gespeicherten Cookies, solange die Webseite geöffnet ist, aufgerufen werden. Wird dieser Zeitraum überschritten, werden die Cookies automatisch gelöscht. Zum Beispiel: Legen Sie die Gültigkeitsdauer von Cookies auf den 1. April 2004 fest; dann werden sie automatisch gelöscht. Wenn für ein Cookie keine Gültigkeitsdauer festgelegt ist, beginnt sein Lebenszyklus beim Öffnen des Browsers und endet beim Schließen des Browsers. Nach jedem Durchlauf endet der Lebenszyklus, und der nächste Durchlauf beginnt von Neuem.
  • 2. Domain-Eigenschaft:Diese Eigenschaft definiert die Eindeutigkeit der von Cookies übertragenen Daten. Wenn Sie ein Cookie nur an die Sohu-Startseite senden möchten, können Sie den folgenden Code verwenden:
  • 3. Path-Eigenschaft:Sie legt fest, dass Cookies nur an Anfragen für den angegebenen Pfad gesendet werden. Wenn die Path-Eigenschaft nicht festgelegt ist, wird der Standardpfad der Anwendungssoftware verwendet.
  • 4. Secure-Eigenschaft:Gibt an, ob Cookies vom Benutzer gelesen werden können.
  • 5、Name=Value : Cookies werden in Form von Schlüssel-Wert-Paaren gesetzt und abgerufen.

Umgang mit Cookies in Ruby

Sie können ein Objekt namens cookie erstellen und Textinformationen speichern, diese Informationen an den Browser senden und CGI.out aufrufen, um den Cookie-Header festzulegen:

Beispiel

#!/usr/bin/ruby require "cgi" cgi = CGI.new("html4") cookie = CGI::Cookie.new('name' => 'mycookie', 'value' => 'Zara Ali', 'expires' => Time.now + 3600) cgi.out('cookie' => cookie) do cgi.head + cgi.body { "Cookie gespeichert" } end

Als Nächstes kehren wir zu dieser Seite zurück und schlagen den Cookie-Wert nach, wie unten gezeigt:

Beispiel

#!/usr/bin/ruby require "cgi" cgi = CGI.new("html4") cookie = cgi.cookies['mycookie'] cgi.out('cookie' => cookie) do cgi.head + cgi.body { cookie[0] } end

Wenn das CGI::Cookie-Objekt instanziiert wird, enthält es die folgenden Parameter:

Parameter Beschreibung
name Gibt den Namen des Cookies an.
value Gibt den Wert des Cookies an.
expire Gibt die Gültigkeitsdauer des Cookies an.
path Gibt den Serverpfad des Cookies an.
domain Gibt die Domain des Cookies an.
secure Gibt an, ob das Cookie über eine sichere HTTPS-Verbindung übertragen wird.
Andere Erweiterungen