Como Funciona el Protocolo HTTP – Manual

Como Funciona el Protocolo HTTP – Manual

En este Articulo analizaremos a fondo como funciona el protocolo Http, desde lo basico hasta lo avanzado para comprender en su totalidad este protocolo. El protocolo HTTP, por sus siglas en ingles HyperText Transfer Procolo, es un protocolo de internet utilizado por años para la transacciones de informacion y que sigue el esquema de peticion – respuesta entre un cliente y un servidor. Un protocolo no es mas que un conjunto de reglas establecidas que se siguen para trabajar en equipo y conseguir un fin determinado, en este caso, realizar transacciones de informacion entre dispositivos conectados. Con esta pequeña introduccion veamos pues como funciona el protocolo http, comencemos…

Requerimientos

¿Cómo funciona el protocolo HTTP?

Cada vez que encendemos la computadora, abrimos nuestro navegador web, escribimos alguna direccion web en la barra de direcciones y aparece magicamente la pagina en nuestra pantalla hacemos uso de el protocolo HTTP, pero y, como funciona?

Como Funciona el Protocolo HTTP 2
Como Funciona el Protocolo HTTP? Lo que en realidad ocurre es que nosotros realizamos una peticion a un servidor web en algun lugar y le decimos que nos envie una determinada pagina, esto es, un archivo de texto que contiene, digamoslo asi, informacion y un conjunto de instrucciones de como mostrarla, una vez en nuestra computadora nuestro navegador web la interpreta y la muestra, esto por supuesto, explicado de forma muy resumida.

Si vemos el codigo fuente de una pagina web (Ctrl + U en Chrome) vemos el texto del que hablamos

Como Funciona el Protocolo HTTP 1


Suscríbete!

Suscríbete a nuestra lista de correo y recíbe los últimos contenidos directamente en tu bandeja de correo electrónico, puedes elegir únicamente de que categoria del blog quieres recibir contenido.

Suscríbeme

  • Ahora veamos un poco de historia…

En 1990 un grupo de cientificos de el CERN(Organizacion Europa de Investigacion Nuclear) desarrollaron un sistema para compartir informacion entre cientificos al que llamaron WorldWideWeb, mas tarde llamado Nexus. De hecho una copia de la primer pagina que se sirvio esta disponible en este enlace, y aunque se ve muy basica, fue la base de todo lo que tenemos actualmente.

Como Funciona el Protocolo HTTP 3

  • Antes de seguir viendo como funciona el protocolo http veamos algo de HTML

HTML, que en sus siglas en ingles es HyperText Markup Language, ya que el protocolo HTTP transfiere este tipo de archivos con este formato. HTML es un lenguaje de representacion de Texto que nos sirve para construir las paginas web y que el navegador web interpretara posteriormente a su llegada a nuestro ordenador. El formato de texto que vimos anteriormente en la imagen que muestra una pagina web y su codigo fuente esta en formato HTML, entonces asi vemos que el protocolo HTTP es un conjunto de reglas que se utilizan para intercambiar archivos HTML entre distintos dispositivos de la red.

Como Funciona el Protocolo HTTP 4

  • Hablaremos ahora un poco de el formato de una URL

Al ingresar a un navegador web y escribir arriba en la barra de direcciones la direccion de la web que quieres visitar, estas utilizando direcciones URL, Uniform Resource Location, y su formato es el siguiente:

http://host[:puerto][/ruta][?consulta]

donde:
Host -> unico campo obligatorio, direccion de la maquina a conectar
puerto -> normalmente no es necesario especificar, por defecto para el protocolo HTTP es el 80
ruta -> ruta al archivo dentro de esa maquina al que queremos acceder
consulta -> opcional, solo para paginas con contenido dinamico

  • Empezemos a conocer ahora si el protocolo HTTP

El protocolo http consta de 8 comandos, de los cuales son obligatorios que el servidor reconozca solo 2, aunque la complejidad de este protocolo radica en los headers fields (campos de cabecera).

  • Comandos HTTP

Comando GET
Es el comando mas utilizado y es el encargado de decirle al servidor que queremos obtener un determinado recurso.
Veamos un ejemplo de como se utiliza este comando, realizaremos una conexion paso a paso para ver como funciona el proceso, para lo cual necesitaremos la herramienta netcat, una vez instalado netcat abrimos una ventana de Sistema (Windows + R -> CMD) y conectamos a algun servidor web:

nc -vv jonathanmelgoza.com 80

donde:
-vv es la opcion para ver toda la informacion
-jonathanmelgoza.com es el servidor al que queremos conectarnos
-80 es el puerto al que nos conectaremos (por defecto el protocolo http trabaja en este puerto)

Como Funciona el Protocolo HTTP 5
Una vez conectados el servidor se queda a la espera de recibir ordenes, escribimos lo que queremos hacer, obtener una pagina web, vamos a pedirla

GET /index.html HTTP/1.1

Donde:
Get es el comando para obtener algo de el servidor
/index.html es lo que queremos obtener (/ directorio raiz)
HTTP/1.1 es la version con la que trabajaremos el protocolo

