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 Timers¶
For an overview of HTTP transaction timers, refer to the transaction timer diagram below.