ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base all'area geografica selezionata al momento della creazione dell'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici paese e provincia di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r
è incluso negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Utilizza questa pagina di riferimento per i dettagli sulle intestazioni HTTP supportate e sui limiti di richieste e risposte in App Engine. Per capire in che modo App Engine riceve le richieste e invia risposte, consulta Come vengono gestite le richieste.
Intestazioni delle richieste
Una richiesta HTTP in entrata include le intestazioni HTTP inviate dal client. Per motivi di sicurezza, alcune intestazioni vengono sanitizzate, modificate o rimosse da proxy intermedi prima che raggiungano l'applicazione.
Intestazioni rimosse dalle richieste in arrivo
Le seguenti intestazioni vengono rimosse dalle richieste in entrata se un client le invia:
Intestazioni con nomi corrispondenti al pattern
X-Google-*
. Questo pattern del nome è riservato a Google.Intestazioni con nomi corrispondenti alle intestazioni specifiche di App Engine. Vengono rimosse solo le corrispondenze esatte, senza distinzione tra maiuscole e minuscole. Ad esempio, le intestazioni denominate
X-Appengine-Country
oX-AppEngine-Country
verranno rimosse, al contrario diX-Appengine-Cntry
.
Accept-Encoding
Connection
Keep-Alive
Proxy-Authorization
TE
Trailer
Transfer-Encoding
Ad esempio, il server potrebbe inviare automaticamente una risposta compressa con gzip a seconda del valore dell'intestazione della richiesta Accept-Encoding
. L'applicazione non ha bisogno di conoscere le codifiche dei contenuti che il client può accettare.
Intestazioni specifiche di App Engine
Come servizio per l'app, App Engine aggiunge le seguenti intestazioni a tutte le richieste:
X-Appengine-Country
- Paese da cui ha avuto origine la richiesta, come codice paese ISO 3166-1 alpha-2.
App Engine determina questo codice dall'indirizzo IP del client. Tieni presente che le informazioni sul paese non derivano dal database WHOIS; è possibile che un indirizzo IP con informazioni sul paese nel database WHOIS non disponga di informazioni sul paese nell'intestazione
X-Appengine-Country
. La tua richiesta deve gestire il codice paese specialeZZ
(paese sconosciuto). X-Appengine-Region
- Nome della regione da cui ha avuto origine la richiesta. Questo valore ha senso solo nel contesto del paese in
X -Appengine-Country
. Ad esempio, se il paese è "US" e la regione è "ca", "ca" significa "California" e non Canada. L'elenco completo dei valori validi per la regione è disponibile nello standard ISO-3166-2. X-Appengine-City
- Nome della città da cui ha avuto origine la richiesta. Ad esempio, una richiesta
dalla città di Mountain View potrebbe avere il valore di intestazione
mountain view
. Non esiste un elenco canonico di valori validi per questa intestazione. Se la città non può essere risolta, il valore dell'intestazione viene impostato su?
. X-Appengine-CityLatLong
- Latitudine e longitudine della città da cui ha avuto origine la richiesta. Questa stringa potrebbe essere simile a "37.386051,-122.083851" per una richiesta proveniente da Mountain View.
Se la città non può essere risolta, il valore dell'intestazione viene impostato su
0.000000,0.000000
. X-Cloud-Trace-Context
- Un identificatore univoco per la richiesta utilizzata per Cloud Trace e Cloud Logging. Non esiste un'opzione per disabilitare questa intestazione o scegliere la frequenza di campionamento per il tracciamento poiché tutte le app dell'ambiente standard di App Engine vengono tracciate automaticamente.
X-Forwarded-For: [CLIENT_IP(s)], [global forwarding rule IP]
Un elenco, delimitato da virgole, di indirizzi IP attraverso i quali la richiesta client è stata instradata. Il primo IP in questo elenco è in genere l'IP del client che ha creato la richiesta. Gli IP successivi forniscono informazioni sui server proxy che hanno gestito anche la richiesta prima che raggiungesse il server delle applicazioni. Ad esempio:
X-Forwarded-For: clientIp, proxy1Ip, proxy2Ip
X-Forwarded-Proto [http | https]
Mostra
http
ohttps
in base al protocollo che il client ha utilizzato per connettersi all'applicazione.Il bilanciatore del carico Google Cloud termina tutte le connessioni
https
, quindi inoltra il traffico alle istanze App Engine suhttp
. Ad esempio, se un utente richiede l'accesso al tuo sito tramitehttps://PROJECT_ID.REGION_ID.r.appspot.com
, il valore dell'intestazione X-Forwarded-Proto èhttps
.
Inoltre, App Engine può impostare le seguenti intestazioni per uso interno da parte di 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
I servizi App Engine possono aggiungere intestazioni di richiesta aggiuntive:
Le richieste del servizio cron aggiungono la seguente intestazione:
X-Appengine-Cron: true
Per ulteriori dettagli, consulta Protezione degli URL per cron.
Richiedi risposte
Questa documentazione relativa alle intestazioni HTTP si applica solo alle risposte alle richieste HTTP in entrata. La risposta può essere modificata prima che venga restituita al client.
Intestazioni rimosse
Le seguenti intestazioni vengono ignorate e rimosse dalla risposta:
Connection
Content-Encoding
*Content-Length
Date
Keep-Alive
Proxy-Authenticate
Server
Trailer
Transfer-Encoding
Upgrade
* Può essere riaggiunto se la risposta viene compressa da App Engine.
Vengono rimosse anche le intestazioni che contengono caratteri non ASCII nel nome o nel valore.
Intestazioni aggiunte o sostituite
Le seguenti intestazioni vengono aggiunte o sostituite nella risposta:
Cache-Control
,Expires
eVary
Queste intestazioni specificano i criteri di memorizzazione nella cache per i proxy web intermedi (come Google Frontend e i provider di servizi internet) e i browser. Se la tua app imposta queste intestazioni di risposta, di solito non vengono modificate, a meno che l'app non imposti anche un'intestazione
Set-Cookie
o la risposta non venga generata per un utente che ha eseguito l'accesso utilizzando un account amministratore.Se la tua app imposta un'intestazione della risposta
Set-Cookie
, l'intestazioneCache-Control
verrà impostata suprivate
(se non è già più restrittiva) e l'intestazioneExpires
verrà impostata sulla data corrente (se non è già passata). In genere, ciò consente ai browser di memorizzare nella cache la risposta, ma non di server proxy intermedi. Questo per motivi di sicurezza perché, se la risposta è stata memorizzata nella cache pubblicamente, un altro utente potrebbe richiedere la stessa risorsa e recuperare il cookie del primo utente.Se l'app non imposta l'intestazione della risposta
Cache-Control
, il server potrebbe impostarla suprivate
e aggiungere un'intestazioneVary: Accept-Encoding
.Per ulteriori informazioni sulla memorizzazione nella cache, incluso l'elenco dei valori
Vary
supportati da Google Frontend, consulta la sezione Memorizzazione nella cache delle risposte.Content-Encoding
A seconda delle intestazioni della richiesta e della risposta
Content-Type
, il server potrebbe comprimere automaticamente il corpo della risposta, come descritto sopra. In questo caso, viene aggiunta un'intestazioneContent-Encoding: gzip
per indicare che il corpo è compresso. Per ulteriori dettagli, consulta la sezione sulla compressione delle risposte.Content-Length
oTransfer-Encoding
Il server ignora sempre l'intestazione
Content-Length
restituita dall'applicazione. Verrà impostatoContent-Length
sulla lunghezza del corpo (dopo la compressione, se viene applicata la compressione) oppure elimineràContent-Length
e utilizzerà la codifica di trasferimento in blocchi (aggiungendo un'intestazioneTransfer-Encoding: chunked
). SeContent-Length
è impostato in modo errato per i runtime di seconda generazione, App Engine restituisce una risposta 500.Date
Imposta la data e l'ora correnti.
Server
- Impostazione su
Google Frontend
. Il server di sviluppo lo imposta suDevelopment/x
, dove x è il numero di versione.
Se accedi a pagine dinamiche sul tuo sito dopo aver eseguito l'accesso utilizzando un account amministratore, App Engine include statistiche per richiesta nelle intestazioni delle risposte:
X-Appengine-Resource-Usage
- Le risorse utilizzate dalla richiesta, incluso il tempo lato server espresso in millisecondi.
Le risposte con statistiche sull'utilizzo delle risorse non saranno memorizzate nella cache.
Intestazioni della risposta impostate nella configurazione dell'applicazione
Le intestazioni delle risposte HTTP personalizzate possono essere impostate per ogni URL per i percorsi dinamici e statici nel file di configurazione dell'applicazione. Per ulteriori dettagli, consulta le sezioni relative a http_headers
nella documentazione sulla configurazione.