Está en la página 1de 4

Introduccin al protocolo HTTP

Desde 1990, el protocolo HTTP (Protocolo de transferencia de hipertexto) es el protocolo ms utilizado en


Internet. La versin 0.9 slo tena la finalidad de transf erir los datos a travs de Internet (en particular
pginas Web escritas en HTML). La versin 1.0 del protocolo (la ms utilizada) permite la transferencia de
mensajes con encabezados que describen e l contenido de los mensajes mediante la codificacin MIME.
El propsito del protocolo HTTP es permitir la transferencia de archivos (principalmente, en formato HTML).
entre un navegador (el cliente) y un servidor web (denominado, entre otros, httpd en equipos UNIX)
localizado mediante una cadena de caracteres denominada direccin URL.

Comunicacin entre el navegador y el servidor


La comunicacin entre el navegador y el servidor se lleva a cabo en dos etapas:

El navegador realiza una solicitud HTTP


El servidor proc esa la solicitud y despus enva una respuesta HTTP

En realidad, la comunicacin se realiza en ms etapas si se considera el procesamiento de la solicitud en el


servidor. Dado que slo nos ocupamos del protocolo HTTP, no se explicar la parte del procesam iento en el
servidor en esta seccin del artculo. Si este tema les interesa, puede consultar el articulo sobre el
tratamiento de CGI.

Solicitud HTTP
Una solicitud HTTP es un conjunto de lneas que el navegador enva al servidor. Incluye:

Una lnea de solicitud: es una lnea que especifica el tipo de documento solicitado, el mtodo que
se aplicar y la versin del protocolo utilizada. La lnea est formada por tres elementos que deben
estar separados por un espacio:
el mtodo
la direccin URL
la versin del protocolo utilizada por el cliente (por lo general, HTTP/1.0)
Los campos del encabezado de solicitud : es un conjunto de lneas opcionales que permiten
aportar informacin adicional sobre la solicitud y/o el cliente (navegador, sistema operativo, etc. ).
Cada una de estas lneas est formada por un nombre que describe el tipo de encabezado, seguido
de dos puntos (:) y el valor del encabezado.
El cuerpo de la solicitud: es un conjunto de lneas opcionales que deben estar separadas de las
lneas precedentes por una lnea en blanco y, por ejemplo, permiten que se enven datos por un
comando POST durante la transmisin de datos al servidor utilizando un formulario.

Por lo tanto, una solicitud HTTP posee la siguiente sintaxis (<crlf> significa retorno de carro y avance de
lnea):

MTODO VERSIN URL <crlf>


ENCABEZADO: Valor<crlf>
. . . ENCABEZADO: Valor<crlf>
Lnea en blanco <crlf>
CUERPO DE LA SOLICITUD
A continuacin se encuentra un ejemplo de una solicitud HTTP:
GET http://es.kioskea.net HTTP/1.0 Accept : Text/html If-Modified-Since :
Saturday, 15-January-2000 14:37:11 GMT User-Agent : Mozilla/4.0 (compatible;
MSIE 5.0; Windows 95)

Comandos
Comando
GET
HEAD

Descripcin
Solicita el recurso ubicado en la URL especificada
Solicita el encabezado del recurso ubicado en la URL especificada

POST
PUT
DELETE

Enva datos al programa ubicado en la URL especificada


Enva datos a la URL especificada
Borra el recurso ubicado en la URL especificada

Encabezados
Nombre del
encabezado

Descripcin

Accept-Charset
Accept-Encoding

Tipo de contenido aceptado por el navegador (por ejemplo, texto/html ). Consulte


Tipos de MIME
Juego de caracteres que el navegador espera
Codificacin de datos que el navegador acepta

Accept-Language
Authorization
Content- Encoding

Idioma que el navegador espera (de forma predeterminada, ingls)


Identificacin del navegador en el servidor
Tipo de codificacin para el cuerpo de la solicitud

Content-Language
Content-Length

Tipo de idioma en el cuerpo de la solicitud


Extensin del cuerpo de la solicitud
Tipo de contenido del cuerpo de la solicitud (por ejemplo, texto/html ). Consulte Tipos
de MIME

Accept

Content- Type
Date
Forwarded
From
From

Fecha en que comienza la transferencia de datos


Utilizado por equipos intermediarios entre el navegador y el servidor
Permite especificar la direccin de correo electrnico del cliente
Permite especificar que debe enviarse el documento si ha sido modificado desde
una fecha en particular

Link
Orig- URL
Referer

Vnculo entre dos direcciones URL


Direccin URL donde se origin la solicitud
Direccin URL desde la cual se realiz la solicitud

User-Agent

Cadena con informacin sobre el cliente, por ejemplo, el nombre y la versin del
navegador y el sistema operativo

Respuesta HTTP
Una respuesta HTTP es un conjunto de lneas que el servidor enva al navegador. Est constituida por:
Incluye:

Una lnea de estado: es una lnea que especifica la versin del protocolo utilizada y el estado de la
solicitud en proceso mediante un texto explicativo y un cdigo. La lnea est compuesta por tres
elementos que deben estar separados por un espacio: La lnea est formada por tres elementos que
deben estar separados por un espacio:

la versin del protocolo utilizada


