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

Cookies CGI en Ruby

El protocolo HTTP es un protocolo sin estado. Pero para un sitio web comercial, necesita mantener la información de sesión entre diferentes páginas.

Si el usuario necesita saltar a otra página durante el proceso de registro en el sitio web, pero también necesita garantizar que no se pierda la información que ha llenado anteriormente.

En este caso, Cookie nos ayuda a resolver el problema de manera excelente.

¿Cómo funciona Cookie?

Casi todos los diseñadores de sitios web utilizan Cookie durante el diseño del sitio web, porque todos quieren proporcionar a los usuarios que navegan por el sitio una experiencia de navegación más amigable y humana, y también pueden recopilar información sobre los visitantes de manera más precisa.

Escribir y leer

La colección de cookies es una colección de datos adjunta al objeto Response y Request, que debe ser especificada con Response o Request al usarla.

La sintaxis para enviar cookies al cliente generalmente es:}}

Cuando se configura una colección de Cookies inexistente, se crea en el cliente, si ya existe, se reemplazará. Dado que las cookies se envían como parte de la información de encabezado HTTP al cliente, generalmente se coloca el código para enviar cookies antes de los marcadores del archivo HTML enviado al navegador.

Si el usuario desea leer las cookies, debe usar la colección Cookies del objeto Request, su método de uso es: Es importante destacar que solo se puede intercambiar datos de la colección Cookies con el navegador antes de que el servidor descargue cualquier datos al navegador, una vez que el navegador comience a recibir los datos descargados por el servidor, el intercambio de datos de Cookies se detiene. Para evitar errores, debe agregar response.Buffer=True en el programa.

Atributos de la colección

  • 1.Expires atributo:Esta propiedad se utiliza para establecer un plazo para las cookies, siempre que se abra la página web dentro de este plazo, se puede llamar a las cookies guardadas. Si pasa este plazo, las cookies se eliminarán automáticamente. Por ejemplo: Configura la fecha de expiración de las cookies hasta2004Año4Mes1Día, se borrará automáticamente a la hora especificada. Si una cookie no tiene configurada una fecha de expiración, su ciclo de vida comienza al abrir el navegador y termina al cerrarlo, terminando su ciclo de vida cada vez que se ejecuta y comenzando de nuevo la próxima vez que se ejecuta.

  • 2.Domain atributo:Esta propiedad define la unicidad de transmisión de cookies. Si solo se envía una cookie a_blank">搜狐主页时,则可使用如下代码:

  • 3.Path atributo:Define que las cookies solo se envíen a solicitudes de rutas específicas, si no se ha configurado el atributo Path, se utiliza la ruta predeterminada del software de aplicación.

  • 4.Secure atributo:Especifica si las cookies pueden ser leídas por el usuario.

  • 5、Name=Value : Las cookies se configuran y buscan en forma de pares clave=valor.

Manejo de Cookies en Ruby

Puedes crear un objeto llamado cookie y almacenar información de texto, enviar esta información al navegador, y configurar el encabezado de cookie utilizando CGI.out:

Ejemplo en línea

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

Volvemos a esta página y buscamos el valor de cookie, como se muestra a continuación:

Ejemplo en línea

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

Al crear el objeto CGI::Cookie se incluyen los siguientes parámetros:

ParámetrosDescripción
nombreEspecifique el nombre del cookie.
valorEspecifique el valor del cookie.
expirarEspecifique la duración de validez del cookie.
rutaEspecifique la ruta del servidor del cookie.
dominioEspecifique el dominio del cookie.
seguroEspecifique si debe transmitir el cookie a través de una conexión segura HTTPS.