

Hypertext Transfer Protocol
De Wikipedia, la enciclopedia libre
Nivel de aplicación | DNS, FTP, HTTP, IMAP, IRC, NFS, NNTP, NTP, POP3, SMB/CIFS, SMTP, SNMP, SSH, Telnet, SIP, ver más |
Nivel de presentación | ASN.1, MIME, SSL/TLS, XDR, ver más |
Nivel de sesión | NetBIOS, ONC RPC, DCE/RPC ver más |
Nivel de transporte | SCTP, SPX, TCP, UDP, ver más |
Nivel de red | AppleTalk, IP, IPX, NetBEUI, X.25, ver más |
Nivel de enlace | ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring, Wi-Fi, STP, ver más |
Nivel físico | Cable coaxial, Cable de fibra óptica, Cable de par trenzado, Microondas, Radio, RS-232, ver más |
* según el Modelo OSI |
El protocolo de transferencia de hipertexto (HTTP, HyperText Transfer Protocol) es el protocolo usado en cada transacción de la Web (WWW). HTTP fue desarrollado por el consorcio W3C y la IETF, colaboración que culminó en 1999 con la publicación de una serie de RFCs, siendo el más importante de ellos el RFC 2616, que especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan los elementos software de la arquiectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectua la petición (un navegador o un spider) se lo conoce como “user agent” (agente del usuario). A la información transmitida se la llama recurso y se la identifica mediante un URL. Los recursos pueden ser 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.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de “sesión”, y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.
Tabla de contenidos |
[editar] Transacciones HTTP
El protocolo HTTP está basado en el modelo cliente-servidor. Un cliente HTTP abre una conexión y envía su solicitud al servidor, el cual responderá con el recurso solicitado ?si está disponible y su acceso es permitido? y la conexión se cierra y sirve para conectarse a algunas páginas
El formato tanto del mensaje como de la respuesta es como sigue (separando las líneas con la secuencia retorno de carro–nueva línea):
Cabecera-1: valor-1 ...(Common Object Interface Generator) Cabecera-n: valor-n
La línea inicial es diferente en las solicitudes y en las respuestas. En las solicitudes está formada por tres campos que se separan con un espacio en blanco: “Método recurso versión-del-protocolo”. Por ejemplo: “GET /path/to/file/index.html HTTP/1.1”. La línea inicial de una respuesta tiene tres campos separados por un espacio: “versión-del-protocolo código-respuesta mensaje”. Por ejemplo: “HTTP/1.1 200 OK”.
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. http//www:[email protected]
[editar] Ejemplo de un diálogo HTTP
Para obtener un recurso con el URL http://www.tuhost.example/index.html
- Se abre un con el host www.tuhost.example, puerto 80 que es el puerto por defecto para HTTP.
- Se envía un mensaje en el estilo siguiente:
GET /index.html HTTP/1.1 Host: www.example.com User-Agent: HTTPTool/1.0 Connection: close [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.1 200 OK Date: Fri, 31 Dec 2003 23:59:59 GMT Content-Type: text/html Content-Length: 1221Página principal de tuHost
(Contenido) . . .
[editar] 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.
[editar] Primeros Servidores
[editar] Códigos de respuesta
Son códigos de tres dígitos:
- 1xx Mensajes
-
N° – 100 111 Conexión rechazada
- 2xx Operación exitosa
-
N° Descripción 200 OK 201-203 Información no oficial 204 Sin Contenido 205 Contenido para recargar 206 Contenido parcial
- 3xx Redirección hacia otro URL
-
N° Descripción 300 Múltiples posibilidades 301 Mudado permanentemente 303 Vea otros 304 No modificado 305 Utilice un proxy 307 Redirección temporal
- 4xx Error por parte del cliente
-
N° Descripción 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 Ya no disponible 411 Requiere longitud 412 Falló precondición 413 Entidad de solicitud demasiado larga 414 URL 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° Descripción 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
[[Imagen:Ejemplo.jpg —- Aquí inserta texto sin formato]]==Enlaces externos==
- RFC-2616
- HTTP – Hypertext Transfer Protocol. W3C
- HTTP Made Really Easy. byJames Marshall, 1997
- HttpTea – Freeware HTTP Logger
- Validación de HTTP Headers Verificación de URL Online