Universidad
Yacambú
Vicerrectorado de Estudios a Distancia
Especialización
en Gerencia, Mención: Redes y Telecomunicaciones
Cátedra Redes y
Telecomunicaciones
Protocolo
HTTP
Realizado por: Brigida
Contreras
Italia Isoldi
Nelves Rodríguez
Introducción
La familia de protocolos de Internet es un
conjunto de protocolos de
red en la que se basa Internet y que permiten la transmisión de datos
entre redes de computadoras.
En ocasiones se la denomina conjunto de protocolos TCP/IP, en referencia a los
dos protocolos más importantes que la componen: Protocolo de
Control de Transmisión (TCP) y Protocolo de
Internet (IP), que fueron los dos primeros en definirse, y que son
los más utilizados de la familia. Existen tantos protocolos en este conjunto que
llegan a ser más de 100 diferentes, entre ellos se encuentra el popular HTTP
(HyperText Transfer Protocol), que es el que se utiliza para acceder a las
páginas web, además de otros como el ARP
(Address Resolution Protocol) para la resolución de direcciones, el FTP
(File Transfer Protocol) para transferencia de archivos, y el SMTP
(Simple Mail Transfer Protocol) y el POP
(Post Office Protocol) para correo
electrónico, TELNET
para acceder a equipos remotos, entre otros.
En el desarrollo de este trabajo vamos a
tratar el protocolo HTTP, pero primero daremos algunas definiciones esenciales
que son importantes para la familia de protocolos.
URL
son las siglas de Localizador de Recurso
Uniforme (en inglés Uniform
Resource Locator), la dirección global de documentos y de
otros recursos en
URL (localizador de recursos uniforme), es
un tipo de URI que se utiliza para describir la ubicación de un documento
específico. Una URL no define por si sola el tipo de contenido al que refiere
(textos, imágenes, videos, etc.), simplemente dice dónde y cómo encontrarlo. Una
URL común está compuesta por cuatro partes:
De esta forma, podemos analizar cualquier
URL dada:
|
http |
:// |
www.htmlquick.com |
/ |
reference |
/ |
uris.html |
|
Protocolo |
|
Nombre de
dominio |
|
Directorios |
|
Archivo |
Algunas URLs pueden no contener
directorios, y algunas partes de las mismas pueden ser omitidas dependiendo de
la situación. Por ejemplo, cuando un archivo no es definido en una petición HTTP
(protocolo de transferencia de hipertexto), los servidores web automáticamente
envían archivos predeterminados (por ejemplo, index.htm). Así también, al tipear
una URL en algunos navegadores, si el protocolo está ausente (por ejemplo,
www.nombreservidor.com/index.php), el espacio vacío es automáticamente
completado con el prefijo del protocolo HTTP
(http://).
Ejemplos de URLs:
Protocolo de red o también Protocolo de
Comunicación es el conjunto de reglas que especifican el intercambio de datos u
órdenes durante la comunicación entre las entidades que forman parte de una red.
Al hablar de protocolos no se puede
generalizar, debido a la gran amplitud de campos que cubren, tanto en propósito,
como en especificidad. No obstante, la mayoría de los protocolos especifican una
o más de las siguientes propiedades:
Los protocolos de cada capa tienen una
interfaz bien definida. Una capa generalmente se comunica con la capa inmediata
inferior, la inmediata superior, y la capa del mismo nivel en otros computadores
de la red. Esta división de los protocolos ofrece abstracción en la
comunicación.
Una aplicación (capa nivel 7) por ejemplo,
solo necesita conocer como comunicarse con la capa 6 que le sigue, y con otra
aplicación en otro computador (capa 7). No necesita conocer nada entre las capas
de la 1 y la 5. Así, un navegador
web (HTTP,
capa 7) puede utilizar una conexión Ethernet
o PPP
(capa 2) para acceder a la Internet,
sin que sea necesario cualquier tratamiento para los protocolos de este nivel
más bajo. De la misma forma, un router
sólo necesita de las informaciones del nivel de red para enrutar paquetes, sin
que importe si los datos en tránsito pertenecen a una imagen para un navegador
web, un archivo
transferido vía FTP
o un mensaje de correo
electrónico.
Según el Modelo OSI:
El protocolo de transferencia de hipertexto (HTTP, HyperText Transfer Protocol)
es el protocolo usado en cada transacción de
El protocolo HTTP se basa en un paradigma
de peticiones y respuestas. Un cliente envía una petición en forma de método,
una URI, y una versión de protocolo seguida de los modificadores de la petición
de forma parecida a un mensaje MIME, información sobre el cliente y al final un
posible contenido. El servidor contesta con una línea de estado que incluye la
versión del protocolo y un código que indica éxito o error, seguido de la
información del servidor en forma de mensaje MIME y un posible contenido.
Generalmente es el cliente el que inicia la comunicación HTTP y consiste en la
petición de un recurso del servidor. Puede hacerse de forma directa al servidor
o a través de intermediarios. Es un protocolo, que por sus siglas en ingles
significa HyperText Transfer Protocol o Protocolo para
El HTML se emplea para escribir documentos
fáciles de compartir entre múltiples tipos de computadoras, es decir, es una
colección de códigos que se intercalan en el texto de un documento a ser
publicado en la red. Para leer estos documentos se usan programas que
interpretan dichos códigos, identificándolos porque son colocados entre los
símbolos < >. Luego de finalizada la transacción, HTTP no guarda ninguna
información sobre la misma, por lo tanto es considerado un protocolo "sin
estado". Para guardar la información entre distintas peticiones, los webmasters
suelen utilizar cookies o pasos de parámetro.
Toda la comunicación entre los clientes y
servidores se realiza a partir de caracteres de 8 bits. De esta forma, se puede
transmitir cualquier tipo de documento: texto, binario, etc., respetando su
formato original. Permite la transferencia de objetos multimedia. El contenido
de cada objeto intercambiado está identificado por su clasificación MIME.
Existen tres verbos básicos (hay más, pero por lo general no se utilizan) que un
cliente puede utilizar para dialogar con el servidor: GET, para recoger un
objeto, POST, para enviar información al servidor y HEAD, para solicitar las
características de un objeto (por ejemplo, la fecha de modificación de un
documento HTML). Cada operación HTTP implica una conexión con el servidor, que
es liberada al término de la misma. Es decir, en una operación se puede recoger
un único objeto. No mantiene estado. Cada petición de un cliente a un servidor
no es influida por las transacciones anteriores. El servidor trata cada petición
como una operación totalmente independiente del resto. Cada objeto al que se
aplican los verbos del protocolo está identificado a través de la información de
situación del final de
En este protocolo existen una serie de
conceptos tales como:
Cada vez que un cliente realiza una
petición a un servidor, se ejecutan los siguientes
pasos:
Haciendo click aquí podrá ver
una
Animación
de una petición http para entender mejor su
funcionamiento.
Este proceso se repite en cada acceso al
servidor HTTP. Por ejemplo, si se recoge un documento HTML en cuyo interior
están insertadas cuatro imágenes, el proceso anterior se repite cinco veces, una
para el documento HTML y cuatro para las imágenes.
Se dice que es un protocolo sin estado, lo que
significa que, en principio, un servidor de HTTP carece de medios para
relacionar información concerniente a una petición con otra petición anterior o
posterior. Los datos de la respuesta se basan exclusivamente en la información
que el cliente envía en la petición. El protocolo HTTP no conoce a la persona a
quien está enviando una página ni cuántas páginas le haya podido enviar, incluso
aunque nos hayamos conectado hace escasamente algunos segundos, ya que cada
petición de página se procesa independientemente. Este es un rasgo diferenciador
del HTTP con respecto a otros protocolos igualmente conocidos, que son con
estado, es decir, que pueden utilizar la información de una petición para
modificar peticiones futuras. En la práctica, estos protocolos operan sobre el
concepto de sesión, durante la cual se envía y recibe un lote de peticiones y
respuestas, mientras que para HTTP la sesión se reduce a una sola página.
Algunos con los que posiblemente estés familiarizado son el FTP (Protocolo de
Transferencia de Ficheros), que posee muchos estados, como el directorio actual;
el SMTP (Protocolo de Transferencia de Mensajes Sencillo) y el POP (Protocolo de
Oficina Postal), que incluyen entre sus estados la identidad del usuario; NNTP
(Protocolo de Transferencia de Noticias en Red), que permite por ejemplo cambiar
el grupo de usenet para dirigir peticiones futuras de artículos,
etc.
La ventaja de los protocolos que no guardan
el estado de la comunicación es que se requiere menor número de recursos por
parte del servidor, mientras que se exigen en cambio en el lado del cliente. Sin
embargo, su desventaja es que el cliente necesita comunicar al servidor
información suficiente en cada petición para poder recibir la respuesta correcta
en cada caso. En este contexto, las cookies constituyen una herramienta para que
el servidor pueda solicitar al cliente que almacene cualquier información
arbitraria para su uso en conexiones futuras, es decir, el servidor le pide al
cliente que sea él quien almacene información de estado, de manera que en la
próxima sesión no sea considerado como un extraño.
Un documento HTML comienza con la etiqueta
<html>, y termina con </html>. Dentro del documento (entre las
etiquetas de principio y fin de html), hay dos zonas bien diferenciadas: el
encabezamiento, delimitado por <head> y </head>, que sirve para
definir diversos valores válidos en todo el documento; y el cuerpo, delimitado
por <body> y </body>, donde reside la información del documento.
La única utilidad del encabezamiento en la
que nos detendremos es la directiva <title>, que permite especificar el
título de un documento HTML. Este título no forma parte del documento en sí: no
aparece, por ejemplo, al principio del documento una vez que este se presenta
con un programa adecuado, sino que suele servir como título de la ventana del
programa que nos la muestra. Por ejemplo, en el encabezamiento de este manual se
ha especificado:
<title>Manual práctico de
HTML</title>
en minúsculas. Obsérvense que el título que
encabeza este texto se ha escrito con mayúsculas, para distinguirlo del título
global del documento.
El cuerpo de un documento HTML contiene el
texto que, con la presentación y los efectos que se decidan, se presentará ante
el hiperlector. Dentro del cuerpo son aplicables todos los efectos que se van a
mencionar en el resto de esta guía. Dichos efectos se especifican exclusivamente
a través de directivas. Esto quiere decir que los espacios, tabulaciones y
retornos de carro que se introduzcan en el fichero fuente no tienen ningún
efecto a la hora de la presentación final del documento. Por ejemplo,
escribiendo:
Estas
palabras
forman
una
frase.
producimos exactamente lo mismo que con:
Estas palabras forman una
frase.
A
la hora de la verdad lo que se ve es:
Estas palabras forman una frase.
En resumen, la estructura básica de un
documento HTML queda de la forma siguiente:
<html>
<head>
<title>Título</title>
</head>
<body>
Texto del documento, menciones a gráficos,
enlaces, etc.
</body>
</html>
XML es un Lenguaje de Etiquetado Extensible
muy simple, pero estricto que juega un papel fundamental en el intercambio de
una gran variedad de datos. Es un lenguaje muy similar a HTML pero su función
principal es describir datos y no mostrarlos como es el caso de HTML. XML es un
formato que permite la lectura de datos a través de diferentes
aplicaciones.
Las tecnologías XML son un conjunto de
módulos que ofrecen servicios útiles a las demandas más frecuentes por parte de
los usuarios. XML sirve para estructurar, almacenar e intercambiar información.
Por ejemplo en la siguiente tabla se
muestra la información incluida por un código típico HTML y su versión
equivalente en XML. Se puede apreciar en este ejemplo, que es mucho más fácil de
entender la representación en XML.
|
HTML |
XML |
|
<TABLE>
<TR>
<TD>Título</TD>
<TD>Autor</TD>
<TD>Precio</TD>
</TR>
<TR>
<TD>AutoSketch</TD>
<TD>Ramón Montero</TD>
<TD>33</TD>
</TR>
<TR>
<TD>Windows 98</TD>
<TD>Jaime
Perez</TD>
<TD>3.250</TD>
</TR>
<TR>
<TD>Web
Graphics</TD>
<TD>Ron
Wodaski</TD>
<TD>8.975</TD>
</TR> </TABLE> |
<LIBROS>
<LIBRO>
<TITULO>AutoSketch</TITULO>
<AUTOR>Ramón
Montero</AUTOR>
<PRECIO>33</PRECIO>
</LIBRO>
<LIBRO>
<TITULO>Windows
98</TITULO>
<AUTOR>Jaime
Perez</AUTOR>
<PRECIO>3.250</PRECIO>
</LIBRO>
<LIBRO>
<TITULO>Web
Graphics</TITULO>
<AUTOR>Ron
Wodaski</AUTOR>
<PRECIO>8.975</PRECIO>
</LIBRO> </LIBROS> |
Dentro de XML se pueden definir un conjunto
ilimitado de etiquetas. Mientras que las etiquetas de HTML pueden utilizarse
para desplegar una palabra en negrita o itálicas, el XML proporciona un marco de
trabajo para etiquetado de datos estructurados. Un elemento de XML puede
declarar que sus datos asociados sean el precio de venta al público, un impuesto
de venta, el título de un libro o cualquier otro elemento de datos deseado. Al
irse adoptando las etiquetas XML a lo largo de una intranet de alguna
organización y a lo ancho de
El XML proporciona una representación
estructural de los datos que ha probado ser ampliamente implementable y fácil de
distribuir. Las implementaciones industriales en la comunidad del SGML y en
otros lugares han demostrado que la calidad intrínseca y la fortaleza industrial
del formato de datos con estructura de árbol del XML. El XML es un subconjunto
del SGML que está optimizado para su transmisión por Web; al estar definido por
el Consorcio de
El lenguaje XML proporciona un estándar de
datos que puede codificar el contenido, la semántica y el esquema de una amplia
variedad de casos que van desde simples a complejos, por ejemplo XML puede ser
utilizado para marcar lo siguiente:
Una vez que los datos estén en el
escritorio del cliente, pueden ser manipulados, editados, y presentados de una
gran variedad de maneras, sin viajes de regreso al servidor. Los servidores se
pueden convertir ahora en más escalables, debido a las menores cargas de cálculo
y ancho de banda. Además, dado que los datos son intercambiados en el formato
XML, pueden ser fácilmente mezclados desde diferentes fuentes.
El poder y la belleza del XML es que
mantiene la separación entre la interfase de usuario y los datos estructurados.
El HTML especifica como visualizar datos en un navegador, en cambio XML define
el contenido. XML solo utiliza etiquetas para describir los datos, tales como el
nombre de la ciudad, temperatura y presión barométrica. Para presentar los datos
en un navegador XML, este utiliza hojas de estilo tales como el Lenguaje de
Estilo Extensible (XSL) y las Hojas de Estilo en Cascada (CSS). El XML separa
los datos de la presentación y el proceso, permitiendo desplegar y procesar los
datos tal como usted desee, al aplicar diferentes hojas de estilo y
aplicaciones.
Esta separación de datos de la presentación
permite una integración de datos perfecta de fuentes diversas. La información de
clientes, ordenes de compra, resultados de investigaciones, pagos de facturas,
registros médicos, datos de catálogo y cualquier otra información se puede
convertir a XML, permitiendo a los datos ser intercambiados en línea tan
fácilmente como las páginas de HTML despliegan datos hoy. Los datos codificados
en XML pueden ser transmitidos sobre
Los datos codificados en XML son
autodescriptivos, pues las etiquetas descriptivas están entremezcladas con los
datos. El formato abierto y flexible utilizado por XML permite su uso en
cualquier lugar donde sea necesario intercambiar y transferir información. Dado
que el XML es independiente del HTML, se puede insertar código XML en documentos
HTML. El W3C ha definido un formato mediante el cual se pueden encapsular en
páginas HTML los datos basados en XML. Al incrustar datos XML en una página
HTML, se pueden generar varias vistas a partir de los datos entregados,
utilizando los datos semánticos que contiene el XML.
La meta fundamental del XML es hacer la
cooperación y la interoperabilidad más fáciles entre módulos que pertenecen a
diferentes sistemas, e incluso a diferentes organizaciones. Entonces, ¿por qué
el XML se ha convertido en tecnología del alto nivel tan rápidamente? La
respuesta es simple: XML es texto simple, pero es también elegante. Un lenguaje
de marcas hace fácil identificar (y extraer en un tiempo posterior) segmentos
específicos de información con significados especiales. Usar texto simple y
mantener el contenido universalmente interpretable son dos condiciones para
implementar una tecnología exitosamente entre sistemas heterogéneos. Una cadena
del texto se puede transferir y se puede manejar fácilmente en cualquier
plataforma destino. Sin embargo, si usted solo planea definir un protocolo
basado en texto para hacer que sus módulos se comuniquen, usted no necesita
necesariamente XML. El ASCII, de hecho, ha existido durante mucho tiempo. La
diferencia recae en las etiquetas XML que se utilizan para delimitar segmentos
de información.
La principal fortaleza del XML es también,
actualmente, su debilidad principal. El XML es demasiado genérico para ser
utilizado sin definir externamente la sintaxis exacta de un documento y cómo
puede localizarse y extraerse cada fragmento de datos intercambiados. Tal
estandarización es más simple alcanzar dentro de una sola aplicación
corporativa, incluso si atraviesa varias plataformas heterogéneas de hardware y
de software. Conseguir el mismo resultado en un contexto más amplio requiere un
enorme esfuerzo para llegar a algunas definiciones estándares. Este proceso
puede tomar años en ser completado [MSDN Latinoamérica].
Desgraciadamente, cuando se trata de
integrar sistemas de diferentes organizaciones, especialmente de una manera
abierta, el XML muestra algunas limitaciones. El XML trata de la descripción de
los datos, pero solamente es útil cuando la gente está de acuerdo en la manera
que los datos deben ser descritos. Una factura, por ejemplo, es lógicamente el
mismo tipo de documento para cualquier proceso que lo manipule. Pero diferentes
procesos pueden convertirla en formatos binarios diferentes. A pesar del formato
de almacenamiento físico, el documento necesita ser transmitido y ser recibido
en un formato comúnmente reconocido disponible en todas las plataformas. Por
supuesto, el XML se puede utilizar como este formato.
Imagine el enorme costo que supondría para
los consumidores y las empresas si cada empresa definiera su propia forma de
publicar la información. Incluso con
Por este motivo, en la actualidad se están
definiendo esquemas por grupos sectoriales con similares intereses, de forma que
existirán esquemas estándares avalados por asociaciones de empresas y organismos
que garanticen que cualquier usuario que las adopte como suyas, trabaje con las
mismas etiquetas. Como ejemplos de estos esquemas estándares tenemos: CDF -
Channel Definition Format (define canales para enviar información periódica a
los clientes), CML - Chemical Markup Language (define información del sector
químico), MathML - Mathematical Markup Language (define datos matemáticos), SMIL
- Synchronized Multimedia Integration Lannguage (define presentaciones de
recursos multimedia).
Algunas de las aplicaciones XML son las siguientes:
El protocolo HTTPS es una versión segura
del protocolo
HTTP que implementa un canal de comunicación seguro y basado en SSL
(Secure Socket Layers) entre el navegador del cliente y el servidor
HTTP.
TCP/IP es un canal de comunicación no
seguro, donde para ir de un cliente a un servidor, la información realiza un
seguido de saltos entre
diferentes routers que se encargan de hacer llegar la información a
su destino. En cada uno de estos saltos, la información es transmitida en la red
local del router, siendo recibida también (dependiendo del dispositivo que crea
dicha red) por todos los dispositivos de la misma red, pudiendo ser capturada
para fines malintencionados. No podemos evitar esto, pero podemos encriptar esta
información para que una vez capturada no pueda conocerse su contenido y así
poder enviar con tranquilidad números de cuenta, datos
personales...
A
diferencia de HTTP, HTTPS trabaja por defecto por el puerto 443 TCP, y antes de
enviar los datos realiza algunas acciones previas. Para hacer esta negociación,
el cliente, envía al servidor las opciones de cifrado, compresión y versión de
SSL junto con algunos bytes aleatorios llamados Challenge de Cliente. El
servidor, escoge las opciones de cifrado, compresión y versión de SSL entre las
que ha ofertado el cliente y le envía su decisión y su certificado. Ambos
negocian la clave secreta llamada master secret y usando esta clave,
Llamamos servidor HTTP tanto al programa
como el ordenador que recibe peticiones HTTP desde un ordenador cliente con un
visor HTTP (navegador). El servidor HTTP, una vez ha recibido la petición
prepara la página HTML (también imágenes, archivos...) leyéndola de un archivo
(*.html, *.htm, *.xml...), interpretando un código (*.asp, *.php, *.pl...),
conectando con un servidor de aplicaciones (*.jar)... dependiendo de como está
configurado el programa servidor HTTP y envía este resultado al navegador del
cliente.
Existen muchos parámetros para poder
clasificar un servidor http, algunos de ellos son:
Conclusión
Internet puede ser concebida como un gran
grupo de recursos o contenidos ubicados en diferentes computadoras alrededor del
mundo. Estos contenidos pueden ser encontrados y enlazarse unos a otros mediante
URIs. Como su nombre lo describe, identifica
recursos asignando una dirección en una red dada.
Todas las páginas Web que se encuentran en
Internet se designan mediante una
dirección URL (Universal Resource Locutor) o (Localizador Universal de
Recursos). Cada vez que se requiere
cargar de
El protocolo HTTP generalmente utiliza el
puerto 80.El HTTP está basado en el modelo cliente-servidor, en donde un cliente
HTTP (un navegador por ejemplo) abre una conexión y realizar una solicitud al
servidor. Este responde a la petición con un recurso (texto, gráficos, etc.) o
un mensaje de error, y finalmente se cierra la conexión. Uno de los más famosos
mensajes de error HTTP es el 404 Not found 04 es decir No encontrado. Tipo de
error indicado con el número 404 y significa que el servidor web no han podido
encontrar una página web.
Infografía