Ruby - Cookies CGI

Le protocole HTTP est un protocole sans état. Mais pour un site Web commercial, il est nécessaire de conserver les informations de session entre différentes pages. Par exemple, l'enregistrement d'un utilisateur se termine après avoir terminé de nombreuses pages. Mais comment conserver les informations de session de l'utilisateur sur toutes les pages Web.

Dans de nombreuses situations, l'utilisation de cookies est la méthode la plus efficace pour se souvenir et suivre les préférences, les achats, les commissions et d'autres informations nécessaires pour une meilleure expérience des visiteurs ou des statistiques du site.

Comment ça fonctionne?

Votre serveur envoie certaines données au navigateur du visiteur sous la forme d'un cookie. Le navigateur peut accepter le cookie. Si tel est le cas, il est stocké sous forme d'enregistrement en texte brut sur le disque dur du visiteur. Désormais, lorsque le visiteur arrive sur une autre page de votre site, le cookie est disponible pour la récupération. Une fois récupéré, votre serveur sait / se souvient de ce qui a été stocké.

Les cookies sont un enregistrement de données en texte brut de cinq champs de longueur variable -

  • Expires- La date d'expiration du cookie. Si ce champ est vide, le cookie expirera lorsque le visiteur quittera le navigateur.

  • Domain - Le nom de domaine de votre site.

  • Path- Le chemin d'accès au répertoire ou à la page Web qui définit le cookie. Cela peut être vide si vous souhaitez récupérer le cookie à partir de n'importe quel répertoire ou page.

  • Secure- Si ce champ contient le mot «sécurisé», alors le cookie ne peut être récupéré qu'avec un serveur sécurisé. Si ce champ est vide, une telle restriction n'existe pas.

  • Name = Value - Les cookies sont définis et récupérés sous la forme de paires clé et valeur.

Manipulation des cookies dans Ruby

Vous pouvez créer un objet cookie nommé et y stocker toutes les informations textuelles. Pour l'envoyer au navigateur, définissez uncookieen-tête dans l'appel à CGI.out .

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

La prochaine fois que l'utilisateur reviendra sur cette page, vous pourrez récupérer les valeurs de cookie définies comme indiqué ci-dessous -

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

Les cookies sont représentés à l'aide d'un objet séparé de la classe CGI :: Cookie, contenant les accesseurs suivants -

Attribut Valeur retournée
Nom Nom du cookie
valeur Un tableau de valeurs de cookies
chemin Le chemin du cookie
domaine Le domaine
expire L'heure d'expiration (en tant qu'objet Time)
sécurise Vrai si cookie sécurisé