miércoles, 9 de marzo de 2011

PROTOCOLO HTTP

HTTP ( HyperText Transfer Protocol ) o Protocolo de Transferencia de Hipertexto es un conjunto de reglas que rigen la transferencia de datos en una comunicación Web.

En su base su finalidad es la transferencia de Hipertexto ( texto con componentes y enlaces a otros textos ) pero en la actualidad es utilizado tanto para la transferencia de Hipertexto cómo para transferencia de Ficheros ( carga y descarga de ficheros ), datos ( XML ), trafico de red ( SSLVPN )...

La comunicación HTTP

Los datos de una transacción HTTP son enviados en una comunicación TCP al puerto 80 ( por defecto) tipo cliente-servidor en la que el cliente ( navegador web ) envía una petición al servidor HTTP y el servidor responde cerrado o no la conexión.

El formato de la petición y la respuesta HTTP es el siguiente:
 

000
001
002
003
004
005 
Petición/Respuesta
Encabezado-1: Valor-1
...
Encabezado-N: Valor-n

[Cuerpo]

Donde la primera línea ( Petición/Respuesta ) será:
En una petición
El método, el recurso solicitado y el protocolo/versión separados por espacios:
GET /index.htm HTTP/1.1

En una respuesta
El protocolo/versión, el código de estado y el detalle de estado separados por espacios:
HTTP/1.0 404 Not Found
Pudiendo tener cualquiera de los siguientes estados:
100 Continua
101 Cambio de protocolo
200 OK
201 Creado
202 Aceptado
203 Información no oficial
204 Sin Contenido
205 Contenido para reset
206 Contenido parcial
300 Múlpiples posibilidades
301 Mudado permanentemente
302 Encontrado
303 Vea otros
304 No modificado
305 Utilice un proxy
307 Redirección temporal
400 Solicitud incorrecta
401 No autorizado
402 Pago requerido
403 Prohibido
404 No encontrado
405 Método no permitido
406 No aceptable
407 Proxy requerido
408 Tiempo de espera agotado
409 Conflicto
410 No mapas disponible
411 Requiere longitud
412 Falló precondición
413 Entidad de solicitud demasiado larga
414 URI de solicitud demasiado largo
415 Tipo de medio no soportado
416 Rango solicitado no disponible
417 Falló expectativa
500 Error interno
501 No implementado
502 Pasarela incorrecta
503 Servicio no disponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada
Los encabezados ( Encabezado1-N ) son una combinación directiva: valor que contienen, en la petición, información del navegador y la petición, y en la respuesta información del servidor y el recurso.

El cuerpo contiene los datos a enviar/recibir.

Ejemplo

Hacemos una petición:
 

000
001
002
003 
GET http://www.programacionweb.net/ HTTP/1.0
From: yo@miHost.example
User-Agent: HTTPTool/1.0 


Recibimos la respuesta:
 

000
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015 
HTTP/1.0 200 OK
Content-Type: text/html
Server: Microsoft-IIS/6.0
X-Powered-By: PHP/4.4.1
Date: Tue, 20 Jun 2006 01:12:47 GMT
Connection: close

<html>
<body>
<h1>Página principal de tuHost</h1>
(Contenido)
 .
 .
 .
</body>
</html>

Podeis ver los encabezados HTTP de un servidor con nuestro visor de encabezados

No hay comentarios:

Publicar un comentario