sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo maneja un servidor las solicitudes de servicios web de varios clientes?

Es para el concepto general, no para un Android específico

Por lo general, cada uno de los usuarios envía una solicitud HTTP para la página. El servidor recibe las solicitudes y las delega a diferentes trabajadores (procesos o subprocesos).

Dependiendo de la URL proporcionada, el servidor lee un archivo y lo devuelve al usuario. Si el archivo es un archivo dinámico, como un archivo PHP, el archivo se ejecuta antes de enviarlo al usuario.

Una vez que se ha devuelto el archivo solicitado, el servidor suele cerrar la conexión después de unos segundos.

Mire Cómo funcionan los servidores web

EDITAR:

Para HTTP usa TCP, que es un protocolo basado en conexión. Es decir, los clientes establecen una conexión TCP mientras se comunican con el servidor.

Se permite que varios clientes se conecten al mismo puerto de destino en la misma máquina de destino al mismo tiempo. El servidor simplemente abre múltiples conexiones simultáneas.

Apache (y la mayoría de los otros servidores HTTP) tienen un módulo de procesamiento múltiple (MPM). Este es responsable de asignar subprocesos/procesos de Apache para manejar las conexiones. Estos procesos o subprocesos pueden ejecutarse en paralelo en su propia conexión, sin bloquearse entre sí. El MPM de Apache también tiende a mantener abiertos procesos o subprocesos "de repuesto" incluso cuando no hay conexiones abiertas, lo que ayuda a acelerar las solicitudes posteriores.

Nota:

Uno de los problemas más comunes con subprocesos múltiples es "condiciones de carrera"-- donde dos solicitudes están haciendo lo mismo ("compitiendo" para hacer lo mismo), si es un solo recurso, uno de ellos va a ganar. Si ambos insertan un registro en la base de datos, no pueden obtener la misma identificación; uno de ellos ganará. Por lo tanto, debe tener cuidado al escribir código para darse cuenta de que se están realizando otras solicitudes al mismo tiempo y pueden modificar su base de datos, escribir archivos o cambiar globales.