Protocolo http (Protocolo de transferencia de hipertexto)
El protocolo HTTP es el protocolo base de la WWW. Se trata de un protocolo simple, orientado a conexión y sin estado. La razón de que esté orientado a conexión es que emplea para su funcionamiento un protocolo de comunicaciones de modo conectado, un protocolo que establece un canal de comunicaciones de extremo a extremo (entre el cliente y el servidor) por el que pasa el flujo de bytes que constituyen los datos que hay que transferir, lo contrario a los protocolos de datagrama o no orientados a conexión que dividen los datos en pequeños paquetes y los envían, pudiendo llegar por vías diferentes del servidor al cliente.
El protocolo no mantiene estado, es decir, cada transferencia de datos es una conexión independiente de la anterior, sin relación alguna entre ellas, hasta el punto de que para transferir una página web tenemos que enviar el código HTML del texto, así como las imágenes que la componen, pues en la especificación inicial de HTTP, la 1.0, se abrían y usaban tantas conexiones como componentes tenía la página, transfiriéndose por cada conexión un componente (el texto de la página o cada una de las imágenes).
Existe una variante de HTTP llamada HTTPS (S por secure o seguro) que utiliza el protocolo de seguridad SSL (secure socket layer) para cifrar y autenticar el tráfico entre cliente y servidor, siendo ésta muy usada por los servidores web de comercio electrónico, así como por aquellos que contienen información personal o confidencial. De manera esquemática, el funcionamiento de HTTP es el siguiente: el cliente establece una conexión TCP hacia el servidor, hacia el puerto HTTP (o el indicado en la dirección de conexión), envía un comando HTTP de petición de un recurso (junto con algunas cabeceras informativas) y por la misma conexión el servidor responde con los datos solicitados y con algunas cabeceras informativas.
El protocolo define además cómo codificar el paso de parámetros entre páginas, generar las conexiones mediante túneles (para sistemas que posean algún firewall), define la existencia de servidores intermedios de cache, etc. Las directivas de petición de información que define
HTTP
1.1 son:
* GET: Petición de recurso.
* POST: Petición de recurso pasando parámetros.
* HEAD: Petición de datos sobre recurso.
* PUT: Creación o envío de recurso.
* DELETE: Eliminación de recurso.
* TRACE: Devuelve al origen la petición tal como se ha recibido en el receptor, para depurar errores.
* OPTIONS: Sirve para comprobar las capacidades del servidor.
* CONNECT: Reservado para uso en servidores intermedios capaces de funcionar como túneles.
A continuación se detallan algunos de estos comandos, ya que su comprensión es útil para el desarrollo de aplicaciones web. Cabe destacar que todos los recursos que sean servidos mediante http deberán ser referenciados mediante una URL (universal resource locators).
Peticiones en HTTP: GET y POST
Las peticiones en HTTP pueden realizarse usando dos métodos. El método GET, en caso de enviar parámetros junto a la petición, las enviaría codificadas en la URL. Por su parte, el método POST, en caso de enviarlos, lo haría como parte del cuerpo de la petición.
Métodos http
Persistencia en http – Cookies
Una cookie es un fragmento de información que se almacena en el disco duro del visitante de una página Web a través de su navegador, a petición del servidor de la página. Esta información puede ser luego recuperada por el servidor en posteriores visitas. Las inventó Lou Montulli, un antiguo empleado de Netscape Communications. Al ser el protocolo HTTP incapaz de mantener información por sí mismo, para que se pueda conservar información entre una página vista y otra (como login de usuario, preferencias de colores, etc), ésta debe ser almacenada, ya sea en la URL de la página, en el propio servidor, o en una cookie en el ordenador del visitante.
De esta forma, los usos más frecuentes de las cookies son:
* Llevar el control de usuarios: cuando un usuario introduce su nombre de usuario y contraseña, se almacena una cookie para que no tenga que estar introduciéndolas para cada página del servidor.
Sin embargo una cookie no identifica a una persona, sino a una combinación de computadora y navegador.
* Ofrecer opciones de diseño (colores, fondos, etc) o de contenidos para el visitante.
* Conseguir información sobre los hábitos de navegación del usuario, e intentos de spyware, por parte de agencias de publicidad y otros. Esto puede causar problemas de privacidad y es una de las razones por la que las cookies tienen sus detractores.
Originalmente, sólo podían ser almacenadas por petición de un CGI desde el servidor, pero
Netscape dio a su lenguaje Javascript la capacidad de introducirlas directamente desde el cliente, sin necesidad de CGIs. En un principio, debido a errores del navegador, esto dio algunos problemas de seguridad, que posteriormente fueron resueltos. Estas vulnerabilidades fueron descubiertas por Esteban Rossi. Las cookies pueden ser borradas, aceptadas o bloqueadas según se desee, para esto solo se debe configurar de manera adecuada el navegador web. Desde su introducción en Internet han circulado ideas equivocadas acerca de las cookies. En 2005 Jupiter
Research publicó los resultados de un estudio, según el cual un importante porcentaje de entrevistados creían cierta alguna de las siguientes afirmaciones:
* Las cookies son similares a gusanos y virus en que pueden borrar datos de los discos duros de los usuarios;
* Las cookies son un tipo de spyware porque pueden leer información personal almacenada en el ordenador de los usuarios;
* Las cookies generan popups;
* Las cookies se utilizan para generar spam;
* Las cookies sólo se utilizan con fines publicitarios.
En realidad, las cookies son sólo datos, no código, debido a esto no pueden borrar ni leer información de la computadora de los usuarios. Sin embargo, las cookies permiten detectar las páginas visitadas por un usuario en un sitio determinado o conjunto de sitios. Esta información puede ser recopilada en un perfil de usuario. Estos perfiles son habitualmente anónimos, es decir, no contienen información personal del usuario (nombre, dirección, etc). De hecho, no pueden contenerla a menos que el propio usuario la haya comunicado a alguno de los sitios visitados. Pero aunque son anónimos, estos perfiles han sido objeto de algunas preocupaciones relativas a la privacidad.
Si se utiliza más de un navegador en una computadora, cada uno tiene su propio almacenamiento de cookies. Porlo tanto, las cookies no identifican a una persona, sino a una combinación de cuenta de usuario, computadora y navegador. De esta manera, cualquiera que utilice varias cuentas, varias computadoras, o varios navegadores, tiene también múltiples conjuntos de cookies.
De la misma manera, las cookies no diferencian entre varias personas que utilicen la misma PC o navegador, si éstos no utilizan diferentes cuentas de usuario.