Hooks and Transactions

フックは Traffic Server のトランザクション処理内のプラグインが介入して処理を行えるポイントです。プラグインのコールバック関数を登録することでフックへ関数を "追加" します。関数を全てのトランザクション、もしくは特定のトランザクションでのみコールバックされるように登録できます。

この章には次の節があります。

Hooks

フックとトランザクションを理解するため、下記の専門用語を知る必要があります。

HTTP トランザクション

トランザクション は、クライアントからの単一の HTTP リクエストと Traffic Server がクライアントに送信するレスポンスから成立します。従って、トランザクションは Traffic Server がリクエストを受け取った際に開始し、 Traffic Server がレスポンスを送信する際に終了します。

Traffic Server はトランザクションの処理に HTTP ステートマシン を使用します。ステートマシンは洗練されたキャッシュとドキュメント検索に伴う(例えば、代替の選択、フレッシュネスの判定基準、階層的キャッシュを考慮した)複雑な状態のセットに従います。 HTTP トランザクションの状態遷移図 以下で図示しているように、 Traffic Server API はこれらの状態のサブセットへのフックを提供します。

Transform Hooks

2 つの トランスフォームフックTS_HTTP_REQUEST_TRANSFORM_HOOK``TS_HTTP_RESPONSE_TRANSFORM_HOOK``は HTTP トランスフォームの過程で呼び出されます。 HTTP トランザクションの中でこれらが呼び出される場所を確認するには、 HTTP トランザクションの状態遷移図 以下の "set up transform" の楕円を見てください。

The transform hooks can also be triggered on bytes passed for a tunneled connection. In that case the TS_HTTP_REQUEST_TRANSFORM_HOOK and the TS_HTTP_RESPONSE_TRANSFORM_HOOK should be set from a plugin triggered on the TS_HTTP_TUNNEL_START_HOOK. The TS_HTTP_REQUEST_TRANFORM_HOOK will cause IO events to trigger for bytes moving from the user agent to the origin server. The TS_HTTP_RESPONSE_TRANSFORM_HOOK will cause IO events to trigger for bytes moving from the origin server to the user agent.

HTTP Session

セッション は、 Traffic Server への一つのクライアントコネクションから成立します。これは一つまたは幾つかの連続したトランザクションから成立できます。セッションはクライアントコネクションを open する際に開始し、コネクションを close する際に終了します。

HTTP トランザクションの状態遷移図

HTTP Transaction State Diagram

HTTP Transaction Timers

For an overview of HTTP transaction timers, refer to the transaction timer diagram below.