| HTTP Sessions |
| ************* |
| |
| .. Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| An **HTTP session** is an object that is defined for the lifetime of a |
| client's TCP session. The Traffic Server API enables you to add a global |
| hook to the start or end of an HTTP session, as well as add session |
| hooks that call back your plugin for every transaction within a given |
| session. When a client connects to Traffic Server, it opens up a TCP |
| connection and sends one or more HTTP requests. An individual request |
| and its response comprise the HTTP transaction. The **HTTP session** |
| begins when the client opens the connection and ends when the connection |
| closes. |
| |
| The HTTP session hooks are: |
| |
| - ``TS_HTTP_SSN_START_HOOK`` Called when an HTTP session is started (a |
| session starts when a client connects to Traffic Server). This hook |
| must be added as a global hook. |
| |
| - ``TS_HTTP_SSN_CLOSE_HOOK`` Called when an HTTP session ends (a |
| session ends when the client connection is closed). This hook must be |
| added as a global hook. |
| |
| Use the session hooks to get a handle to a session (an ``TSHttpSsn`` |
| object). If you want your plugin to be called back for each transaction |
| within the session, then use ``TSHttpSsnHookAdd``. |
| |
| **Note:** you must reenable the session with ``TSHttpSsnReenable`` after |
| processing a session hook. |
| |
| The session hook functions are listed below: |
| |
| - :c:func:`TSHttpSsnHookAdd` |
| - :c:func:`TSHttpSsnReenable` |
| |