Si todo es un documento de texto ¿Cómo es posible tener sitios web tan increíbles como Facebook, Youtube, etc?
Los sitios web de hoy son muy diferentes a los de antes; no tienen los mismos elementos, pero si retrocedemos un poco en el pasado y exploramos el comienzo de Internet, todo tendrá sentido.
Internet fue creado para intercambiar información, sus fundadores estaban buscando compartir documentos de forma rápida y sin tener que manejar una infraestructura compleja y costosa. Simplemente definieron un marco de trabajo y desarrollaron las tecnologías para que cualquier persona que quisiera compartir un documento pudiera publicarlo e invitar a los demás a leerlo.
La comunidad científica lo utilizó para los famosos "Peer Reviews", usados para que tus colegas revisen y aprueben una publicación antes de ser aceptada y publicada por la comunidad.
Por esta razón buscaron hacer algo que se asemejara lo más posible a un documento de MS Word o cualquier procesador de texto.
☝️ Si quieres seguir leyendo sobre la historia de Internet te recomendamos este video super cool.
Entonces, la forma más sencilla de ver Internet es como una red de documentos compartidos. Documentos que alguna vez fueron publicaciones científicas rígidas y formales, y que hoy vemos como documentos interactivos, emocionantes y espectaculares.
Como era de esperarse, si vas a compartir documentos todo lo que necesitas es texto. Cuando haces páginas web todo corre bajo el protocolo HTTP (The Hypertext Transfer Protocol) que es un especialista en la transmisión de texto.
Lo que esto quiere decir es que: todo es texto. Pues sí, si quieres enviarle una foto a tu abuela por correo electrónico entonces ocurren más o menos las siguientes cosas:
Imagen 1: Los 4 pasos necesarios para enviar imágenes a través de Internet: primero se convierte en texto, luego viaja, luego llega a la computadora de la abuela, la abuela abre la imagen y la imagen se muestra... ¡finalmente, la abuela está feliz mirando a su nieto!
Todo está conectado. La mejor manera de entender esto es comparándolo con el servicio postal:
Video: Video de 2 minutos explicando cómo funciona Internet.
¿Recuerdas cómo dijimos que los servidores son los lotes de construcción? Bueno, para alojar un sitio web, los servidores deben cumplir todos los requisitos necesarios para que la página web no se bloquee (al igual que los lotes de construcción).
Los sitios web residen en los servidores. Cuando los usuarios desean visitar sitios web, deben ingresar la dirección URL en su navegador. Esto los llevará al vestíbulo o entrada de la página web (que se llama "index.html").
Si has estado leyendo y has entendido todo hasta ahora, debes estar pensando:
📺 Click aquí para acceder a un video que explica cómo funciona un ChromeBook de Google.
Como desarrollador, debes codificar todo lo que el navegador necesitará para visualizar el texto. Lo llamaremos "el lado del cliente" porque el navegador está instalado en la computadora del usuario. Del mismo modo, todo el código encontrado en el lado del cliente será procesado por esa computadora.
Entonces, ¿qué hace el servidor?
¡Bueno, hace mucho! El servidor es responsable de preparar el texto que será leído por el navegador. Los tres retos principales para el servidor son:
El Servidor | El Cliente |
---|---|
La misión del servidor es entregar todo el texto/información que el cliente necesita para renderizar correctamente el sitio web. Tiene una relación cercana con la base de datos (que administra y procesa los datos). Maneja un gran volumen de información y está preparado para responder a miles de solicitudes de clientes al mismo tiempo. Los lenguajes más utilizados son PHP, Python, Ruby y Java. Poco a poco, el servidor ha venido a delegar parte de su carga. Maneja menos cosas ahora que antes, pero las que aún maneja se repiten muchas veces. Incluso hay servicios como Parse.com o Firebase.com que han creado herramientas que permiten a los desarrolladores crear aplicaciones web sin siquiera usar su propio servidor. Todo el código que se ejecuta en el lado del servidor se llama "El Back-End". Los desarrolladores de Back-End deben reforzar su conocimiento en bases de datos, datos de licitación, minería de datos, seguridad, sockets web, servicios web, API's, etc. | El cliente incluye todo el código que se ejecuta en la computadora o dispositivo del cliente. Los lenguajes más frecuentes son: HTML5, CSS3, JavaScript. Originalmente, el código que residía en el cliente no hacía mucho porque los documentos eran muy simples. Pero las cosas han cambiado; La tecnología le ha dado más relevancia al cliente a un punto en el que hoy en día hay miles de aplicaciones que tienen más código en el lado del cliente que en el lado del servidor. La ejecución del código en el lado del cliente libera la carga del servidor. Después de todo, solo hay UN servidor por MILES de clientes. Todo el código en el lado del cliente se llama "El Front-End". Los desarrolladores de Front-End están dedicados principalmente a JavaScript, y tal vez diagramando sitios web con HTML5 o CSS3 (los diseñadores también pueden hacer esta última parte). Esto significa que deben integrar múltiples API, administrar casi todo el procesamiento de datos en el lado del cliente (para evitar tener demasiadas interacciones con el servidor), datos gráficos, modelado 3D, juegos, complementos de jQuery, AJAX, etc. |