WEB WRITE HTTPHEADER

ビルド HTTP ヘッダー情報

構文

WEB WRITE HTTPHEADER

構文図を読む視覚的構文図をスキップするWEBWRITEHTTPHEADER( data-area)NAMELENGTH( data-value)SESSTOKEN( data-value)VALUE( data-area)VALUELENGTH( data-value)

条件: INVREQ、LENGERR、NOTOPEN

このコマンドはスレッド・セーフです。

NOHANDLERESPRESP2は、エラー状態を処理するためにすべてのEXEC CICSコマンドに追加できる共通のオプションです。 これらはコマンド構文図やオプションの説明には明示的に含まれていない。 これらの共通オプションとEXEC CICSコマンドの構文については、EXEC CICSコマンドのフォーマットとプログラミング上の注意点を参照のこと。

説明

WEB WRITE HTTPHEADER を使用すると、アプリケーションからメッセージに HTTP ヘッダー情報を追加することができます。 CICS® HTTP である場合、メッセージはWebクライアントへの応答となります。 CICS が HTTPの場合、メッセージはサーバーへのリクエストとなり、SESSTOKENオプションが指定されます。

メッセージが要求する場合、 CICSによって自動的に作成される HTTP があり、アプリケーションがこれらのヘッダーを記述する必要はありません。 以下のような項目が示されます。
  • ARM 相関関係子
  • 接続
  • Content-Type (CICS によって書き込まれるが、複合ヘッダーが必要な場合はクライアント・アプリケーションで提供可能)
  • Content-Length
  • Date
  • Expect
  • Host
  • サーバー(自動作成はシステム初期化パラメーターHTTPSERVERHDRによる)
  • TE (CICS によって書き込まれるが、インスタンスを追加することが可能)
  • Transfer-Encoding
  • User-Agent(自動生成はシステム初期化パラメータHTTPUSRAGENTHDRに依存する)
  • WWW 認証
CICSのHTTP リファレンスでは、これらのヘッダーが作成される状況について説明しています。 ユーザー・アプリケーション・プログラムが CICS も生成するヘッダーを書き込む場合 CICSは状況に応じてこれを処理します
  • HTTPとしての CICS では、ヘッダーが応答に適切である場合、 CICSはそれを上書きせず、アプリケーションのバージョンを使用できるようにします。
  • HTTPとしての CICS の場合、リクエストに適切なヘッダーが指定されている場合、 CICSはアプリケーションがそれを書き込むことを許可せず、 WEB WRITE HTTPHEADER コマンドにエラー応答を返します。 例外は TE ヘッダーと Content-Type ヘッダーです。 アプリケーション・プログラムは、TE ヘッダーのインスタンスをさらに追加することができます。 必要なヘッダーにスペースまたは 56 を超える文字を含める必要があり、WEB SEND コマンドの MEDIATYPE オプションで指定できない場合、アプリケーション・プログラムは Content-Type ヘッダーを提供することもできます。
  • ヘッダがメッセージのタイプ(要求または応答)に対して通常適切でない場合、CICSは、すべてのユーザー定義ヘッダの場合と同様に、それを許可する。 この状態は、作業中の HTTP 仕様にメッセージが準拠している場合には発生しません。
  • WEB WRITE HTTPHEADER を使ってサーバーヘッダを書くと、CICS が提供するサーバーヘッダが HTTPSERVERHDR=NO パラメータによって抑制されていても、サーバーヘッダが提供されます。

WEB WRITE HTTPHEADER コマンドは単一ヘッダーを追加しますが、ユーザーはこのコマンドを繰り返して、さらにヘッダーを追加することができます。 要求または応答に対して既に記述したヘッダを記述する場合、CICSは、既存のヘッダに加えて新しいヘッダを要求または応答に追加する。

作成するヘッダーの名前と値、および、それらのヘッダーの作成を選択した状況が、作業中の HTTP 仕様の要件を満たしている必要があります。

注: HTTP に標準の英数字以外の文字が含まれている場合は、コードページ037で指定する必要があります。

HTTP/1.1 レベルより前のサーバーまたはクライアントでは正常に処理されない可能性があるアクションをヘッダーを使用して要求する場合で、そのアクションが正常に実行されるかどうかを確認する必要がある場合は、HTTPVERSION オプションを指定した WEB EXTRACT コマンドを使用して、サーバーの HTTP バージョンを調べます。

HTTPとして CICS を使用する場合、サーバーへの最初の要求でTrailerヘッダー(チャンクメッセージで使用)を記述し、セッションの WEB OPEN コマンドでHTTPVNUMおよびHTTPRNUMオプションを指定していない場合、 CICSはサーバー HTTPをチェックするためにOPTIONSメソッドを使用して要求を行います。 この追加の要求は、Trailer ヘッダーの場合にのみ作成されます。

サーバーまたは Web クライアントとの接続が、要求または応答でいずれかの通話者から Connection: close ヘッダーが送信されたことによって閉じられた場合、WEB WRITE HTTPHEADER コマンドを使用することはできません。

このコマンドの正しい使用方法については、以下を参照してください。

オプション

HTTPHEADER(data-area)
要求または応答に追加する HTTP ヘッダーの名前を使用します。 テキスト・ストリングである名前は、作業中の HTTP 仕様の標準に準拠する必要があります。
NAMELENGTH(データ値)
HTTP ヘッダー名の長さをフルワード・バイナリー値として指定します。
SESSTOKEN(データ値)
HTTPとしての CICS では、このオプションは必須です。 これは CICS とサーバー間の接続を一意に識別する8バイトのバイナリ値であるセッショントークンを指定します。 この値は HTTPとして CICS に対するWEB OPENコマンドによって返されます。 セッション・トークンは、セッション・トークンの使い方を説明しています。
VALUE(data-area)
名前付きの HTTP ヘッダーの値を指定します。 テキスト・ストリングである値は、作業中の HTTP 仕様の標準に準拠する必要があります。
VALUELENGTH(データ値)
HTTP ヘッダー値の長さを、フルワード・バイナリー値で指定します。

条件

16 INVREQ
RESP2 の値は次のとおりです。
1
コマンドが、非 CICS Web サポート・アプリケーションで発行されている。
6
クライアントが要求で TE: トレーラーを送信しなかっため、末尾ヘッダーを使用することはできません。
19
ヘッダーは許可されていません。 リクエスト・ヘッダの中には、CICSによってのみ生成されるものもあります。
44
末尾ヘッダー (トレーラー) は許可されていません。
69
チャンク転送コーディングはサポートされていません。
70
トレーラー・ヘッダーが作成されていないため、末尾ヘッダーを書き込むことができません。
71
チャンク転送コーディングのエラー。
74
前回の送信に失敗しています。
78
このメッセージに末尾ヘッダーを書き込むタイミングが遅すぎます。
22 LENGERR
RESP2 の値は次のとおりです。
35
NAMELENGTH の長さが 0 以下です。
55
VALUELENGTH の長さが 0 以下または 32000 より大です。
19 NOTOPEN
RESP2 の値は次のとおりです。
27
セッション・トークンが無効です。