AddHeader

(PWS4 IIS4 IIS5)
AddHeader — HTML ヘッダー name を value に設定します。

Response.AddHeader name,value

パラメータ
name 新しいヘッダー変数の名前です。
Value 新しいヘッダー変数に格納される初期値です。

説明

AddHeader メソッドは、指定された値を持つ HTML ヘッダーを追加します。このメソッドは、常に新しい HTTP ヘッダーを応答に追加します。同じ名前の既存のヘッダーは置き換えません。いったん追加されたヘッダーは削除できません。
Response オブジェクトの別のメソッドで同じ機能が実現できる場合は、そのメソッドを使用するようにしてください。

名前があいまいになるのを避けるために、name にはアンダスコア (_) 文字を含めないでください。ServerVariables コレクションは、ヘッダー名の中のアンダスコアをダッシュ記号として解釈します。たとえば、次のスクリプトでは、サーバーは MY-HEADER という名前のヘッダーを探します。
<% Request.ServerVariables("HTTP_MY_HEADER") %>
HTTP プロトコルではコンテンツの前にヘッダーをすべて送信する必要があるため、通常、ASP スクリプトが出力を生成する前に、送信されるすべてのヘッダーを変更する必要があります。IIS 4.0 の場合は、出力 (HTML コードや Write メソッドによって生成される出力) をクライアントに送信する前にスクリプトで AddHeader を呼び出す必要があります。
ただし、IIS 5.0 の場合は、(メタベース プロパティ AspBufferingOn によって有効にされた) 応答のバッファ処理が既定でオンになっています。次に AddHeader メソッドを呼び出します。AddHeader メソッドは、Flush を呼び出す前であれば、任意の場所で呼び出すことができます。
以上のスクリプトの例を次の .asp ファイルに示します。

例1.AddHeaderの例

1
2
3
4
5
6
<html>
Here's some text on your Web page.
<% Response.AddHeader "WARNING", "Error Message Text" %>
<% Response.Flush %>
<% Response.Write("some string") %>
</html>

この例では、ページは既定でバッファに格納されているため、ASP ページ上のスクリプトがすべて処理されるか、または Flush メソッドが呼び出されるまで、サーバーはクライアントに出力を送信しません。出力をバッファする場合は、Flush を呼び出す前であればスクリプト内の任意の場所に AddHeader の呼び出しを記述できます。上の例で AddHeader を Flush の後で呼び出した場合は、ランタイム エラーが発生します。
この方法を使用すると、WWW-Authenticate ヘッダーなどで、同じヘッダーの複数のコピーを値を変えて送信することができます。

次の例は、AddHeader メソッドを使用して、クライアントが基本認証を使用するように要求します。

1
<% Response.Addheader "WWW-Authenticate", "BASIC" %>

注 上のスクリプトは、使用する認証をクライアント ブラウザに通知するだけです。Web アプリケーションでこのスクリプトを使用する場合は、Web サーバーで基本認証が有効になっていることを確認してください。

Flush、Write、Buffer も参照ください。