區域 ID
REGION_ID
是 Google 根據您在建立應用程式時選取的地區所指派的縮寫代碼。此代碼不對應至國家/地區或省份,即使部分區域 ID 可能與常用的國家/地區和省份代碼相似。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r
。如果是這段時間前建立的現有應用程式,網址可選擇是否包含地區 ID。
進一步瞭解區域 ID。
本頁說明如何透過 App Engine 應用程式發出 HTTP(S) 要求。
App Engine 會使用網址擷取服務來發出傳出 HTTP(S) 要求。 如要進一步瞭解要求大小上限和透過網址擷取要求傳送的標頭,請參閱傳出要求。發出 HTTP 要求
PHP 語言提供多種用於發出遠端 HTTP 要求的函式。這些函式在 Google App Engine 中的部署方式並不相同,配額和費用也有差異:
- 串流處理常式:原生
http://
和https://
PHP 串流處理常式已設為使用 App Engine 的網址擷取服務發出 HTTP 要求。file_get_contents() 等許多 PHP 函式是以間接方式使用串流處理常式,因此也會使用網址擷取服務。 - cURL 擴充功能:cURL 擴充功能使用的是通訊端服務。您必須在應用程式的 php.ini 檔案中啟用 cURL 擴充功能,專案也必須啟用計費功能。
- cURL 精簡版:cURL 精簡版是 Google 提供的 cURL 程式庫版本。這個程式庫會使用網址擷取服務,而非通訊端服務。您必須在應用程式的 php.ini 檔案中啟用 cURL 精簡版。系統不支援下列 cURL 擴充功能方法:
curl_multi_*
個函式- 支援非標準通訊協定
- 支援 80 (HTTP) 或 443 (HTTPS) 以外的通訊埠
您要使用 cURL、cURL 精簡版或串流包裝函式,主要取決於您的應用程式和偏好。如果您無法確定,請使用 Guzzle HTTP 資料庫。Guzzle 針對 HTTP 要求提供抽象層,可讓您變更基礎服務而不重寫應用程式的程式碼。
串流處理常式
標準 HTTP(S) 串流處理常式用於 fopen()
和 file_get_contents()
等內建 PHP 函式。
cURL 和 cURL 精簡版
在 php.ini 中啟用 cURL 或 cURL 精簡版,即可透過 cURL 函式發出傳出要求。cURL 精簡版會使用網址擷取服務,cURL 則是使用 Sockets API
Guzzle
根據預設,Guzzle 是使用 PHP 的串流處理常式,但如果已啟用 cURL 或 cURL 精簡版,則會自動使用 cURL 處理常式。
設定要求逾時
您可以使用 HTTP context (HTTP 結構定義) 中的 timeout
選項來修改期限。
停用重新導向
如果您使用網址擷取服務,預設情況下,基礎網址擷取服務最多會追蹤五次重新導向。這些重新導向可能會將授權標頭等私密資訊轉送至重新導向目的地。如果應用程式不需要 HTTP 重新導向,建議停用重新導向。
如要禁止網址擷取服務追蹤重新導向連結,您必須將應用程式 HTTP context options (HTTP 結構定義選項) 中的 follow_location
參數設為 false
。
發出 HTTPS 要求
根據預設,基礎網址擷取服務會驗證所連線主機的憑證,如果憑證不符,就會拒絕要求。您不需要明確保護要求。
停用主機憑證驗證
根據預設,App Engine 實作的 HTTPS 包裝函式會嘗試驗證主機的憑證,並拒絕憑證不相符的要求。如要停用這項行為,請將 SSL/TLS context options (安全資料傳輸層 (SSL)/傳輸層安全標準 (TLS) 結構定義選項) 中的 verify_peer
值設為 false
。
向其他 App Engine 應用程式發出要求
發出要求至其他 App Engine 應用程式時,App Engine 應用程式必須在要求中加入 X-Appengine-Inbound-Appid
標頭以表明自己的身分。如果您指示網址擷取服務不要追蹤重新導向,App Engine 會自動在要求中加入這個標頭。
如要瞭解如何停用重新導向,請參閱「停用重新導向」。
後續步驟
如要瞭解網址擷取服務,例如透過網址擷取要求傳送的標頭,請參閱傳出要求一文。