Contacto
Sitemap
 
Categoría: Dise√Īo Web e Internet

Sábado, 22 Jul 2006

HTTP - Hyper Text Transfer Protocol

HTTP es el protocolo de la Web (WWW), usado en cada transacción. Las letras
significan Hyper Text Transfer Protocol, es decir, protocolo de transferencia
de hipertexto. El hipertexto es el contenido de las páginas web, y el protocolo
de transferencia es el sistema mediante el cual se envían las peticiones
de acceder a una página web, y la respuesta de esa web, remitiendo la información
que se verá en pantalla. También sirve el protocolo para enviar
información adicional en ambos sentidos, como formularios con mensajes
y otros similares.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna información
sobre conexiones anteriores. Al finalizar la transacción todos los datos
se pierden. Por esto se popularizaron las cookies, que son pequeños ficheros
guardados en el propio ordenador que puede leer un sitio web al establecer conexión
con él, y de esta forma reconocer a un visitante que ya estuvo en ese
sitio anteriormente. Gracias a esta identificación, el sitio web puede
almacenar gran número de información sobre cada visitante, ofreciéndole
así un mejor servicio.
La versión actual de HTTP es la 1.1, y su especificación está
en el documento RFC-2616.
HTTP dispone de una variante cifrada mediante SSL llamada HTTPS.

Transacciones HTTP

El protocolo HTTP es un protocolo sin estado; está basado en el modelo
cliente-servidor: Un cliente HTTP abre una conexión y realiza su solicitud
al servidor, el cual responde generalmente el recurso solicitado y la conexión
se cierra.
El formato tanto del mensaje como de la respuesta es como sigue:
<Línea inicial>

Header-1: value-1

Header-n: value-n
<Cuerpo del mensaje (Opcional)>
La línea inicial es diferente en las solicitudes y en las respuestas.
En las solicitudes van tres campos separados por un espacio en blanco: "Método
recurso versiónDelProtocolo". Por ejemplo: "GET /path/to/file/index.html
HTTP/1.0". La línea inicial de una respuesta tiene tres campos separados
por un espacio: "versiónDelProtocolo códigoRespuesta Mensaje".
Por ejemplo: "HTTP/1.0 200 OK" o bien "HTTP/1.0 404 Not Found".
Los encabezados están normados en el protocolo, e incluyen, en el caso
de una solicitud, información del navegador y eventualmente del usuario
cliente; En el caso de una respuesta, información sobre el servidor y
sobre el recurso. El cuerpo del mensaje contiene el recurso a transferir o el
texto de un error en el caso de una respuesta. En el caso de una solicitud,
puede contener parámetros de la llamada archivos enviados al servidor.

Ejemplo de un dialogo HTTP
Para obtener un recurso con el URL http://www.tuhost.com/index.html
1. Se abre un socket con el host www.tuHost.com, puerto 80 que ese el puerto
por defecto para HTTP.

2. Se envía un mensaje en el estilo siguiente :
GET /index.html HTTP/1.0

From: yo@miHost.com

User-Agent: HTTPTool/1.0

[Línea en blanco]
La respuesta del servidor está formada por encabezados seguidos del
recurso solicitado, en el caso de una página web:
HTTP/1.0 200 OK

Date: Fri, 31 Dec 2003 23:59:59 GMT

Content-Type: text/html

Content-Length: 1221
<html>

<body>

<h1>Página principal de tuHost</h1>

(Contenido)

.

.

.

</body>

</html>
Al recibirse la respuesta, el servidor cierra la comunicación. Cabe
señalar que los principales navegadores web no muestran al usuario los
encabezados HTTP del recurso. Para visualizar tales encabezados pueden utilizarse
herramientas conocidas genéricamente como "visores HTTP". Son
especialmente cómodos de utilizar los visores HTTP on-line. Se puede
acceder a gran variedad de estas herramientas buscando "http viewer"
en cualquier buscador automático. En español no existe tanta abundancia
de visores HTTP on line: podemos señalar, por ejemplo, el visor sencillo
que ofrece www.cibernetia.com.

Herramientas de Software libre
* Apache httpd server Apache ha sido el servidor web más difundido
desde 1996. La encuesta de Netcraft de abril de 2005, muestra que alrededor
del 70% de los servidores web utilizan Apache, y la parte de mercado crece de
año en año.

* Jigsaw - W3C’s Server

* Roxen

* Zope : Un poderoso servidor web implementado en python con soporte para conexiones
a bases de datos, extensibilidad sencilla y administración vía
web.

Primeros Servidores
* CERN httpd Server

* NCSA httpd server

Sockets
Son puntos de comunicación de datos. Se clasifican en físicos
(asociados a un recurso) o lógicos (manejados por el sistema de operación).
Tres elementos caracterizan a un socket: El nombre del servicio (telnet, ftp,
etc.), el protocolo (TCP, UDP, etc.) y el número de puerto. En linux,
el archivo /etc/protocols contiene la lista de protocolos disponibles y /etc/services
contiene la lista de servicios disponibles. Por ejemplo, en la configuración
inicial de la mayoría de los sistemas Linux se tiene que:
* el servicio telnet utiliza el protocolo TCP/IP y se comunica por el puerto
23

* el servicio ftp utiliza el protocolo TCP/IP y se comunica por los puertos
20 y 21

* el servicio WWW utiliza el protocolo HTTP y se comunica por el puerto 80.

* el servicio WebDAV para desarrollo en colaboración utiliza el protocolo
HTTP como transporte.

* CORBA, el marco para compartir objetos y servicios en la red puede utilizar
el protocolo HTTP como transporte.

Recursos
HTTP se utiliza para transmitir recursos, que incluyen además de archivos,
el resultado de la ejecución de un programa, una consulta a una base
de datos, la traducción automática de un documento, etc. Para
un servidor HTTP, los recursos son o bien archivos, o bien el resultado de la
ejecución de un programa.

URL
Los recursos se identifican con un URL o "Universal Resource Locator"
que es un identificador único en el mundo que se asocia con el recurso
dado.

Códigos de respuesta
Son códigos de tres dígitos:
* 1xx Mensajes de información
N°—> Tipo de error

100 Continua

101 Cambio de protocolo
* 2xx Operación exitosa
N°—> Tipo de error

200 OK

201 Creado

202 Aceptado

203 Información no oficial

204 Sin Contenido

205 Contenido para reset

206 Contenido parcial
* 3xx Redirección hacia otro URL
N°—> Tipo de error

300 Múlpiples posibilidades

301 Mudado permanentemente

302 Encontrado

303 Véa otros

304 No modificado

305 Utilice un proxy

307 REdirección temporal
* 4xx Error por parte del cliente
N°—> Tipo de error

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 mpas disponible

411 Requiere logitud

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
* 5xx Error por parte del servidor
N°—> Tipo de error

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


Escriba un Comentario

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: