Fundamentos · Unidad 13 · Lección 1 de 2
Del clic a la respuesta
Sigue una reserva entre presentación, transporte, decisiones del servicio y datos persistentes.
Para prepararteArquitecturas de aplicaciones web
Después de esta lección puedes
- explicar solicitudes y respuestas sin equiparar un clic con una transacción
- ubicar validación y autorización en el servicio receptor
- distinguir un mensaje de éxito de un cambio confirmado en los datos
Un teatro ficticio vende asientos desde un sitio adaptado al teléfono. Tocas «Reservar», aparece un indicador de espera y después una confirmación. Esa experiencia sencilla oculta varias decisiones. Saber dónde ocurren permite entender por qué navegador, servicio y base de datos no pueden confiar sin más en las suposiciones de los demás.
El clic inicia trabajo en el cliente
El navegador puede enviar un formulario o ejecutar JavaScript para preparar una solicitud. La página puede generarse en el servidor, construirse en el navegador o combinar ambos métodos. Un clic puede causar varias solicitudes, y algunas interacciones no necesitan ninguna. La apariencia no revela por sí sola la arquitectura del sistema.
HTTP asigna a las solicitudes un método, destino, cabeceras y, en ciertos casos, contenido. Las respuestas llevan estado, cabeceras y posiblemente contenido. La aplicación decide cómo esos mensajes corresponden a sus operaciones. Decir que algo es una API indica que ofrece una interfaz para software; no explica quién puede usar cada operación.
El servicio receptor toma la decisión
Las comprobaciones del cliente ayudan a corregir un formulario vacío. El servicio sigue teniendo que validar lo recibido, establecer la identidad relevante y comprobar permisos para la acción y el objeto. Elegir un asiento y cancelar una reserva ajena plantean preguntas de autorización distintas, aunque ambas solicitudes tengan un formato válido.
El precio y la disponibilidad deben proceder del estado autoritativo cuando se confirma la reserva. Dos personas pueden ver el mismo asiento disponible simultáneamente. La operación de datos debe impedir que ambas lo consigan, mediante reglas apropiadas de transacciones o concurrencia. Una página que se ve correcta no resuelve por sí sola ese conflicto.
PrediceEl servicio confirma una reserva, pero la conexión se interrumpe antes de que llegue la confirmación al teléfono. ¿Demuestra su ausencia que no existe reserva?
No. El cliente tiene un resultado incierto. La aplicación necesita recuperar el resultado y gestionar los reintentos sin crear otra reserva accidentalmente. Un tiempo de espera agotado describe lo observado por el cliente, no todo lo realizado por el servidor.
Las respuestas tienen distintos orígenes
La descripción pública de un evento puede reutilizarse desde una caché del navegador o compartida. El resultado privado de una reserva necesita reglas acordes con su sensibilidad y destinatarios. El cifrado no elige automáticamente la política de caché. Una CDN o un proxy inverso puede responder o reenviar, y la aplicación puede dejar tareas posteriores en una cola.
El trabajador que envía el correo debe recibir solo los datos y permisos necesarios. Su éxito tampoco es el mismo que el de la reserva: el asiento puede quedar reservado aunque el correo se retrase. Los mensajes al usuario deben distinguir esos resultados.
Lee el resultado completo
Un código de estado aporta evidencia, pero no explica todo el resultado del negocio. También importan el contenido de la respuesta y el estado de la aplicación. Sigue por separado entrada, identidad, permiso, cambio de datos y presentación. Estas responsabilidades siguen existiendo con una máquina, muchos contenedores o servicios gestionados de nube.
Compruébate
Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.
Las preguntas de esta lección han cambiado. Tu lectura sigue guardada; repasa las preguntas actualizadas.
-
El navegador desactiva el botón de un asiento agotado. ¿Qué falta todavía?
Ver la respuesta
Respuesta correcta: El servicio debe comprobar disponibilidad al confirmar la reserva. La decisión autoritativa corresponde al cambio de estado.
-
Se pierde la respuesta después de confirmar la reserva. ¿Cuál es la conclusión más precisa?
Ver la respuesta
Respuesta correcta: El cliente todavía no sabe si terminó la operación. No recibir respuesta no demuestra que el servidor no haya trabajado.
-
Una descripción pública llega desde caché. ¿Atendió el origen necesariamente esa solicitud?
Ver la respuesta
Respuesta correcta: No; puede reutilizarse una respuesta almacenada permitida. La caché puede evitar consultar al origen en cada solicitud.
-
La API acepta el formato. ¿Permite cancelar cualquier reserva?
Ver la respuesta
Respuesta correcta: No; debe comprobar los derechos de esta identidad sobre esta reserva. El formato válido y la autorización específica responden preguntas diferentes.
Pruébalo
- EscribeTraza en papel una reserva ficticia con seis tarjetas: clic, solicitud, identidad, decisión sobre asiento, resultado persistente y respuesta. Añade otra persona que pide el mismo asiento. Decide qué componente debe impedir que ambas reservas tengan éxito.