En esta lección, veremos la relación entre clientes y servidores. La arquitectura Cliente/servidor ofrece un número ilimitado de posibilidades de comunicación, y es lo que hace posible Internet. Cubriremos una comprensión básica del modelo cliente/servidor que luego se utilizará para llamar a una API. Está más allá del alcance de esta lección cubrir un recurso exhaustivo para la arquitectura cliente/servidor; en cambio, nos centraremos en los principios primarios de la comunicación cliente/servidor.
Podrás:
El modelo de tecnologías de comunicación cliente-servidor es un conjunto de arquitectura de aplicaciones distribuidas y operaciones de red que gestiona las cargas de trabajo entre los proveedores de un servicio, llamados servidores , y el solicitante de servicio, llamado clientes .
Aunque el modelo cliente servidor puede ser utilizado por programas dentro de una computadora individual, nos centraremos en el aspecto que trata de los entornos de red. En este caso, el cliente configura una conexión con el servidor a través de una red de área local (LAN), una red de área amplia (WAN) como Internet. ¿Alguna vez has jugado a Xbox Live o has usado PlayStation Network? Su Xbox One es el cliente y, cuando inicia sesión en la red, se comunica con los servidores de Xbox Live para recuperar recursos de juegos como actualizaciones, videos y demostraciones de juegos.
A continuación se muestra una arquitectura típica de servidor cliente de múltiples capas que la mayoría de nosotros usamos en la vida cotidiana.
Un cliente es un dispositivo de hardware o software que solicita un servicio puesto a disposición por un servidor. El servidor suele (pero no siempre) estar ubicado en una computadora física separada.
Un servidor es una computadora física dedicada a ejecutar servicios para satisfacer las necesidades de los clientes. Dependiendo del servicio que se esté ejecutando, podría ser un servidor de archivos, un servidor de bases de datos, un servidor de medios doméstico, un servidor de impresión, un servidor de correo electrónico o un servidor web .
La idea de que un Cliente y un Servidor se comuniquen a través de una red es lo que hace posible ver sitios web e interactuar con aplicaciones web (como Gmail, Facebook, LinkedIn). Este modelo es una forma de describir la relación de toma y daca entre el cliente y el servidor en una aplicación web y rige cómo pasa la información entre computadoras.
Veamos cómo se ve una aplicación web básica que recibe una solicitud de un cliente web y sirve en consecuencia.
Una aplicación web (aplicación web) es un programa de aplicación que se almacena en un servidor remoto y se entrega a través de Internet a través de una interfaz de navegador. Los servicios web son aplicaciones web por definición y muchos sitios web, aunque no todos, contienen aplicaciones web. Cualquier componente del sitio web que realice alguna función para el usuario se considera una aplicación web. El motor de búsqueda de Google es una aplicación web, pero su concepto raíz apenas se diferencia de un directorio telefónico que permite buscar nombres o números.
La mayoría de las aplicaciones web en realidad utilizan una interfaz de navegador para la interacción, es decir, los usuarios finales solicitan acceso y solicitan información/servicio de estas aplicaciones a través de una interfaz de navegador web moderna. Hay cientos de formas de crear y configurar una aplicación web, pero la mayoría sigue la misma estructura básica: un cliente web, un servidor web y una base de datos.
El cliente es con lo que interactúa el usuario final. El código del "lado del cliente" es en realidad responsable de la mayor parte de lo que un usuario realmente ve. Para solicitar cierta información como página web, el lado del cliente puede ser responsable de: incluye:
La mayoría de estas tareas se gestionan mediante tecnologías similares a HTML/CSS/JavaScript para estructurar la información, el estilo de la página y proporcionar objetos interactivos para la navegación y el enfoque.
Un servidor web en una aplicación web es lo que escucha las solicitudes provenientes de los clientes. Cuando configura un servidor HTTP (Protocolo de transferencia de hipertexto, idioma de Internet), lo configuramos para escuchar un número de puerto. Un número de puerto siempre está asociado con la dirección IP de una computadora. Puedes pensar en los puertos como canales separados en una computadora que podemos usar para realizar diferentes tareas: un puerto podría navegar por www.facebook.com mientras que otro busca tu correo electrónico. Esto es posible porque cada una de las aplicaciones (el navegador web y el cliente de correo electrónico) utiliza números de puerto diferentes.
Una vez que haya configurado un servidor HTTP para escuchar un puerto específico, el servidor espera las solicitudes de los clientes que llegan a ese puerto específico. Después de autenticar al cliente, el servidor realiza las acciones indicadas por la solicitud y envía los datos solicitados a través de una respuesta HTTP.
Las bases de datos son la base de la arquitectura web. Una base de datos SQL/NoSQL o un tipo similar de base de datos es un lugar para almacenar información para que se pueda acceder a ella, administrarla y actualizarla fácilmente. Si está creando un sitio de redes sociales, por ejemplo, puede usar una base de datos para almacenar información sobre sus usuarios, publicaciones, comentarios, etc. Cuando un visitante solicita una página, los datos insertados en la página provienen de la base de datos del sitio. permitiendo interacciones de usuario en tiempo real con sitios como Facebook o aplicaciones como Gmail.
En la imagen de ejemplo de arriba, podemos ver la configuración mencionada anteriormente en acción. Un navegador envía una solicitud a un servidor web llamando a su dominio, es decir, www.google.com. Según quién es el solicitante, el servidor recopila la información necesaria para una base de datos SQL. Esta información se empaqueta como código HTML y se envía de vuelta al cliente. El navegador web lee la información de estructura y estilo incrustada en HTML y muestra la página al usuario en consecuencia.
Hay muchos detalles sobre las arquitecturas cliente/servidor y cómo se manifiestan en Internet. Nos centraremos un poco más en las ideas destacadas en esta sección configurando un cliente y realizando solicitudes en Python. Estas habilidades nos ayudarán a solicitar datos de los servidores para nuestros experimentos analíticos. Aquí hay algunos recursos adicionales para usted si desea profundizar en el modelo de servidor cliente y cómo está configurado para muchas arquitecturas diferentes.
En esta lección, analizamos los conceptos básicos del modelo cliente servidor y nos centramos en cómo se implementa este modelo para aplicaciones basadas en web. Analizamos el papel de los clientes web, los servidores web y las bases de datos que transportan información del cliente. En las siguientes lecciones, veremos cómo implementar estas ideas usando Python.