Inicio > Internet > Protocolo HTTP

Protocolo HTTP

Tim Berners Lee Inventor del WWW describe a Internet como una economía de mercado, en una economía de mercado, cualquiera puede comerciar con cualquiera sin necesidad de ir a un lugar específico en donde se encuentren todos los comerciantes.
Para poder comerciar es necesario ponerse de acuerdo sobre la manera de hacer los tratos, por ejemplo el tipo de moneda que se va a utilizar, así como las reglas de una negociación justa.

El Web no es algo físico que existe en cierto lugar, es un espacio en el cual la información puede existir, para establecer comunicación entre cliente y servidor se necesitan reglas de por ejemplo como interpretar una URI y tener un lenguaje de comunicación común que las dos partes entiendan. El lenguaje que se usa en el Web se llama protocolo HTTP, este protocolo define las reglas de por ejemplo quien habla primero, como se alternaran en la comunicación, y el formato de los mensajes que se intercambian.

El principio fundamental del Web es que cuando alguien hace disponible un recurso (documento, gráfico, sonido, video, etc.) este deba ser accesible por cualquiera, sin ninguna restricción (el tipo de computadora o país de procedencia).
Antes del Web para obtener un recurso externo se necesitaban de complejas series de instrucciones para obtenerlo, al aparecer el Web las personas cambiaron esas complicadas instrucciones por una simple cadena de identificación (URI) que contiene todos los detalles esenciales de una manera compacta.

Todo recurso Web tiene un nombre, de esta manera los clientes pueden seleccionar los recursos en los cuales están interesados, El nombre de recurso de servidor se llama Identificador uniforme de recurso (URI´s Uniform Resource Identifier) los URIs son como las direcciones postales de Internet y están disponibles en dos sabores URN’s y URL’s

Un recurso Web es una fuente de contenido almacenado en un servidor Web. Un ejemplo de contenido Web puede ser un archivo plano de texto, html, imágenes, películas, también pueden ser programas de software que generan contenido sobre demanda. Este contenido dinámico puede generar contenido basado en parámetros en la petición del recurso.

El localizador uniforme de recurso (URL) es la forma más común de URI, los URL describen la ubicación específica de un recurso.
La mayoría de los URL siguen un formato estándar de tres partes principales, la primer parte corresponde al protocolo usado para acceder al recurso que usualmente es el HTTP esta parte es generalmente llamada esquema, La segunda parte da la dirección del servidor Web y la tercer parte es el nombre del recurso en el servidor Web.
Los URL´s definen todo lo necesario para encontrar un recurso en particular, definen el recurso, donde esta localizado y como obtenerlo la sintaxis de un url es

<esquema>://<usuario>:<contraseña>@<host>:<puerto>/<ruta>;<parametros>?< consulta>#<fragmento>

esquema: Que protocolo se usará para acceder el recurso de un servidor.
usuario: Nombre de usuario (opcional algunos esquemas necesitan autentificación para acceder a un recurso)
contraseña: La contraseña que va después del nombre de usuario separado por dos puntos (:)
host: El nombre de host o dirección IP de el servidor que hospeda a el recurso.
puerto: El numero de puerto que el servidor utiliza para manejar las peticiones (opcional el numero de puerto por default para el Web es el 80)
ruta: El nombre local del recurso en el servidor
parámetros: Parámetros separados por ; (opcional, algunos esquemas requeren de especificar parámetros de entrada
consulta: Parámetros para aplicaciones Web especificados por el signo de ?(opcional)
fragmento: Es el nombre de una parte del recurso en especifico, esta no se pasa al servidor se usa internamente por el cliente y va después de poner el signo # (opcional)

El nombre uniforme de recurso (URN) sirve como un único nombre para un contenido en particular, independientemente de donde se localiza el recurso. Esto permite a los recursos moverse de un lugar a otro lugar sin cambiar su dirección. También permite que los recursos sean accedidos por múltiples protocolos de acceso manteniendo el mismo nombre.

HTTP se maneja por medio de transacciones, estas consisten de un comando de petición (enviado de el cliente al servidor), y un resultado de respuesta (enviado del servidor a el cliente). Esta comunicación se pasa por medio de bloques formateados de datos llamados mensajes HTTP, para que el servidor conozca que acción va a desarrollar sobre una petición, cada comando de petición va acompañada por un método, los métodos mas comunes son GET, PUT, DELETE, POST, HEAD, las respuestas del servidor a su vez van acompañados de un código de estado que es un numero de tres dígitos que informa al cliente si la petición ha sido exitosa, o si se requieren mas acciones.

Los mensajes HTTP son simples secuencias de líneas de caracteres, están los mensajes de petición que se envían de clientes Web a servidores Web y los mensajes de respuesta que se envían del servidor al cliente, los formatos entre estos dos tipos de mensajes son muy similares, consisten de tres partes:

La línea de inicio de un mensaje de petición especifica que se va a hacer, la línea de inicio de un mensaje de respuesta indica que paso con la petición.
Cabeceras, cero o mas campos de atributos que consisten en líneas nombre y su valor, separados por dos puntos (:) para un análisis mas fácil, las cabeceras terminan con una línea en blanco.
Cuerpo, después de la línea en blanco esta el cuerpo que es opcional y puede contener cualquier tipo de datos, el cuerpo de los mensajes de petición, lleva los datos al servidor Web; el cuerpo de los mensajes de respuesta regresa datos al cliente. El cuerpo puede contener datos binarios como imágenes video o audio o también puede contener datos de texto.

Ejemplo de mensaje de peticion
————————————
GET /inicio.html HTTP/1.0
User-agent: Mozilla/4.75 [en] (Win98; U)
Host: http://www.dominio.com
Accept: text/html, image/gif, image/jpeg
Accept-language: enEjemplo de Mensaje de respuesta
————————————
HTTP/1.0 200 OK
Date: Sun, 01 oct 2000 23:25:17 GMT
Server: Apache/1.3.11 BSafe-SSL/1.38 (Unix)
Content-length: 403
Content-type: text/html

<html>
.
.
.
</html>

HTTP es un protocolo de la capa de aplicación del TCP/IP, usa el TCP para transportar sus mensajes de datos.
Antes de que un cliente HTTP pueda mandar un mensaje a un servidor, necesita establecer una conexión TCP entre el cliente y el servidor usando el protocolo de Internet, para establecer esta conexión , se necesita la dirección IP del servidor y el numero de puerto TCP asociado con el software que se esta ejecutando en el servidor.
Por medio del Servicio de nombre de dominio (DNS) se convierten las direcciones IP en nombres para mayor entendimiento de los usuarios.

En el marco de desarrollo de RIA´s es fundamental conocer el protocolo de comunicación HTTP, para poder hacer peticiones mas especificas y lograr un buen manejo de errores y retroalimentación al usuario. Con un buen conocimiento del protocolo sus métodos y funciones se puede por ejemplo lograr un buen sistema de cacheo del lado del cliente y de esta manera aligerar la carga de peticiones al servidor.

Categorías:Internet
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: