|
|
El tiempo de cocción de las cookies.
(17883 lectures)
Por Eduard Llull
Daneel
()
Creado el 06/03/2001 00:00 modificado el 06/03/2001 00:00
|
Si estás programando una Web en la que necesitas utilizar cookies y en algunos PC's te funcionan pero en otros no, puede ser que los clientes tengan mal configurada la hora.
Actualización: añadido un posible workaround. | Pagina1/1 |
Si alguna vez has tenido que utilizar cookies seguramente te habrás topado con su, aparentemente, extraño funcionamiento: Supongamos que tenemos una serie de ordenadores con clientes web y todos ellos tienen las cookies habilitadas: puede darse el caso de que en algunos ordenadores vayan bién y en otros no.
Antes de empezar a actualizar versiones de navegadores o de sistemas operativos (y antes de tirarnos por la ventana ante la desesperación 8-) debemos hacernos la siguiente pregunta: ¿Tienen todos estos ordenadores la hora bién configurada? Es muy común, sobre todo en la instalación del Windows, configurar erróneamente la localización del ordenador: me he encontrado casos de ordenadores que en España estaban configurados como si estuvieran en México. ¿Y por qué es importante eso si el ordenador tiene la hora correcta? Pues porque, aunque la hora local es correcta, la hora GMT (Greenwitch Meridian Time o la hora del meridiano de Greenwitch) se calcula en base a la hora local teniendo en cuenta la diferencia horaria. Por ejemplo:
-
Ordenador bien configurado:
Hora local: 14:27:34.
Localización: España -> Diferencia horaria: +1 h.
Hora GMT: 13:27:34.
-
Ordenador mal configurado:
Hora local: 14:27:34.
Localizacion: México -> Diferencia horaria: -6 h.
Hora GMT: 20:27:34.
Y la hora GMT es muy importante para las cookies porque su fecha de expiración se expresa en horario GMT. Así que si tenemos mal configurada la localización puede ser que nuestro cliente Web crea que las cookie han caducado cuando aun no lo están.
Siguiendo con nuestro ejemplo: Si la fecha de expiración de la cookie esta puesta a las 15:27:34 GMT, en el primer ordenador aun faltan dos horas para que la cookie caduque, mientras que en el segundo hace cinco que caducó.
Dado el hecho de que las Webs que mantienen información de estado (ya usen PHP o ASP) se basan en gran medida en el uso de cookies, el tener bien configurado el reloj de nuesto PC es esencial para el correcto funcionamiento de estas Webs.
Posible workaround:
Como es imposible controlar si todos los clientes que se conectan a nuestra web tienen bien configurado el reloj de su ordenador, se trataría de dar un tiempo de vida a la cookie muy grande (como de un año o más, por si el cliente no tiene mal la hora sino el dia o el mes) e introducir la fecha de expiración en la propia cookie. Entonces, cuando el cliente enviara la cookie al servidor, este podría mirar si la cookie ha caducado, y borrarla en tal caso. Es decir, pasamos la responsabilidad de borrar la cookie del cliente al servidor. Es una "solución" muy evidente y poco eficiente pero es la única que se me ocurre en la que no intervienen los clientes.
Además se podría hacer que las cookies no caducaran. De esta manera las cookies funcionarían bien incluso en los PC que sufren del efecto 2000 (os acordais del follón que hubo y ahora casi parece un cuento de hadas 8-). Pero aún no lo he provado y no se que tal se portarán los navegadores con las cookies que no caducan.
PS: Mamones, mirad vuestros relojes!! X'D |
|
|
|
|
|
Comentarios Es posible que se hayan omitido algunos comentarios considerados poco constructivos
| 1. Re:El tiempo de coccion de las cookies. (06/03/2001 22:19, #879) Por: Beowulf (http://starkmad.yi.org:8888/) |
Veo que la Palabra (i.e. MAMONES) de nuestro querido Presidente (i.e. DrSlump) se tiene muy en cuenta ultimamente...
Podriamos hacer un pequeño ejercicio de dislexia y llamarnos MULBA (Mamones Usuarios de Linux de BAleares).
De esta manera tal vez conseguiriamos que en las estadisticas de acceso (sección "top search strings" que llevan a Bulma) no apareciera en segundo lugar la cadena "bulma xxx" como ahora X'-DDD
Si, es una buena idea... a ver... votos a favor del cambio de nombre? votos en contra? Aprobado!!!
X'-DDDDDD | No es pot respondre |
2. Re:El tiempo de coccion de las cookies. (06/03/2001 23:15, #880) Por: gallir (http://m3d.uib.es/~gallir/) |
He recibido varias consultas de gente que trabaja conmigo sobre este tema, y era uno de los misterios que nunca pude resolver...
Mira por donde venía...
--ricardo | No es pot respondre |
3. Idea feliz... Re:El tiempo de cocción de las cookies. (08/05/2001 23:33, #1170) Por: Joan Miquel (http://www.mallorcaweb.net/joanmiquel) |
Sobre el workaround... ¿Y si es el año lo que tiene mal? ¿Y si ya no se vuelve a conectar nunca?
Además, cuando se guarda una cookie, si ya existia una con el mismo nombre... ¿no se borra el original? (o soy yo que voy muy despistado con lo de las cookies?). Amos, que si te conectas y te borra la cookie antes de volvertela a crear... no le veo yo la utilidad :-?
...Ahora bien. No se si digo una tonteria, pero me viene a la cabeza una idea feliz, aunque para ello hará falta algo de javascript (que yo ni flowers) o alguna cosa que se ejecute en el cliente.
La idea es averiguar la fecha que tiene el cliente para calcular la fecha definitiva de caducidad de la cookie a partir de ella. La pregunta es si se podria hacer eso? ...porque o la cookie tiene que guardarla directamente el cliente o tiene que mandar esa información al servidor para que éste genere y envie la cookie...
...bueno... no sé si me he explicado o lo he liado más :-O | No es pot respondre |
4. Re:El tiempo de cocción de las cookies. (09/05/2001 00:14, #1171) Por: Daneel (http://www.imagoediciones.com) |
Veamos:
> ¿Y si es el año lo que tiene mal?
En el articulo digo que se podría hacer que las cookies no caducasen, de esta manera aunque el cliente tuviera mal el año seguiria funcionando.
> ¿Y si ya no se vuelve a conectar nunca?
Pues la cookie le estará ocupando un mínimo espacio (1k o algo así) en su disco duro 8-).
> Además, cuando se guarda una cookie, si ya existia
> una con el mismo nombre... ¿no se borra el original?
Sí lo dices por si tengo dos cookies con el mismo nombre, una con el valor que quiero guardar y otra con la fecha de caducidad, la cosa no va por aquí. Lo que yo digo es que la fecha debe ir dentro del valor de la cookie. Es decir, supongamos que tenemos una tienda virtual y queremos que el cliente nos vaya enviando un identificador en forma de cookie. Pues en lugar de solo poner el identificador dentro de la cookie ponemos el identificador y la fecha de caducidad, dentro de la misma cookie. Por ejemplo, en PHP, se podría hacer con set_cookie("nombre de la cookie", $identificador . ":" . $fecha)
No se si me entiendes 8-/
> Amos, que si te conectas y te borra la cookie antes
> de volvertela a crear... no le veo yo la utilidad.
El servidor solo borraría la cookie si esta hubiera caducado. La verdad es que la caducidad de las cookies solo es útil en determinados casos.
Por ejemplo, cuando se hace login de autor en la web de Bulma, se utilizan cookies para mantener el login del autor. En este caso sí que es útil (incluso diría necesario por motivos de seguridad) que esta cookie caduque. Pero si la cookie solo se utiliza para saber si ese navegador ya había visitado la página, pues no es necesario que la cookie caduque.
Es decir, la utilidad depende del uso que le vayas a dar.
> La idea es averiguar la fecha que tiene el cliente...
Pues no se... Porque implicaría que el cliente debe ejecutar cierto código _antes_ de enviar la petición HTTP. Pero si el código es un JavaScript, este va dentro de una página HTML que el navegador debería haber solicitado anteriormente. Ufff, no se. Sería cuestión de estudiarlo con más detenimiento.
Bueno, si te interesa el tema podemos quedar un dia y lo hablamos 8-) | No es pot respondre |
5. Re: El tiempo de cocción de las cookies. (23/06/2003 17:19, #15429) Por: El cobarde anónimo |
| Tengo la curiosidad de saber los siguientes términos, para tener una mejor comprensión de estos conceptos y entrar en honda cuando se hable de temas relacionados con los mismos.
Navegadores
Kookies
Ordenadores.
En relación a la hora local de Venezuela como la expresaría en la hora Meridiano de Greenwith. | No es pot respondre |
|
|
|
|---|
|
|
|
|
Calificacion
    Vots: 13 |
Danos tu opinion:
|
|
|
|
|
|
|