AddHeader

AddHeader メソッドは、クライアントへ送信する応答に新しい HTML ヘッダーと値を追加します。同じ名前の既存のヘッダーは置き換えません。いったん追加されたヘッダーは削除できません。

構文

Response.AddHeader HeaderName, HeaderValue

 

パラメータ
HeaderName
新しいヘッダーの名前を指定する文字列です。
HeaderValue
新しいヘッダーの初期値を指定する文字列です。

以降の要求で応答ヘッダーをサーバーに返信するようにクライアントが構成されている場合、Request.ServerVariables を使用してカスタム ヘッダー値を取得できます。カスタム ヘッダー名には、"HTTP_" が先頭に付加されます。たとえば、次のコードでヘッダーを追加したとします。

<% Response.AddHeader "CustomHeader", "CustomValue" %>

次のコードにより、特定のクライアントが次回の要求でサーバーにヘッダーを返信すると、そのヘッダーを取得できます。

<% ReturnedValue = Request.ServerVariables("HTTP_CustomHeader") %>

名前があいまいになるのを避けるために、HeaderName にはアンダスコア (_) 文字を含めないでください。ServerVariables コレクションは、ヘッダー名の中のアンダスコアをダッシュ記号として解釈します。たとえば、次のスクリプトでは、サーバーは MY-HEADER という名前のヘッダーを探します。

<% Request.ServerVariables("HTTP_MY_HEADER") %>

Response オブジェクトの別のメソッドで同じ機能が実現できる場合は、そのメソッドを使用するようにしてください。たとえば、カスタム値を送信し、クライアント側の構成に依存することなく以降の要求で Web アプリケーションにその値を返信させるには、Response.Cookies および Request.Cookies を使用できます。あるいは、Response.CacheControl を使用して、応答にキャッシュ制御を設定することもできます。

HTTP プロトコルではコンテンツの前にヘッダーをすべて送信する必要があるため、ASP スクリプトが出力を生成する前に、送信されるすべてのヘッダーを変更する必要があります。IIS 4.0 の場合は、出力 (HTML コードや Write メソッドによって生成される出力) をクライアントに送信する前に、スクリプトで AddHeader を呼び出す必要があります。IIS 5.0 以降では、応答のバッファ処理が既定でオンになっています。このため、AddHeader メソッドは、Flush を呼び出す前であれば、スクリプトの任意の場所で呼び出すことができます。応答のバッファ処理を有効または無効にするには、AspBufferingOn メタベース プロパティを設定するか、ASP スクリプトで Response.Buffer を呼び出します。

以上のスクリプトの例を次の .asp ファイルに示します。

<HTML>
Here's some text on your Web page.
' This header tells proxy servers using HTTP/1.0 not to cache this request.
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Flush %> 
<% Response.Write("Pragma is set to no-cache") %> 
</HTML>

この例では、ページは既定でバッファに格納されているため、ASP ページ上のスクリプトがすべて処理されるか、または Flush メソッドが呼び出されるまで、サーバーはクライアントに出力を送信しません。上の例で AddHeader を Flush の後で呼び出した場合は、ランタイム エラーが発生します。

AddHeader を使用すると、WWW-Authenticate ヘッダーなどで、同じヘッダーの複数のコピーを値を変えて送信することができます。次の例は、AddHeader メソッドを使用して、クライアントが基本認証を使用するように要求します。

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

上のスクリプトは、使用する認証の種類をクライアント ブラウザに通知するだけです。アプリケーションで基本認証を有効にすることを Web サーバーに通知するものではありません。

対象

Response オブジェクト

関連項目

FlushWriteBuffer


© 1997-2001 Microsoft Corporation.All rights reserved.