Cookies HTTP con PHP

Dado el siguiente código:

¿Qué nuevo campo de cabecera HTTP de los siguientes aparecerá en la petición del navegador cuando el servidor ya haya enviado la cookie?:

  1. Cookie
  2. cookie
  3. setcookie
  4. Set-Cookie

Respuesta

1. Cookie

Explicación

Para entender cómo funcionan las cookies primero hay que entender bien cómo funciona el protocolo HTTP. HTTP es algo así como una jugada de ping pong entre un navegador y un servidor que se juega justo después de otra jugada de ping pong.

Muñecas rusas

Figura 1. HTTP es como una jugada de ping pong dentro de otra jugada de ping pong: TCP/IP

O dicho de otra forma, HTTP es un protocolo a nivel de aplicación que funciona sobre TCP/IP.

Conexión TCP

Figura 2. Primero de todo, cliente y servidor se conectan por medio de TCP/IP

Justo a continuación, cuando las dos máquinas ya están conectadas, pueden comenzar a hablar en HTTP como en el siguiente ejemplo (tomado de Wikipedia).

Para obtener el recurso http://www.example.com/index.html

  • Se abre una conexión al host www.example.com
  • Se envía un mensaje como el siguiente:

La respuesta del servidor está formada por encabezados seguidos del recurso que se pide, en caso de un documento HTML:

No obstante hay un pequeño problema: HTTP es un protocolo sin estado. Esto significa que en cada solicitud PHP solo puede acceder a la información que hay en la cabecera correspondiente. ¿Cómo puede, pues, un servidor web hacer el seguimiento de la comunicación que lleva a cabo con un navegador determinado?

Las cookies solucionan este problema. Se trata de pequeños paquetes de información que se almacenan en el navegador web. Cuando el agente de usuario (el navegador) se comunica por primera vez con un servidor que maneja cookies, este último le envía una cookie con cierta información. A partir de ese momento, el navegador reenvía dicha cookie al servidor en cada solicitud que realiza.

Por cierto, la función:

Equivale a:

En todo caso, el servidor envía esta cabecera HTTP:

Luego, cuando el agente de usuario (el navegador web) ya tiene instalada la cookie que le envió el servidor, su cabecera HTTP de solicitud será esta:

HTTP cookie exchange

Figura 3. Establecimiento de una cookie (puedes clicar en la imagen para verla más grande)

Fíjate que la cabecera de petición ya incorpora el nuevo campo cuyo valor está en codificación URL, o URL-encoded:

0 comentarios

¿Me dejas un comentario? ¡Gracias!

Deja un comentario

Los campos obligatorios están marcados con *