ID de región
El REGION_ID
es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r
se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.
Consulta esta página de referencia para obtener información sobre qué encabezados HTTP son compatibles y los límites de las solicitudes y respuestas en App Engine. Para saber cómo recibe solicitudes y envía respuestas App Engine, consulta el artículo Cómo se gestionan las solicitudes.
Encabezados de solicitud
Una solicitud HTTP entrante incluye las cabeceras HTTP enviadas por el cliente. Por motivos de seguridad, los proxies intermedios sanitizan, modifican o eliminan algunos encabezados antes de que lleguen a la aplicación.
Encabezados eliminados de las solicitudes entrantes
Los siguientes encabezados se eliminan de las solicitudes entrantes si un cliente los envía:
Encabezados con nombres que coincidan con el patrón
X-Google-*
. Este patrón de nombre está reservado para Google.Encabezados con nombres que coincidan con los encabezados específicos de App Engine. Solo se eliminan las coincidencias exactas que no distinguen entre mayúsculas y minúsculas. Por ejemplo, se eliminarán los encabezados llamados
X-Appengine-Country
oX-AppEngine-Country
, pero noX-Appengine-Cntry
.
Accept-Encoding
Connection
Keep-Alive
Proxy-Authorization
TE
Trailer
Transfer-Encoding
Por ejemplo, el servidor puede enviar automáticamente una respuesta comprimida con gzip en función del valor del encabezado de solicitud Accept-Encoding
. La aplicación no necesita saber qué codificaciones de contenido puede aceptar el cliente.
Encabezados específicos de App Engine
Como servicio para la aplicación, App Engine añade los siguientes encabezados a todas las solicitudes:
X-Appengine-Country
- País desde el que se ha originado la solicitud, como código de país ISO 3166-1 alfa-2.
App Engine determina este código a partir de la dirección IP del cliente. Ten en cuenta que la información del país no se obtiene de la base de datos WHOIS. Es posible que una dirección IP con información del país en la base de datos WHOIS no tenga información del país en el encabezado
X-Appengine-Country
. Tu aplicación debe gestionar el código de país especialZZ
(país desconocido). X-Appengine-Region
- Nombre de la región desde la que se ha originado la solicitud. Este valor solo tiene sentido en el contexto del país indicado en
X -Appengine-Country
. Por ejemplo, si el país es "US" y la región es "ca", "ca" significa "California", no Canadá. La lista completa de valores de región válidos se encuentra en la norma ISO-3166-2. X-Appengine-City
- Nombre de la ciudad desde la que se ha originado la solicitud. Por ejemplo, una solicitud de la ciudad de Mountain View podría tener el valor de encabezado
mountain view
. No hay ninguna lista canónica de valores válidos para este encabezado. Si no se puede resolver la ciudad, el valor del encabezado se define como?
. X-Appengine-CityLatLong
- Latitud y longitud de la ciudad desde la que se ha enviado la solicitud. Esta cadena podría ser "37.386051,-122.083851" en una solicitud de Mountain View.
Si no se puede determinar la ciudad, el valor del encabezado se define como
0.000000,0.000000
. X-Cloud-Trace-Context
- Identificador único de la solicitud que se usa en Cloud Trace y Cloud Logging. No hay ninguna opción para inhabilitar este encabezado ni para elegir la frecuencia de muestreo del rastreo, ya que todas las aplicaciones del entorno estándar de App Engine se rastrean automáticamente.
X-Forwarded-For: [CLIENT_IP(s)], [global forwarding rule IP]
Lista delimitada por comas de las direcciones IP por las que se ha encaminado la solicitud del cliente. La primera IP de esta lista suele ser la del cliente que ha creado la solicitud. Las IPs posteriores proporcionan información sobre los servidores proxy que también gestionaron la solicitud antes de que llegara al servidor de aplicaciones. Por ejemplo:
X-Forwarded-For: clientIp, proxy1Ip, proxy2Ip
X-Forwarded-Proto [http | https]
Muestra
http
ohttps
en función del protocolo que haya usado el cliente para conectarse a tu aplicación.El balanceador de carga de Google Cloud finaliza todas las conexiones
https
y, a continuación, reenvía el tráfico a las instancias de App Engine a través dehttp
. Por ejemplo, si un usuario solicita acceso a su sitio a través dehttps://PROJECT_ID.REGION_ID.r.appspot.com
, el valor del encabezado X-Forwarded-Proto eshttps
.
Además, App Engine puede definir los siguientes encabezados, que son para uso interno de App Engine:
X-Appengine-Https
X-Appengine-User-IP
X-Appengine-Api-Ticket
X-Appengine-Request-Log-Id
X-Appengine-Default-Version-Hostname
X-Appengine-Timeout-Ms
Los servicios de App Engine pueden añadir encabezados de solicitud adicionales:
Las solicitudes del servicio Cron añaden el siguiente encabezado:
X-Appengine-Cron: true
Consulta más información en Proteger URLs para cron.
Solicitar respuestas
La documentación de este encabezado HTTP solo se aplica a las respuestas a solicitudes HTTP entrantes. La respuesta se puede modificar antes de devolverse al cliente.
Encabezados eliminados
Los siguientes encabezados se ignoran y se quitan de la respuesta:
Connection
Content-Encoding
*Content-Length
Date
Keep-Alive
Proxy-Authenticate
Server
Trailer
Transfer-Encoding
Upgrade
* Se puede volver a añadir si App Engine comprime la respuesta.
También se eliminan los encabezados que contengan caracteres no ASCII en el nombre o en el valor.
Encabezados añadidos o sustituidos
Los siguientes encabezados se añaden o se sustituyen en la respuesta:
Cache-Control
,Expires
yVary
Estos encabezados especifican la política de almacenamiento en caché para los proxies web intermedios (como el frontend de Google y los proveedores de servicios de Internet) y los navegadores. Si tu aplicación define estos encabezados de respuesta, normalmente no se modificarán a menos que tu aplicación también defina un encabezado
Set-Cookie
o que la respuesta se genere para un usuario que haya iniciado sesión con una cuenta de administrador.Si tu aplicación define un encabezado de respuesta
Set-Cookie
, el encabezadoCache-Control
se definirá comoprivate
(si aún no es más restrictivo) y el encabezadoExpires
se definirá como la fecha actual (si aún no ha pasado). Por lo general, esto permitirá que los navegadores almacenen en caché la respuesta, pero no los servidores proxy intermedios. Esto se hace por motivos de seguridad, ya que, si la respuesta se almacenara en caché públicamente, otro usuario podría solicitar el mismo recurso posteriormente y recuperar la cookie del primer usuario.Si tu aplicación no define el encabezado de respuesta
Cache-Control
, el servidor puede definirlo comoprivate
y añadir un encabezadoVary: Accept-Encoding
.Para obtener más información sobre el almacenamiento en caché, incluida la lista de valores de
Vary
que admite el frontend de Google, consulta Almacenamiento en caché de respuestas.Content-Encoding
En función de los encabezados de solicitud y de respuesta
Content-Type
, el servidor puede comprimir automáticamente el cuerpo de la respuesta, tal como se ha descrito anteriormente. En este caso, se añade un encabezadoContent-Encoding: gzip
para indicar que el cuerpo está comprimido. Consulta la sección sobre compresión de respuestas para obtener más información.Content-Length
oTransfer-Encoding
El servidor siempre ignora el encabezado
Content-Length
devuelto por la aplicación. Se asignará aContent-Length
la longitud del cuerpo (después de la compresión, si se aplica) o se eliminaráContent-Length
y se usará la codificación de transferencia fragmentada (se añadirá un encabezadoTransfer-Encoding: chunked
). SiContent-Length
se define de forma incorrecta para los tiempos de ejecución de segunda generación, App Engine devuelve una respuesta 500.Date
Se establece la fecha y la hora actuales.
Server
- se ha definido como
Google Frontend
. El servidor de desarrollo asigna el valorDevelopment/x
, donde x es el número de versión.
Si accedes a páginas dinámicas de tu sitio mientras tienes la sesión iniciada con una cuenta de administrador, App Engine incluye estadísticas por solicitud en los encabezados de respuesta:
X-Appengine-Resource-Usage
- Los recursos que usa la solicitud, incluido el tiempo del lado del servidor en milisegundos.
Las respuestas con estadísticas de uso de recursos no se podrán almacenar en caché.
Encabezados de respuesta definidos en la configuración de la aplicación
Los encabezados de respuesta HTTP personalizados se pueden definir por URL para rutas dinámicas y estáticas en el archivo de configuración de tu aplicación. Para obtener más información, consulta las secciones http_headers
de la documentación sobre la configuración.