Request-Line = Method SP Handle SP Frame SP CATP-Version SP Request-Code SP Request-Phrase CRLF
(1) Method
Method = "RETRIEVE"
(2) Handle
GETHANDLEリクエストによって取得したハンドルを指定する。
(3) Frame
SEARCHまたはSCANリクエストで指定したフレームを指定する。
(4) CATP-Version
クライアントがサポートしている最新のCATPバージョンを指定する。
(5) Request-Code
リクエストコードは、リクエストを表すコードである数字3桁の0を指定する。
Request-Code = "000" ; 数字3桁の0
(6) Request-Phrase
リクエストの説明句として、下記のトークンを指定する。
Request-Phrase = "REQUEST"
Request-Header = Result-set-start-position Number-of-records-requested [Element-set-names]
(1) Result-set-start-position
フレームにバンドルされている検索結果集合内の相対位置を指定する。サーバは本値からNumber-of-records-requested分に対応するデータベースレコードをデータベースから取得しレスポンスとして返す。
Result-set-start-position = "Result-set-start-position" ":" 1*DIGIT CRLF
(2) Number-of-records-requested
フレームにバンドルされている検索結果集合内の相対位置からの要求件数を指定する。
Number-of-records-requested = "Number-of-records-requested" ":" 1*DIGIT CRLF
(3) Element-set-names
データベースレコードの編集形式を指定する。
Element-set-names = "Element-set-names" ":" Edit-type CRLF Edit-type = 1DIGIT
尚、Edit-typeと編集形式の対応は、サーバの実装による。
本メソッドはオブジェクトボディを必要としないため、Content-Lengthに0を指定する。
オブジェクトボディのエンコーディング方式を指定する。本メソッドでは省略しても良い。
本メソッドはオブジェクトボディを必要としない。
Status-Line = Method SP Handle SP Frame SP CATP-Version SP Status-Code SP Reason-Phrase CRLF
(1) Method
メソッドはクライアントがリクエストラインに指定したメソッドと同じものを指定する。
(2) Handle
ハンドルはクライアントがリクエストラインに指定したハンドルと同じものを指定する。
(3) Frame
フレームはクライアントがリクエストラインに指定したフレームと同じものを指定する。
(4) CATP-Version
CATPバージョンは、サーバで使用されるプロトコールのバージョンを指定する。クライアントがリクエストラインで指定したCATPバージョンが、サーバがサポートしているバージョンよりも古い場合、サーバはそのバージョンをサポートしていることが望まれる。その場合クライアント指定のCATPバージョンをステータスラインに指定する。
(5) Status-CodeとReason-Phrase
サーバでのリクエストに対する処理結果を意味する。各コードの詳細並びにReason-Phraseはサーバの実装による。
2xx : 成功本メソッドがサーバにおいて正常に処理されたことを意味する。
4xx : クライアントエラーリクエストに間違った構文があるか、実行がもともと不可能である。
5xx : サーバエラーサーバはリクエストを遂行できなかったことを意味する。
Response-Header = Number-of-records-returned Next-result-set-position
(1) Number-of-records-returned
オブジェクトボディ(Object-Body)に設定されたレコード数を指定する。
Number-of-records-returned = "Number-of-records-returned" ":" 1*DIGIT CRLF
(2) Next-result-set-position
検索結果集合内の次のポインタ
Next-result-set-position = "Next-result-set-position" ":" 1*DIGIT CRLF
(1) Content-Length
オブジェクトボディのレングスを指定する。
オブジェクトボディのエンコーディング方式を指定する。オブジェクトボディが存在しない場合は省略しても良い。
オブジェクトボディには、該当するデータベースレコードまたは診断レコードを設定する。データベースレコードの場合、その形式並びに設定されるレコード件数はRequest-Headerの各フィールドの指定に従う。また、複数レコードをオブジェクトボディに設定する場合は"multi-part"タイプ(3.5節参照)の処理方式に従う。
尚、下記の場合はオブジェクトボディ部にデータベースレコードは設定されない。
Object-Body = Diagnostic-record | Database-record Database-record = Record | Multi-record ; Multi-recordについては3.5節参照 Record = 1*DB-field DB-field = Field | Group-field ; 単一フィールドとグループフィールド Group-Field = Group-field-start 1*Field Group-field-end Group-field-start = "<" Group-name ">" CRLF Group-field-end = "</" [Group-name] ">" CRLF Group-name = token Field = Tag "=" Value CRLF Tag = token ; データベースのフィールドタグ Value = text