Está en la página 1de 4

HTTP

Hypertext Transfer Protocol o HTTP (en espaol protocolo de transferencia de


hipertexto) es el protocolo usado en cada transaccin de la World Wide Web.
HTTP fue desarrollado por el World Wide Web Consortium y la Internet
Engineering Task Force, colaboracin que culmin en 1999 con la publicacin de
una serie de RFC, el ms importante de ellos es el RFC 2616 que especifica la
versin 1.1. HTTP define la sintaxis y la semntica que utilizan los elementos de
software de la arquitectura web (clientes, servidores, proxies) para comunicarse.
Es un protocolo orientado a transacciones y sigue el esquema peticin-respuesta
entre un cliente y un servidor. Al cliente que efecta la peticin (un navegador web
o un spider) se lo conoce como "user agent" (agente del usuario). A la informacin
transmitida se la llama recurso y se la identifica mediante un localizador uniforme
de recursos (URL). El resultado de la ejecucin de un programa, una consulta a
una base de datos, la traduccin automtica de un documento, etc.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna informacin
sobre conexiones anteriores. El desarrollo de aplicaciones web necesita
frecuentemente mantener estado. Para esto se usan las cookies, que es
informacin que un servidor puede almacenar en el sistema cliente. Esto le
permite a las aplicaciones web instituir la nocin de "sesin", y tambin permite
rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo
indeterminado.
Transacciones HTTP
Una transaccin HTTP est formada por un encabezado seguido, opcionalmente,
por una lnea en blanco y algn dato. El encabezado especificar cosas como la
accin requerida del servidor, o el tipo de dato retornado, o el cdigo de estado.
El uso de campos de encabezados enviados en las transacciones HTTP le da
gran flexibilidad al protocolo. Estos campos permiten que se enve informacin
descriptiva en la transaccin, permitiendo as la autenticacin, cifrado e
identificacin de usuario.
Un encabezado es un bloque de datos que precede a la informacin propiamente
dicha, por lo que muchas veces se hace referencia a l como metadato. Si se
reciben lneas de encabezado del cliente, el servidor las coloca en las variables de
entorno de CGI con el prefijo HTTP_ seguido del nombre del encabezado.
Cualquier carcter guion ( - ) del nombre del encabezado se convierte a caracteres
"_".
Un cdigo de estado que indica si la peticin fue correcta o no. Los cdigos de
error tpicos indican que el archivo solicitado no se encontr, que la peticin no se
realiz de forma correcta o que se requiere autenticacin para acceder al archivo.

La informacin propiamente dicha. Como HTTP permite enviar documentos de


todo tipo y formato, es ideal para transmitir multimedia, como grficos, audio y
video. Esta libertad es una de las mayores ventajas de HTTP.
Informacin sobre el objeto que se retorna.
Ejemplo de un dilogo HTTP
Para obtener un recurso con el URL http://www.example.com/index.html
Se abre una conexin al host www.example.com, puerto 80 que es el puerto por
defecto para HTTP.
Se enva un mensaje en el estilo siguiente:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: nombre-cliente
[Lnea en blanco]
La respuesta del servidor est formada por encabezados seguidos del recurso
solicitado, en el caso de una pgina web:
HTTP/1.1 200 OK
Date: Fri, 31 Dec 2003 23:59:59 GMT
Content-Type: text/html
Content-Length: 1221
<html>
<body>
<h1>Pgina principal de tuHost</h1>
(Contenido)
.
.
.
</body>
</html>
Mtodos de peticin
Un pedido HTTP usando telnet. El pedido (request), cabeceras de respuesta
(response headers) y el cuerpo de la respuesta (response body) estn resaltados.
HTTP define 8 mtodos (algunas veces referido como "verbos") que indica la
accin que desea que se efecte sobre el recurso identificado. Lo que este
recurso representa, si los datos pre-existentes o datos que se generan de forma
dinmica, depende de la aplicacin del servidor. A menudo, el recurso corresponde
a un archivo o la salida de un ejecutable que residen en el servidor.
HEAD