el cdigo de estado
el significado del cdigo
Los campos del encabezado de respuesta : es un conjunto de lneas opcionales que permiten
aportar informacin adicional sobre la respuesta y/o el servidor. Cada una de estas lneas est
compuesta por un nombre que califica el tipo de encabezado, seguido por dos puntos (:) y por el
valor del encabezado Cada una de estas lneas est formada por un nombre que describe el tipo de
encabezado, seguido de dos puntos (:) y el valor del encabezado.
El cuerpo de la respuesta: contiene el documento solicitado.

Por lo tanto, una respuesta HTTP posee la siguiente sintaxis ( <crlf> significa retorno de carro y avance de
lnea):
VERSIN-HTTP CDIGO EXPLICACIN <crlf>
ENCABEZADO: Valor<crlf>
. . . ENCABEZADO: Valor<crlf>
Lnea en blanco <crlf>
CUERPO DE LA RESPUESTA

A continuacin se encuentra un ejemplo de una respuesta HTTP:


HTTP/1.0 200 OK Date: Sat, 15 Jan 2000 14:37:12 GMT Server : Microsoft -IIS/2.0
Content-Type : text/HTML Content -Length : 1245 Last-Modified : Fri, 14 Jan 2000
08:25:13 GMT

Encabezados de respuesta
Nombre del
encabezado
Content- Encoding
Content-Language
Content-Length

Descripcin

Date
Expires
Forwarded

Tipo de codificacin para el cuerpo de la respuesta


Tipo de idioma en el cuerpo de la respuesta
Extensin del cuerpo de la respuesta
Tipo de contenido del cuerpo de la respuesta (por ejemplo, texto/html ). Consulte
Tipos de MIME
Fecha en que comienza la transferencia de datos
Fecha lmite de uso de los datos
Utilizado por equipos intermediarios entre el navegador y el servidor

Location
Server

Redireccionamiento a una nueva direccin URL asociada con el documento


Caractersticas del servidor que envi la respuesta

Content- Type

Los cdigos de respuesta


Son los cdigos que se ven cuando el navegador no puede mostrar la pgina solicitada. El cdigo de
respuesta est formado por tres dgitos: el primero indica el estado y los dos sigu ientes explican la
naturaleza exacta del error.
Cdigo

Mensaje
Mensaje de
informacin

10x
20x
200

OK

xito

201

CREATED

Descripcin
Estos cdigos no se utilizan en la versin 1.0 del protocolo
Estos cdigos indican la correcta ejecucin de la transaccin
La solicitud se llev a cabo de manera correcta
Sigue a un comando POST e indica el xito, la parte restante del cuerpo
indica la direccin URL donde se ubicar el documento creado
recientemente.

202

ACCEPTED

204

PARTIAL
INFORMATION
NO RESPONSE

205

RESET CONTENT

203

206
30x

El servidor le indica al navegador que borre el contenido en los campos de un


formulario
Es una respuesta a una solicitud que consiste en el encabezado range. El
PARTIAL CONTENT
servidor debe indicar el encabezado content-Range
Estos cdigos indican que el recurso ya no se encuentra en la
Redireccin
ubicacin especificada

301

MOVED

302

FOUND

303

METHOD

304

NOT MODIFIED

40x

Error debido al
cliente

400

BAD REQUEST

401

UNAUTHORIZED

403

PAYMENT
REQUIRED
FORBIDDEN

404

NOT FOUND

402

50x

La solicitud ha sido aceptada, pero el procedimiento que sigue no se ha


llevado a cabo
Cuando se recibe este cdigo en respuesta a un comando de GET indica que
la respuesta no est completa.
El servidor ha recibido la solicitud, pero no hay informacin de respuesta

Error debido al
servidor

Los datos solicitados han sido transferidos a una nueva direccin


Los datos solicitados se encuentran en una nueva direccin URL, pero, no
obstante, pueden haber sido trasladados
Significa que el clie nte debe intentarlo con una nueva direccin; es preferible
que intente con otro mtodo en vez de GET
Si el cliente llev a cabo un comando GET condicional (con la solicitud
relativa a si el documento ha sido modificado desde la ltima vez) y el
documento no ha sido modificado, este cdigo se enva como respuesta.
Estos cdigos indican que la solicit ud es incorrecta
La sintaxis de la solicitud se encuentra formulada de manera errnea o es
imposible de responder
Los parmetros del mensaje aportan las especificaciones de formularios de
autorizacin que se admiten. El c liente debe reformular la solicitud con los
datos de autorizacin correctos
El cliente debe reformular la solicitud con los datos de pago correctos
El acceso al recurso simplemente se deniega
Un clsico. El servidor no hall nada en la direccin especificada. Se ha
abandonado sin dejar una direccin para redireccionar... :)
Estos cdigos indican que existe un error interno en el servidor

500

INTERNAL ERROR

El servidor encontr una condicin inesperada que le impide seguir con la


solicitud (una de esas cosas que les suceden a los servidores...)

501

NOT
IMPLEMENTED

El servidor no admite el servicio solicitado (no puede saberlo todo...)

502

BAD GATEWAY

503

SERVICE
UNAVAILABLE

504

GATEWAY
TIMEOUT

El servidor que acta c omo una puerta de enlace o proxy ha recibido una
respuesta no vlida del servidor al que intenta acceder
El servidor no puede responder en ese momento debido a que se encuentra
congestionado (todas las lneas de comunicacin se encuentran
congestionadas, intntelo de nuevo ms adelante)
La respuesta del servidor ha llevado demasiado tiempo en relacin al tiempo
de espera que la puerta de enlace poda admitir (excedi el tiempo
asignado...)