WEB WRITE HTTPHEADER
ビルド HTTP ヘッダー情報
構文
条件: INVREQ、LENGERR、NOTOPEN
このコマンドはスレッド・セーフです。
NOHANDLE、RESP、RESP2は、エラー状態を処理するためにすべてのEXEC CICSコマンドに追加できる共通のオプションです。 これらはコマンド構文図やオプションの説明には明示的に含まれていない。 これらの共通オプションとEXEC CICSコマンドの構文については、EXEC CICSコマンドのフォーマットとプログラミング上の注意点を参照のこと。
説明
WEB WRITE HTTPHEADER を使用すると、アプリケーションからメッセージに HTTP ヘッダー情報を追加することができます。 CICS® HTTP である場合、メッセージはWebクライアントへの応答となります。 CICS が HTTPの場合、メッセージはサーバーへのリクエストとなり、SESSTOKENオプションが指定されます。
- ARM 相関関係子
- 接続
- Content-Type (CICS によって書き込まれるが、複合ヘッダーが必要な場合はクライアント・アプリケーションで提供可能)
- Content-Length
- Date
- Expect
- Host
- サーバー(自動作成はシステム初期化パラメーターHTTPSERVERHDRによる)
- TE (CICS によって書き込まれるが、インスタンスを追加することが可能)
- Transfer-Encoding
- User-Agent(自動生成はシステム初期化パラメータHTTPUSRAGENTHDRに依存する)
- WWW 認証
- 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/1.1 レベルより前のサーバーまたはクライアントでは正常に処理されない可能性があるアクションをヘッダーを使用して要求する場合で、そのアクションが正常に実行されるかどうかを確認する必要がある場合は、HTTPVERSION オプションを指定した WEB EXTRACT コマンドを使用して、サーバーの HTTP バージョンを調べます。
HTTPとして CICS を使用する場合、サーバーへの最初の要求でTrailerヘッダー(チャンクメッセージで使用)を記述し、セッションの WEB OPEN コマンドでHTTPVNUMおよびHTTPRNUMオプションを指定していない場合、 CICSはサーバー HTTPをチェックするためにOPTIONSメソッドを使用して要求を行います。 この追加の要求は、Trailer ヘッダーの場合にのみ作成されます。
サーバーまたは Web クライアントとの接続が、要求または応答でいずれかの通話者から Connection: close ヘッダーが送信されたことによって閉じられた場合、WEB WRITE HTTPHEADER コマンドを使用することはできません。
- HTTP サーバーとしての CICS によって送信される HTTP 応答のヘッダーを書き込む場合は、 「応答の HTTP ヘッダーの書き込み」を参照してください。
- CICS が HTTP クライアントとして送信する HTTP 要求のヘッダーを書き込む場合は、 CICSをHTTP クライアントとして介して HTTP 要求を行う」 を参照してください。
- チャンク転送コーディングを使用して HTTP 要求または応答を送信する場合は、 「チャンク転送コーディングを使用した HTTP 要求または応答の送信」を参照してください。 このトピックでは、チャンク化済みメッセージの末尾ヘッダーの正しい書き込み手順について説明します。
オプション
- 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
- セッション・トークンが無効です。
