Comunicación cliente-servidor en Node.js: Manejo de peticiones HTTP

Comunicación cliente-servidor en Node.js: Manejo de peticiones HTTP

¿Cómo funciona la comunicación cliente-servidor?

En una comunicación a través de Internet conviven diferentes elementos interconectados, la forma en la que estos se comunican unos con otros lleva de manera implícita el conocimiento de algunos conceptos.

Cuando una computadora se comunica con otra computadora a través del Internet, los datos se envían a través de un canal de comunicaciones que se abre y se cierra constantemente, este canal es conocido con el nombre de socket. Por este socket viaja la información en forma de bloques de datos que se envían progresivamente, estos bloques de datos se llaman paquetes. Para que estas dos computadoras puedan comunicarse entre si tienen que usar un mismo lenguaje, o en este caso las mismas normas de como se estructura la información que se esta enviando de una computadora a otra, a este conjunto de normas se le llama protocolo. El encargado de administrar como se envían y como se reciben estos paquetes es el protocolo tcp y para ello utiliza conecta dos computadoras que tienen identificadores únicos, esta dirección virtual (por llamarla así) que se le asigna a cada computadora conectada a Internet se llama IP y consiste en 4 bloques de hasta 3 números cada uno, divididos por puntos… por ejemplo 192.123.12.3. Finalmente, cuando esta comunicación se establece, la información que llega tiene que ser procesada por un programa, cada programa tiene asignado un número llamado puerto, de esta forma tcp sabe a donde tiene que enviar la información.

Cuando los paquetes se crean, estos tienen una estructura, para empezar a través de Internet pueden ser enviados muchos tipos de formatos de archivos, para evitar que se tenga que descargar todo el archivo antes de saber que tipo de archivo se esta enviando, se utilizan ciertas cabeceras o headers, las cabeceras son los primeros bloques de datos en llegar a su destino y contienen solo texto, estas obedecen a cierta normativa que se transmite mediante la normativa HTTP. Ojo, HTTP define las reglas para el formato de los datos, mientras que TCP la manera en que los datos se transfieren.

Debido a que existen muchos tipos de formatos de archivos, las cabeceras entre su información poseen la definición del formato del contenido que se va a descargar, esta definición es conocida como MIME por sus siglas en inglés Multipurpose Internet Mail Extensions, originalmente estaba destinada a definir las normas para adjuntar archivos en correos electrónicos, pero HTTP la implemento como parte de si para su uso.