English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby CGI Cookies

Das HTTP-Protokoll ist ein zustandsloses Protokoll. Aber für eine kommerzielle Website muss es zwischen verschiedenen Seiten die Sitzungsinformationen beibehalten.

Wenn Benutzer während des Registrierungsprozesses auf der Website zu einer anderen Seite weitergeleitet werden müssen, aber gleichzeitig sicherstellen müssen, dass die zuvor ausgefüllten Informationen nicht verloren gehen.

In diesem Fall haben Cookies uns gut geholfen, das Problem zu lösen.

Wie funktioniert ein Cookie?

Fast alle Website-Designer verwenden Cookies, wenn sie Websites gestalten, weil sie möchten, dass die Benutzer eine freundlichere und menschlichere Benutzererfahrung haben, und gleichzeitig können sie auch die Informationen der Besucher präziser sammeln.

Schreiben und Lesen

Cookies-Sammlung ist eine Datenmenge, die dem Response-Objekt und Request-Objekt angehört, und sie muss vor dem Gebrauch mit Response oder Request versehen werden.

Die Syntax zum Senden von Cookies an den Client ist normalerweise: }}

Wenn eine nicht vorhandene Cookies-Sammlung gesetzt wird, wird sie auf dem Client erstellt, wenn das Cookies bereits existiert, wird es ersetzt. Da Cookies als Teil der HTTP-Header-Informationen an den Client gesendet werden, wird der Code zum Senden von Cookies in der Regel vor den Tags des an den Browser gesendeten HTML-Dokuments platziert.

Wenn ein Benutzer Cookies lesen möchte, muss er die Cookies-Sammlung des Request-Objekts verwenden, der Verwendungsweg ist: Zu beachten ist, dass der Browser nur vor dem Download von Daten durch den Server in den Datenverkehr der Cookies-Sammlung des Servers eintreten kann, sobald der Browser mit dem Download der von Server heruntergeladenen Daten beginnt, wird der Datenverkehr der Cookies-Sammlung gestoppt, um Fehler zu vermeiden, sollte response.Buffer=True in der Programmierung und vor dem Code hinzugefügt werden.

Eigenschaften der Sammlung

  • 1.Expires-Eigenschaft:Diese Eigenschaft wird verwendet, um Cookies eine Frist zu setzen, innerhalb derer Cookies aufgerufen werden können, wenn die Webseite geöffnet wird, nach Ablauf dieses Zeitraums werden Cookies automatisch gelöscht. Zum Beispiel: Setzen Sie das Ablaufdatum des Cookies auf2004Jahr4Monat1Tag, bis zu dem sie automatisch gelöscht werden. Wenn ein Cookies keine Ablaufzeit hat, beginnt ihre Lebensdauer beim Öffnen des Browsers und endet beim Schließen des Browsers, die Lebensdauer endet nach jeder Ausführung und beginnt bei der nächsten Ausführung neu.

  • 2.Domain-Eigenschaft:Diese Eigenschaft definiert die Einzigartigkeit der übertragenen Cookies. Wenn nur ein bestimmtes Cookies an _blank">Sohu-Startseite gesendet wird, kann der folgende Code verwendet werden:

  • 3.Path-Eigenschaft:Definiert, dass Cookies nur an angegebene Pfad-Anfragen gesendet werden, wenn die Path-Eigenschaft nicht gesetzt ist, wird der Standardpfad der Anwendung verwendet.

  • 4.Secure-Eigenschaft:Spezifizieren Sie, ob Cookies vom Benutzer gelesen werden können.

  • 5、Name=Value : Cookies werden in Form von Schlüssel-Wert-Paaren gesetzt und abgerufen.

Ruby-Cookies verarbeiten

Sie können ein Objekt namens cookie erstellen und Textinformationen speichern, senden Sie diese Information an den Browser und rufen Sie CGI.out auf, um den Cookie-Header zu setzen:

Online Examples

#!/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 stored" }
end

Nun kehren wir zu dieser Seite zurück und suchen nach dem Cookie-Wert, wie folgt:

Online Examples

#!/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

The CGI::Cookie object includes the following parameters when instantiated:

ParametersDescription
nameSpecify the name of the cookie.
valueSpecify the value of the cookie.
expireSpecify the expiration date of the cookie.
pathSpecify the server path of the cookie.
domainSpecify the domain of the cookie.
secureSpecify whether cookies are transmitted through a secure HTTPS connection.