Un servidor web (server) es un ordenador de gran potencia que se encarga de “prestar el servicio” de transmitir la información pedida por sus clientes (otros ordenadores, dispositivos móviles, impresoras, personas, etc.)
Los servidores web (web server) son un componente de los servidores que tienen como principal función almacenar, en web hosting, todos los archivos propios de una página web (imágenes, textos, videos, etc.) y transmitirlos a los usuarios a través de los navegadores mediante el protocolo HTTP (Hipertext Transfer Protocol).
¿Cómo funciona un servidor web?
La comunicación entre un servidor y sus clientes se basa en HTTP, es decir, en el protocolo de transferencia de hipertexto o en su variante codificada HTTPS. Para saber cómo funciona, primero es necesario conocer que el web server está permanentemente en espera de una solicitud de información. Además, ten en cuenta que toda computadora, smartphone o tablet tiene una dirección IP única e irrepetible que lo identifica de otro dispositivo en la red, así es como el servidor web envía la información exacta que el internauta está esperando. Ahora bien, para que el web server pueda cumplir con su función es necesario que reciba la petición por parte de un navegador, en otras palabras, se envía un pedido desde una dirección IP hacia la dirección IP del servidor que aloja los archivos del sitio en cuestión. A continuación, el servidor web busca en sus archivos la información que se le está solicitando, procede a interpretar las líneas de código y a enviar el resultado al navegador cuya dirección IP fue la solicitante. Este resultado se le muestra a los internautas y es lo que siempre sucede cuando se navega en sitios de Internet. Cuando este proceso se completa podemos decir que el web server ha cumplido con su función.
¿Que es un cliente web?
No es más que un CLIENTE FTP al cual podemos acceder a través de nuestro NAVEGADOR WEB sin necesidad de tener otra aplicación para ello. Al disponer de un cliente FTP basado en web se puede acceder al servidor FTP remoto como si se estuviera realizando cualquier otro tipo de navegación web.
Las aplicaciones asincronicas permiten la notificación de un cliente cuando un evento ocurre en la parte del servidor. De esta forma, las aplicaciones asincronicas pueden actualizar su información de forma mucho más eficiente y rápida que las sincronicas. Las aplicaciones sincrónicas Se refiere al acceso inmediato, en tiempo real de información u otros datos, por ejemplo la mensajería instantánea o videollamadas.
Algunas de estas tecnologías son: pooling, webpooling, websockets y eventos, algunas veces conocidas como SaaS
Aplicaciones como Docker, Symfony, Angular, Ionic y MongoDB como base de datos
WebSocket es una tecnología que proporciona un canal de comunicación bidireccional y full-duplex sobre un único socket TCP. Está diseñada para ser implementada en navegadores y servidores web, pero puede utilizarse por cualquier aplicación cliente/servidor. La API de WebSocket está siendo normalizada por el W3C, mientras que el protocolo WebSocket ya fue normalizado por la IETF como el RFC 6455. Debido a que las conexiones TCP comunes sobre puertos diferentes al 80 son habitualmente bloqueadas por los administradores de redes, el uso de esta tecnología proporcionaría una solución a este tipo de limitaciones proveyendo una funcionalidad similar a la apertura de varias conexiones en distintos puertos, pero multiplexando diferentes servicios WebSocket sobre un único puerto TCP (a costa de una pequeña sobrecarga del protocolo).
Está diseñada para ser implementada en navegadores y servidores web, pero puede utilizarse por cualquier aplicación cliente/servidor. La API de WebSocket esta disponible para el código JavaScript cuyo alcance DOM sea un objeto Window o cualquier objeto implementando WorkerUtils; si es así, puedes usarlos desde los Web Workers. Nota: La API de WebSockets (y el protocolo subyacente) continúan en activo desarrollo, y existen muchos problemas de compatibilidad entre los navegadores en este momento (e inclusive entre los diferentes lanzamientos del mismo navegador).
La API de WebSocket invoca al backend en función del contenido de los mensajes que recibe de las aplicaciones cliente. A diferencia de una API de REST, que recibe las solicitudes y responde a ellas, una API de WebSocket admite la comunicación bidireccional entre las aplicaciones cliente y el backend.
Los navegadores que soportan websockets son: Chrome, Firefox(Gecko), Opera, Safari y edge.
FrontEnd
FrontEnd es la parte de una aplicación que interactúa con los usuarios, es conocida como el lado del cliente. Básicamente es todo lo que vemos en la pantalla cuando accedemos a un sitio web o aplicación: tipos de letra, colores, adaptación para distintas pantallas(RWD), los efectos del ratón, teclado, movimientos, desplazamientos, efectos visuales… y otros elementos que permiten navegar dentro de una página web. Este conjunto crea la experiencia del usuario.
BackEnd
El backend del sitio web consiste en un servidor, una aplicación y una base de datos. Se toman los datos, se procesa la información y se envía al usuario. nos referimos al interior de las aplicaciones que viven en el servidor y al que a menudo se le denomina “el lado del servidor”. Un desarrollador Back end debe tener amplios conocimientos de los siguientes lenguajes: frameworks y los tipos de base de datos. No siendo necesario conocer todos los lenguajes pero sí entender y saber trabajar con algunos de ellos.
Una aplicación web progresiva es un tipo de software de aplicación que se entrega a través de la web, creado utilizando tecnologías web comunes como HTML, CSS y JavaScript. Está destinado a funcionar en cualquier plataforma que use un navegador compatible con los estándares. La funcionalidad incluye trabajar sin conexión, notificaciones push y acceso al hardware del dispositivo, lo que permite crear experiencias de usuario similares a las aplicaciones nativas en dispositivos móviles y de escritorio. Dado que una aplicación web progresiva es un tipo de página web o sitio web conocido como aplicación web, no hay ningún requisito para que los desarrolladores o usuarios instalen las aplicaciones web a través de sistemas de distribución digital como Apple App Store o Google Play.
Ventajas
-Bajo costo -Son seguras -Son indexables -Son enlazables -Se actualizan constantemente -Acceso sin conexión -Son rápidas -Se adaptan a cualquier dispositivo
Desventajas
-No se encuentran en la tienda de apps -Consumen mucha bateria -El uso de funcionalidades nativas es limitado -No son para todo público -No es soportada en su totalidad en navegadores -Inestabilidad
Algunas tecnologías son: Kotlin(Android), Swift(ios), react-native(Android-ios), Xamarin y Ionic. Los service worker es una secuencia de comandos que se ejecuta en segunda plano en el navegador, estos no requieren de interfaz gráfica por lo que pueden llegar a ser muy livianos. Para implementar un service worker se requiere, que el navegador para el cual se está desarrollando la aplicación sea compatible con la tecnología, posterior que necesita que el sitio poseea HTTPS, para ello es necesario un certificado tls y por último se debe de registrar en nuestro sitio web a través de javascript
Con nodeJs y socket.io se puede implementar tanto en web como de manera nativa.