Ahora escribimos el host para completar la url

Host: jonathanmelgoza.com

Como Funciona el Protocolo HTTP 6
y presionamos 2 veces Enter y obtendremos la pagina web solicitada

Como Funciona el Protocolo HTTP 7
Comando OPTIONS
Este comando permite conocer las caracteristicas de conexion entre nuestro cliente y el servidor, podemos utilizarlo para realizar un simple ping a un servidor para ver si responde, una vez conectado

OPTIONS * HTTP/1.1
Host: jonathanmelgoza.com

y obtendremos un 200 OK si esta activo el servidor

Como Funciona el Protocolo HTTP 8
Comando HEAD
Similar al comando GET pero el servidor no te servira el contenido HTML sino solo la cabecera del archivo, que nos servira para ver cierta informacion como el tipo de contenido o si debe ser renovada la cache debido a algun cambio.

Como Funciona el Protocolo HTTP 9
Como puedes ver nos da alguna informacion sobre el recurso como ultima fecha de modificacion, la longitud de el cuerpo de el archivo en octetos, que tipo de archivo manejamos,etc

Comando POST
Este comando solicita al servidor el envio de datos, no la recepcion de datos, es decir, podemos enviar informacion al servidor siempre y cuando este de acuerdo

Comando PUT
Es el comando inverso a GET, nos permite escribir datos en el servidor, la diferencia entre el comando put y post es que el comando post se trabaja sobre un recurso que manejara la informacion a su manera y el comando put trabajara sobre un recurso final, es decir, se modificara ese recurso en el que trabajemos, el comando post se trabaja sobre scripts ya sean php, cgi o asp.

Comando DELETE
Sirve para eliminar un recurso especificado en la URL, aunque pocas veces sera permitido por un servidor web

Comando TRACE
Es como un ping donde todos los dispositivos en la red por el que pase responderan a este comando, asi veremos si nuestra peticion al servidor web pasa por dispositivos intermedios o proxys.

Comando CONNECT
Este Comando se utiliza en los proxys o intermediarios que pueden funcionar como tuneles ssl, este tema es un poco mas avanzado asi que lo dejaremos para otro articulo.

Hemos visto los comandos de el protocolo HTTP desde una vista rapida pero no es lo complicado que esperariamos, veamos entonces ahora los Campos de Cabecera o Headers fields.

  • Campos de Cabecera

Cada peticion a un servidor web lleva campos adicionales para personalizar la peticion, estos se escriben linea por linea despues de conectar (recuerdas que para enviar una peticion presionamos 2 Enters?), estos campos permiten indicar al servidor los tipos de archivos que aceptamos, el lenguaje, sistemas de codificacion, etc.

Cabeceras mas Importantes

Cabecera Accept
Permite indicar al servidor el tipo de contenido que aceptamos, por ejemplo

Accept: text/html, image/png
Indicamos que aceptamos html e imagenes png

Accept: */*
Indicamos que aceptamos todo tipo de contenido

Cabecera Accept-Charset
Especifica al servidor las tablas de caracteres que aceptamos, por ejemplo

Accept-Charset: iso-8859-1, unicode-1-1
Indicamos que aceptamos caracteres segun el estandar iso-8859-1 pero tambien unicode 1-1

Cabecera Accept-Language
Especificamos el idioma en el que queremos que nos envie la informacion, por supuesto solo si el servidor tiene esta opcion y cuenta con traducciones.

Cabecera Connection
Permite indicar al servidor si queremos que una vez atendidos cerrar la conexion, por ejemplo

Connection:close
Cierra el servidor la conexion una vez terminada la transaccion

Connection: Keep-Alive

Cabecera User-Agent
Permite indicar al servidor informacion sobre nuestro navegador(software, version), sistema operativo, etc.

Cabecera Referer
Este campo envia al servidor nuestra ultima url visitada, para saber de donde vienes.

Cabecera Allow
Este campo nos aparece a veces y nos indica que comandos son permitidos por el servidor, por ejemplo

Allow: GET, HEAD, POST

Cabecera Content-Encoding
Nos indica que tipo de codificacion a sido utilizado para un envio o en respuesta a una peticion GET, por ejemplo

Content-Encoding: gzip

Cabecera Date
Indica la fecha y hora que se genero la accion determinada

Cabecera Retry-After
Este campo nos indica en cuanto tiempo podemos volver a intentar una peticion, se utiliza en respuestas de servicio no disponible.

Cabecera Server
Este campo es muy interesante ya que nos permite saber informacion detallada de el servidor, como el software que utiliza, la version, sistema operativo, modulos instalados, etc.

Para un mejor estudio de los campos de cabecera leer lista de cabeceras HTTP (Ingles)

Visto – Como Funciona el Protocolo HTTP – Manual

7 Comentarios ¿Qué opinas tú del tema?

  1. Alizzon
  2. Alizzon
  3. Cuauhtemoc
  4. invitado

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *