4. メソッド

 本プロトコルで使用可能なメソッドについて記述する。尚、本文中のリクエストライン、ステータスライン、オブジェクトヘッダについては3章を参照。

4.1 GETHANDLEメソッド

 GETHANDLEメソッドはクライアントがサーバに対しハンドルを要求するメソッドである。

4.1.1 リクエスト

4.1.1.1 Request-Line

        Request-Line    =       Method SP Handle SP Frame SP CATP-Version SP 
                                Request-Code SP Request-Phrase CRLF

 (1) Method

        Method          =       "GETHANDLE"

 (2) Handle

 ハンドルには10桁の任意の数字を指定する。但し、このハンドルの値はサーバにて参照されない。

 (3) Frame

 フレームには3桁の任意の数字を指定する。但し、このフレームの値はサーバにて参照されない。

 (4) CATP-Version

 クライアントがサポートしている最新のCATPバージョンを指定する。

 (5) Request-Code

 リクエストコードは、リクエストを表すコードである数字3桁の0を指定する。

        Request-Code    =       "000"   ; 数字3桁の0

 (6) Request-Phrase

 リクエストの説明句として、下記のトークンを指定する。

        Request-Phrase  =       "REQUEST"

4.1.1.2 Request-Header

 リクエストヘッダにはユーザの認証情報を記述する。
        Request-Header  =       Authetication-info

 (1) Authetication-info

 クライアントに対するユーザの認証情報を指定する。

        Authetication-info      =       "Authenticate" ":" Authenticate CRLF
        Authenticate            =       text

4.1.1.3 Object-Header

 (1) Content-Length

 本メソッドはオブジェクトボディを必要としないため、Content-Lengthに0を指定する。

 (2) Encoding

 オブジェクトボディのエンコーディング方式を指定する。本メソッドでは省略しても良い。

4.1.1.4 Object-Body

 本メソッドはオブジェクトボディを必要としない。


4.1.2 レスポンス

4.1.2.1 Status-Line

        Status-Line     =       Method SP Handle SP Frame SP CATP-Version SP 
                                Status-Code SP Reason-Phrase CRLF

 (1) Method

 メソッドはクライアントがリクエストラインに指定したメソッドと同じものを指定する。

 (2) Handle

 ステータスコードが成功を意味する場合、サーバで割り当てたハンドルを指定する。この場合、クライアントは以降のリクエスト(GETHANDLE以外)でこのハンドルをリクエストラインに指定する必要がある。ステータスコードが成功以外の場合、本値は意味を持たない。

 (3) Frame

 ステータスコードが成功を意味する場合、サーバで割り当てたフレームを指定する。

 (4) CATP-Version

 CATPバージョンは、サーバで使用されるプロトコールのバージョンを指定する。クライアントがリクエストラインで指定したCATPバージョンが、サーバがサポートしているバージョンよりも古い場合、サーバはそのバージョンをサポートしていることが望まれる。その場合クライアント指定のCATPバージョンをステータスラインに指定する。

 (5) Status-CodeとReason-Phrase

 サーバでのリクエストに対する処理結果を意味する。各コードの詳細並びにReason-Phraseはサーバの実装による。

  1. 2xx     :       成功
     本メソッドがサーバにおいて正常に処理されたことを意味する。この場合、ステータスラインのハンドル並びにフレームは有効であり、以降のリクエストで使用可能であることを意味する。
  2.  4xx    :       クライアントエラー
     リクエストに間違った構文があるか、または実行がもともと不可能であることを意味する。この場合、ステータスラインのハンドル並びにフレームは無効であり、以降のリクエストで使用できないことを意味する。
  3. 5xx     :       サーバエラー
     サーバはリクエストを遂行できなかったことを意味する。この場合、ステータスラインのハンドル並びにフレームは無効であり、以降のリクエストで使用できないことを意味する。

4.1.2.2 Response-Header

        GetHandle-Response-Header       =       [Support-method-info]

 (1) Support-method-info

 サーバで実装している本プロトコルのメソッドを指定する。本フィールドが省略された場合、ステータスラインのCATPバージョンで示されるプロトコルバージョンのすべてのメソッドを実装していることを意味する。

        Support-method-info     =       "Support-method" ":" Support-method CRLF
        Support-method          =       1#method        ; methodは3.2(1)のMethod参照

4.1.2.3 Object-Header

 (1) Content-Length

 オブジェクトボディに診断メッセージが存在する場合、そのレングスを指定する。存在しない場合は0を指定する。

 (2) Encoding

 オブジェクトボディのエンコーディング方式を指定する。オブジェクトボディが存在しない場合は省略しても良い。

4.1.2.4 Object-Body

 ステータスコードが正常以外の場合に診断メッセージを指定することができる。