Ruby CGI Cookie
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.
Por ejemplo, durante el proceso de registro en un sitio web, el usuario necesita saltar entre páginas, pero debe garantizar que la información completada anteriormente no se pierda.
En este caso, las cookies nos ayudan a resolver muy bien el problema.
¿Cómo funcionan las cookies?
Casi todos los diseñadores de sitios web utilizan cookies al diseñar sus sitios, porque quieren ofrecer a los usuarios que navegan por el sitio un entorno de navegación más amigable y humanizado, y al mismo tiempo recopilar información de los visitantes con mayor precisión.
Escritura y lectura
La colección Cookies es una colección de datos adjunta a los objetos Response y Request; al usarla, es necesario anteponer Response o Request.
La sintaxis que se utiliza para enviar cookies al cliente suele ser:
Cuando se establece una colección Cookies que no existe, se crea en el cliente; si la cookie ya existe, será reemplazada. Dado que las cookies se envían al cliente como parte de la información de cabecera de la transmisión HTTP, el código para enviar cookies al cliente generalmente se coloca antes de la etiqueta del archivo HTML que se envía al navegador.
Si el usuario desea leer cookies, debe utilizar la colección Cookies del objeto Request, y su forma de uso es: Es importante tener en cuenta que el navegador solo puede intercambiar datos de la colección Cookies con el servidor antes de que este haya descargado cualquier dato al navegador. Una vez que el navegador comienza a recibir los datos descargados por el servidor, el intercambio de datos de Cookies se detiene. Para evitar errores, es necesario agregar response.Buffer=True antes del programa y de la etiqueta.
Propiedades de la colección
- 1. Propiedad Expires:Esta propiedad se utiliza para establecer un plazo para las cookies. Dentro del plazo, basta con abrir la página web para poder invocar las cookies guardadas; si pasa el plazo, las cookies se eliminan automáticamente. Por ejemplo: establecer que la validez de las cookies sea hasta el 1 de abril de 2004, y se eliminarán automáticamente llegado ese momento. Si una cookie no tiene un período de validez definido, su ciclo de vida comienza al abrir el navegador y termina al cerrarlo; cada vez que se ejecuta, el ciclo de vida finaliza, y en la próxima ejecución comenzará de nuevo.
- 2. Propiedad Domain:Esta propiedad define la unicidad de los datos que transmiten las cookies. Si solo se desea transmitir una cookie a _blank">la página principal de Sohu, se puede utilizar el siguiente código:
- 3. Propiedad Path:Define que las cookies solo se envían a solicitudes de la ruta especificada; si la propiedad Path no se establece, se utiliza la ruta predeterminada de la aplicación.
- 4. Propiedad Secure:Especifica si las cookies pueden ser leídas por el usuario.
- 5、Name=Value : Las cookies se establecen y recuperan en forma de pares clave-valor.
Manejo de cookies en Ruby
Puedes crear un objeto llamado cookie y almacenar información de texto, enviar esa información al navegador y llamar a CGI.out para establecer la cabecera de la cookie:
Ejemplo
A continuación, volvemos a esta página y buscamos el valor de la cookie, como se muestra a continuación:
Ejemplo
El objeto CGI::Cookie incluye los siguientes parámetros al ser instanciado:
| Parámetro | Descripción |
|---|---|
| name | Especifica el nombre de la cookie. |
| value | Especifica el valor de la cookie. |
| expire | Especifica el período de validez de la cookie. |
| path | Especifica la ruta del servidor de la cookie. |
| domain | Especifica el dominio de la cookie. |
| secure | Especifica si la cookie se transmite a través de una conexión HTTPS segura. |