このページでは、URL 取得サービスを使用して HTTP および HTTPS のリクエストを送信し、レスポンスを受信する方法について説明します。
リクエスト
リクエストのプロトコル
アプリケーションは、HTTP または HTTPS のいずれかで URL を取得できます。必要なプロトコルは、ターゲット URL のプロトコルから判断されます。
取得された URL は、以下の範囲内にある任意のポートを使用します。
80
-90
440
-450
1024
-65535
URL にポート番号が含まれていない場合、使用するポートはプロトコルで判断します。HTTP リクエストはポート 80
を使用し、HTTPS リクエストはポート 443
を使用します。
リクエストのメソッド
URL 取得サービスを使用してリクエストを発行する場合、次のいずれかの HTTP メソッドを使用できます。
GET
POST
PUT
HEAD
DELETE
PATCH
リクエストには、HTTP ヘッダーを追加できます。POST
、PUT
、PATCH
リクエストにはペイロードを追加できます。
リクエストのプロキシ
URL 取得サービスは、HTTP/1.1 互換のプロキシを使用して結果を取得することに注意してください。
アプリケーションがリクエストを無限に繰り返さないようにするため、リクエスト ハンドラは自分自身の URL を取得することはできません。他の方法でも無限に再帰する可能性はあります。ユーザーが指定した URL に対するリクエストをアプリケーションで取得する場合には注意してください。
リクエスト ヘッダー
アプリケーションで送信リクエストに HTTP ヘッダーを設定できます。
たとえば、HTTP POST
リクエストを送信するときに、Content-Type
ヘッダーを明示的に設定しないと、ヘッダーは x-www-form-urlencoded
に設定されます。これは、ウェブフォームで使用されるコンテンツ タイプです。
セキュリティ上の理由から、アプリケーションで次のヘッダーを変更することはできません。
Content-Length
Host
Vary
Via
X-Appengine-Inbound-Appid
X-Forwarded-For
X-ProxyUser-IP
これらのヘッダーには、必要に応じて App Engine が適切な値を設定します。たとえば、App Engine はリクエスト データから Content-Length
ヘッダーを計算し、その結果をリクエストに追加してから送信します。
次のヘッダーは、リクエスト側のアプリのアプリケーション ID を表します。
User-Agent
。このヘッダーは変更可能ですが、サーバーが App Engine のリクエストを識別できるように App Engine が ID 文字列を追加します。追加される文字列の形式は"AppEngine-Google; (+http://code.google.com/appengine; appid: APPID)"
で、APPID
はアプリの識別子です。X-Appengine-Inbound-Appid
。このヘッダーは変更できません。リクエストが URL 取得サービス経由で送信されたときに、自動的に追加されます。
リクエストのタイムアウト
リクエストの期限(タイムアウト)を設定できます。リクエストのデフォルトのタイムアウトは 10 秒に設定されています。
安全な接続と HTTPS
アプリケーションで、HTTPS を使用して安全なサーバーに接続し、URL を取得することもできます。リクエストとレスポンスのデータは暗号化され、ネットワーク上で送受信されます。
レスポンス
URL Fetch API を使用する場合、URL 取得サービスは、レスポンス コード、ヘッダー、本文を含むすべてのレスポンス データを返すことに注意してください。
デフォルトでは、URL 取得サービスがリダイレクト コードを含むレスポンスを受信すると、サービスがリダイレクトします。サービスは、最大 5 つまでのリダイレクト レスポンスに対応し、最後のリソースを返します。
開発用サーバーでの URL 取得の使用
パソコン上の App Engine 開発用サーバーでアプリケーションを実行している場合、URL 取得サービスに対する呼び出しはローカルで処理されます。開発用サーバーは、パソコンからリモートホストに直接接続して URL を取得します。この場合、パソコンのネットワーク接続を使用してインターネットにアクセスします。
URL を取得するアプリケーションの機能をテストする場合、パソコンからリモートホストにアクセスします。
URL 取得の割り当てと制限
URL 取得サービスの割り当てについては、割り当てをご覧ください。アプリケーションの現在の割り当て使用量を確認するには、Google Cloud Console の割り当ての詳細ページに移動します。
また、URL 取得サービスの使用には、以下の制限も適用されます。
Limit | Amount |
---|---|
Request size | 10 megabytes |
Request header size | 16 KB (Note that this limits the maximum length of the URL that can be specified in the header) |
Response size | 32 megabytes |
Maximum deadline (request handler) | 60 seconds |
Maximum deadline (Task Queue and cron job handler) | 60 seconds |