すべてのプロダクト
Search
ドキュメントセンター

Edge Security Acceleration:レスポンスヘッダーの変更

最終更新日:Apr 22, 2025

コンテンツの最適化とキャッシュ制御、セキュリティの強化、パフォーマンスの最適化などのシナリオで、レスポンスヘッダーを変更できます。このトピックでは、この機能を理解するのに役立つ簡単な例を示します。

  • 期待される結果: クライアントが Edge Routine にリクエストを送信すると、クライアントではなく Edge Routine がサードパーティの Web サイトにリクエストを送信します。レスポンスを受信した後、Edge Routine はレスポンスヘッダーに対して、フィールドの追加、削除、変更などの一連のカスタム操作を実行し、変更されたレスポンスをクライアントに返します。

  • 言語タイプ: Javascript

  • サンプルコード:

    /**
     * このサンプルは、Edge Routine がサードパーティの Web サイトリソースを取得し、レスポンスヘッダーを変更してから、変更されたレスポンスヘッダーをクライアントに返すことを示しています。
     * テスト中は、URL を独自の URL に置き換えてください。
     */
    // リクエストされるサードパーティ Web サイトの URL を定義します。
    const url = "https://aliyun.com"
    
    // リクエストを処理するために handleRequest という名前の非同期関数を定義します。
    async function handleRequest(request) {
      // fetch 関数を使用して、サードパーティの Web サイトへのリクエストを開始し、レスポンスを取得します。
      const response = await fetch(url)
    
      // 新しいレスポンスオブジェクトを作成し、レスポンスの本文のみをコピーします。
      // response.body を新しいレスポンスの本文として使用し、既存のレスポンスステータスとヘッダー情報を保持します。
      const newResponse = new Response(response.body, response)
    
      // 「custom-ER-add」という名前のカスタムレスポンスヘッダーを追加し、値を「ER header」に設定します。
      newResponse.headers.append("custom-ER-add", "ER header")
    
      // 「custom-ER-delete」という名前のカスタムレスポンスヘッダーを削除します。
      newResponse.headers.delete("custom-ER-delete")
    
      // 「custom-ER-reset」という名前のカスタムレスポンスヘッダーの値を「ER header」に変更します。
      newResponse.headers.set("custom-ER-reset", "ER header")
    
      // 変更されたレスポンスを返します。
      return newResponse
    }
    
    // Edge Routine の標準 API であるデフォルトの fetch 関数をエクスポートします。
    export default {
      fetch(request) {
        // handleRequest 関数を呼び出して、リクエストを処理します。
        return handleRequest(request)
      }
    }

デプロイ結果

  • クライアントの元のレスポンスヘッダー:

    クライアントの次のレスポンスヘッダーを例として使用します。

    # クライアントの元のレスポンスヘッダー
    # レスポンスコンテンツタイプは HTML 形式で、エンコーディングには UTF-8 が使用されます。
    Content-Type: text/html; charset=UTF-8
    # レスポンス本文の長さは 1,234 バイトです。
    Content-Length: 1234
    # サーバーソフトウェアは Apache です。
    Server: Apache
    # カスタムレスポンスヘッダーを追加し、値を「original-value」に設定します。ヘッダーは削除される場合があります。
    custom-ER-delete: original-value
    # カスタムレスポンスヘッダーを追加し、値を「original-value」に設定します。ヘッダーは変更される場合があります。
    custom-ER-reset: original-value
  • レスポンスヘッダーの変更:

    レスポンスヘッダーに関する情報の追加、削除、変更を行います。

    • 追加custom-ER-addフィールド

      custom-ER-add フィールドを元のレスポンスヘッダーに追加します。

      Content-Type: text/html; charset=UTF-8
      Content-Length: 1234
      Server: Apache
      custom-ER-delete: original-value
      custom-ER-reset: original-value
      custom-ER-add: ER header
    • 削除するカスタム ER 削除フィールド

      custom-ER-add フィールドが追加された後、custom-ER-delete フィールドをレスポンスヘッダーから削除します。

      Content-Type: text/html; charset=UTF-8
      Content-Length: 1234
      Server: Apache
      custom-ER-reset: original-value
      custom-ER-add: ER header
    • 変更するcustom-ER-resetフィールド

      custom-ER-delete フィールドが削除された後、custom-ER-reset フィールドを変更します。

      Content-Type: text/html; charset=UTF-8
      Content-Length: 1234
      Server: Apache
      custom-ER-add: ER header
      custom-ER-reset: ER header
  • クライアントが受信するレスポンスヘッダー:

    Content-Type: text/html; charset=UTF-8
    Content-Length: 1234
    Server: Apache
    custom-ER-add: ER header
    custom-ER-reset: ER header