Cómo se manejan las solicitudes

En este documento, se describe cómo tu aplicación App Engine recibe solicitudes y envía respuestas. Para obtener más detalles, consulta la referencia Encabezados de solicitud.

Si tu aplicación utiliza servicios, puedes destinar solicitudes a un servicio específico o una versión específica de ese servicio. Para obtener más información sobre cómo direccionar el servicio, consulta Cómo enrutar solicitudes.

Cómo manejar solicitudes

Tu aplicación se encarga de iniciar un servidor web y manejar solicitudes. Puedes usar cualquier marco de trabajo web que esté disponible para tu lenguaje de desarrollo.

App Engine ejecuta varias instancias de tu aplicación, y cada una tiene su propio servidor web para manejar solicitudes. Las solicitudes pueden enrutarse a cualquier instancia, por lo que las solicitudes consecutivas del mismo usuario no necesariamente se envían a la misma instancia. Una instancia puede manejar varias solicitudes al mismo tiempo. La cantidad de instancias se puede ajustar automáticamente a medida que cambia el tráfico. También puedes cambiar la cantidad de solicitudes simultáneas que una instancia puede manejar. Para esto, configura el elemento max_concurrent_requests en tu archivo app.yaml.

Cuotas y límites

App Engine asigna recursos a tu aplicación de manera automática a medida que aumenta el tráfico. Sin embargo, esto se limita a las siguientes restricciones:

  • App Engine reserva la capacidad de escalamiento automático para aplicaciones con latencia baja con el fin de que la aplicación responda a solicitudes en menos de un segundo. Las aplicaciones con latencia muy alta, por ejemplo, más de un segundo por solicitud para varias solicitudes, y capacidad de procesamiento alta requieren asistencia de nivel Plata, Oro o Platino. Los clientes con este nivel de asistencia pueden comunicarse con su representante de asistencia para solicitar que se aumenten sus límites de capacidad de procesamiento.

  • Las aplicaciones estrechamente ligadas a la CPU también pueden incurrir en alguna latencia adicional para compartir recursos de manera eficiente con otras aplicaciones en el mismo servidor. Las solicitudes para archivos estáticos están exentas de los límites de latencia.

Cada solicitud que entra en la aplicación se considera en los límites de Solicitudes. Los datos enviados en respuesta a una solicitud se tienen en cuenta en el límite de Ancho de banda de salida (facturable).

Tanto las solicitudes de HTTP como las de HTTPS (seguro) se tienen en cuenta en los límites de Solicitudes, Ancho de banda de entrada (facturable), y Ancho de banda de salida (facturable). La página Detalles de cuota de GCP Console también informa Solicitudes seguras, Ancho de banda de entrada seguro y Ancho de banda de salida seguro como valores aparte para fines informativos. Solo las solicitudes de HTTPS consideran estos valores. Para obtener más información, consulta la página Cuota.

Los límites que se indican a continuación se aplican específicamente al uso de los controladores de solicitudes.

Límites de las solicitudes

  • Se permite un máximo de ~15 KB en encabezados de solicitud.
  • El tamaño total de la solicitud se limita a ~32 MB.
  • Todas las solicitudes HTTP/2 se convertirán en solicitudes HTTP/1.1 cuando se desvíen al servidor de la aplicación.
  • Las conexiones SSL finalizan con el balanceador de cargas. El tráfico del balanceador de cargas se envía a la instancia por un canal encriptado y, luego, se redirecciona al servidor de la aplicación en HTTP. El encabezado X-Forwarded-Proto te permite saber si la solicitud de origen fue HTTP o HTTPS.

Límites de las respuestas

  • Las respuestas se almacenan en búfer en bloques de 64 k.
  • El tamaño de la respuesta es ilimitado.
  • El tiempo de la respuesta es una hora.

Solicitudes HTTP no compatibles

Las siguientes funciones no son compatibles con el entorno de App Engine Flexible.

  • Tráfico HTTP/2 para el servicio de backend
  • Solicitudes HTTP que acceden a instancias directamente

Encabezados de solicitud

Una solicitud nueva de HTTP incluye los encabezados HTTP que envía el cliente. Por motivos de seguridad, los proxies intermedios limpian o modifican algunos encabezados antes de que lleguen a la aplicación.

Para obtener más información, consulta Referencia de encabezados de solicitud.

Respuestas a solicitudes

Se aplican límites a la respuesta que generas, y la respuesta se puede modificar antes de que regrese al cliente.

Cómo inhabilitar el almacenamiento en búfer

De forma predeterminada, todas las respuestas de App Engine se almacenan en búfer en bloques de 64 k. En algunos casos, puede ser apropiado inhabilitar el almacenamiento en búfer y transmitir bytes directamente al cliente. Esto es lo que se recomienda si se usan GET pendientes o eventos enviados por el servidor (SSE). Para inhabilitar el almacenamiento en búfer, puedes configurar el encabezado de respuesta X-Accel-Buffering en no.

X-Accel-Buffering: no

Cómo forzar conexiones HTTPS

Por motivos de seguridad, todas las aplicaciones deben incentivar al cliente a conectarse por https. Puedes usar el encabezado de Seguridad de Transporte Estricta para indicarle al navegador que prefiera https sobre http en cierta página o todo un dominio, por ejemplo:

Strict-Transport-Security: max-age=31536000; includeSubDomains

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno flexible de App Engine para documentos .NET