Pide una respuesta idntica a la que correspondera a una peticin GET, pero sin
el cuerpo de la respuesta. Esto es til para la recuperacin de meta-informacin
escrita en los encabezados de respuesta, sin tener que transportar todo el
contenido.
GET
Pide una representacin del recurso especificado. Por seguridad no debera ser
usado por aplicaciones que causen efectos ya que transmite informacin a travs
de la URI agregando parmetros a la URL. La peticin puede ser simple, es decir
en una linea o compuesta de la manera que muestra el ejemplo.
Ejemplo:
GET /images/logo.png HTTP/1.1 obtiene un recurso llamado logo.png
Ejemplo con parmetros:
/index.php?page=main&lang=es
POST
Enva los datos para que sean procesados por el recurso identificado. Los datos
se incluirn en el cuerpo de la peticin. Esto puede resultar en la creacin de un
nuevo recurso o de las actualizaciones de los recursos existentes o ambas cosas.
PUT
Sube, carga o realiza un upload de un recurso especificado (archivo), es el camino
ms eficiente para subir archivos a un servidor, esto es porque en POST utiliza un
mensaje multiparte y el mensaje es decodificado por el servidor. En contraste, el
mtodo PUT te permite escribir un archivo en una conexin socket establecida con
el servidor.
La desventaja del mtodo PUT es que los servidores de hosting compartido no lo
tienen habilitado.
Ejemplo:
PUT /path/filename.html HTTP/1.1
DELETE
Borra el recurso especificado.
TRACE
Este mtodo solicita al servidor que enve de vuelta en un mensaje de respuesta,
en la seccin del cuerpo de entidad, toda la data que reciba del mensaje de
solicitud. Se utiliza con fines de comprobacin y diagnstico.
OPTIONS
Devuelve los mtodos HTTP que el servidor soporta para un URL especfico. Esto
puede ser utilizado para comprobar la funcionalidad de un servidor web mediante
peticin en lugar de un recurso especfico.
CONNECT
Se utiliza para saber si se tiene acceso a un host, no necesariamente la peticin
llega al servidor, este mtodo se utiliza principalmente para saber si un proxy nos
da acceso a un host bajo condiciones especiales, como por ejemplo "corrientes"
de datos bidireccionales encriptadas (como lo requiere SSL).

HTTPS
Hypertext Transfer Protocol Secure (en espaol: Protocolo seguro de transferencia
de hipertexto), ms conocido por sus siglas HTTPS, es un protocolo de aplicacin
basado en el protocolo HTTP, destinado a la transferencia segura de datos de
Hipertexto, es decir, es la versin segura de HTTP.
Es utilizado principalmente por entidades bancarias, tiendas en lnea, y cualquier
tipo de servicio que requiera el envo de datos personales o contraseas.
Caractersticas tcnicas
El sistema HTTPS utiliza un cifrado basado en SSL/TLS para crear un canal
cifrado (cuyo nivel de cifrado depende del servidor remoto y del navegador
utilizado por el cliente) ms apropiado para el trfico de informacin sensible que
el protocolo HTTP. De este modo se consigue que la informacin sensible (usuario
y claves de paso normalmente) no pueda ser usada por un atacante que haya
conseguido interceptar la transferencia de datos de la conexin, ya que lo nico
que obtendr ser un flujo de datos cifrados que le resultar imposible de
descifrar.
El puerto estndar para este protocolo es el 443.
Netscape Communications cre HTTPS en 1992 para su navegador Netscape
Navigator.1 Originalmente, HTTPS era usado solamente para cifrado SSL, pero
esto se volvi obsoleto ante TLS. HTTPS fue adoptado como un estndar web con
la publicacin de RFC 2818 en mayo del 2000.
Diferencias con HTTP
En el protocolo HTTP las URLs comienzan con "http://" y utilizan por omisin el
puerto 80, las URLs de HTTPS comienzan con "https://" y utilizan el puerto 443 por
omisin. HTTP es inseguro y est sujeto a ataques man-in-the-middle y
eavesdropping que pueden permitir al atacante obtener acceso a cuentas de un
sitio web e informacin confidencial. HTTPS est diseado para resistir esos
ataques y ser ms seguro.
Capas de red
HTTP opera en la capa ms alta del modelo OSI, la capa de aplicacin; pero el
protocolo de seguridad opera en una subcapa ms baja, cifrando un mensaje
HTTP previo a la transmisin y descifrando un mensaje una vez recibido.
Estrictamente hablando, HTTPS no es un protocolo separado, pero refiere el uso
del HTTP ordinario sobre una Capa de Conexin Segura cifrada Secure Sockets
Layer (SSL) o una conexin con Seguridad de la Capa de Transporte (TLS).

También podría gustarte