AddHeader メソッドは、指定された値を持つ HTML ヘッダーを追加します。このメソッドは常に新しい HTTP ヘッダーを応答に追加します。同じ名前の既存のヘッダーは置き換えません。いったん追加されたヘッダーは削除できません。
このメソッドは詳細な設定を行う必要がある場合にだけ使ってください。別の Response メソッドで同じ機能が実現できる場合にはそのメソッドを使うようにしてください。
Response.AddHeader name, value
name
新しいヘッダー変数の名前です。
注意 あいまいな名前の指定を避けるために、name にはアンダスコア (_) 文字を含めないでください。ServerVariables は、ヘッダー名の中のアンダスコアをダッシュ記号として解釈します。たとえば、次のスクリプトではサーバーは MY-HEADER という名前のヘッダーを探します。
<% Request.ServerVariables("HTTP_MY_HEADER") %>
value
新しいヘッダー変数に格納される初期値です。
HTTP プロトコルではコンテンツの前にヘッダーをすべて送信する必要があるため、スクリプトでは必ず出力 (HTML コードや Write メソッドによって生成される出力) をクライアントに送信する前に AddHeader を呼び出してください。 ただし、Buffer プロパティを TRUE に設定して出力をバッファに格納している場合は、Flush の前であればどこでも AddHeader を呼び出すことができます。Flush の後に AddHeader を呼び出した場合はランダイム エラーになります。
以上のスクリプトの例を次の 2 つの .asp ファイルに示します。
-------file1.asp---------
<% Response.AddHeader "WARNING", "エラー メッセージのテキスト" %>
<HTML>
Web ページ上のテキスト
</HTML>
この例ではページはバッファに格納されていませんが、サーバーに次の出力を送信する前に AddHeader を呼び出しているので、スクリプトは正常に動作します。
Some text on the Web page
仮にこの順序が逆であると、AddHeader 呼び出しの時点でライタイム エラーになります。
------file2.asp----------
<% Response.Buffer = TRUE %>
<HTML>
ここには Web ページ上のテキストがあります。
<% Response.AddHeader "WARNING", "Error Message Text" %> ここにはもっと魅力のある面白いテキストがあります。
<% Response.Flush %>
<%= Response.Write("何らかの文字列") %>
</HTML>
この例ではページがバッファに格納されているため、ページ上の ASP スクリプトがすべて処理されるか、または Flush メソッドが呼び出されるまで、サーバーは出力をクライアントに送信しません。バッファ付き出力を使えば、Flush 呼び出しの前であればスクリプト内のどこでも AddHeader 呼び出しを記述できます。仮に AddHeader 呼び出しを Flush 呼び出しの後に記述した場合は、ライタイム エラーになります。
この方法を使うと、同じヘッダーの複数のコピーを "WWW-Authenticate" ヘッダーのように異なる値で送信することができます。
次の例は、AddHeader メソッドを使ってクライアントが基本認証を使用するように要求します。
<% Response.Addheader "WWW-Authenticate", "BASIC" %>
注意 上のスクリプトは、クライアント ブラウザに単に使用する認証を通知するだけです。自分の Web アプリケーションでこのスクリプトを使う場合は、Web サーバーで基本認証が有効になっていることを確認してください。