Cookie CGI en Ruby

Le protocole HTTP est un protocole sans état. Mais pour un site web commercial, il doit conserver les informations de session entre différentes pages.

Par exemple, lorsqu'un utilisateur doit naviguer entre les pages lors du processus d'inscription sur un site web, il faut s'assurer que les informations précédemment saisies ne soient pas perdues.

Dans ce cas, les cookies nous aident très bien à résoudre le problème.


Comment fonctionnent les cookies ?

Presque tous les concepteurs de sites web utilisent des Cookies lors de la conception de sites web, car ils souhaitent tous offrir aux utilisateurs qui parcourent le site un environnement de navigation plus convivial et humanisé, tout en collectant plus précisément les informations des visiteurs.

Écriture et lecture

La collection Cookies est une collection de données attachée à l'objet Response et à l'objet Request. Lorsque vous l'utilisez, vous devez la faire précéder de Response ou Request.

La syntaxe utilisée pour envoyer des Cookies au client est généralement :

Lorsque vous définissez une collection Cookies qui n'existe pas, elle est créée sur la machine du client. Si les Cookies existent déjà, ils seront remplacés. Comme les Cookies sont envoyés au client dans le cadre des informations d'en-tête de transmission HTTP, le code permettant d'envoyer des Cookies au client est généralement placé avant la balise `<HTML>` du fichier HTML envoyé au navigateur.

Si l'utilisateur souhaite lire des Cookies, il doit utiliser la collection Cookies de l'objet Request. L'utilisation est la suivante : Notez que le navigateur ne peut échanger des données de collection Cookies avec le serveur qu'avant que le serveur n'ait téléchargé des données vers le navigateur. Une fois que le navigateur commence à recevoir les données téléchargées par le serveur, l'échange de données Cookies s'arrête. Pour éviter les erreurs, ajoutez `response.Buffer=True` avant le programme et la balise `<HTML>`.

Propriétés de la collection

  • 1. Propriété Expires :Cette propriété est utilisée pour définir une période pour les Cookies. Pendant cette période, tant que la page web est ouverte, les Cookies enregistrés peuvent être appelés. Si cette période est dépassée, les Cookies sont automatiquement supprimés. Par exemple : fixez la période de validité des Cookies au 1er avril 2004, et ils seront alors automatiquement supprimés. Si un Cookie n'a pas de période de validité définie, son cycle de vie commence à l'ouverture du navigateur et se termine à la fermeture du navigateur. Après chaque exécution, le cycle de vie se termine, et l'exécution suivante recommence.
  • 2. Propriété Domain :Cette propriété définit l'unicité des données transmises par les Cookies. Si vous souhaitez uniquement envoyer un Cookie à la page d'accueil Sohu, vous pouvez utiliser le code suivant :
  • 3. Propriété Path :Elle définit que les Cookies sont envoyés uniquement aux requêtes pour le chemin spécifié. Si la propriété Path n'est pas définie, le chemin par défaut du logiciel d'application est utilisé.
  • 4. Propriété Secure :Spécifie si les Cookies peuvent être lus par l'utilisateur.
  • 5、Name=Value : Les Cookies sont définis et récupérés sous forme de paires clé-valeur.

Gestion des Cookies en Ruby

Vous pouvez créer un objet nommé cookie et stocker des informations textuelles, envoyer ces informations au navigateur et appeler CGI.out pour définir l'en-tête cookie :

Exemple

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

Ensuite, nous revenons à cette page et recherchons la valeur du cookie, comme indiqué ci-dessous :

Exemple

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

Lorsque l'objet CGI::Cookie est instancié, il contient les paramètres suivants :

Paramètre Description
name Spécifie le nom du cookie.
value Spécifie la valeur du cookie.
expire Spécifie la période de validité du cookie.
path Spécifie le chemin serveur du cookie.
domain Spécifie le domaine du cookie.
secure Spécifie si le cookie est transmis via une connexion HTTPS sécurisée.
Autres extensions