blob: b4014e53e7310c0ad84a46e3abf3a12416b1442e [file] [log] [blame]
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`