#
# cache.config
#
# Documentation:
#    https://docs.trafficserver.apache.org/en/latest/admin-guide/files/cache.config.en.html
#
# The purpose of this file is to alter caching parameters of
#   specific objects or sets of objects
#
# Each line consists of a set of tag value pairs.  The pairs
#   are in the format  <tag>=<value>
#
# Each line must include exactly one primary specifier
#
#   Primary destination specifiers are
#     dest_domain=
#     dest_host=
#     dest_ip=
#     url_regex=
#
#
# Lines may include any number of the secondary specifiers but
#    secondary specifiers may not be duplicated on the same line
#
#   Secondary specifiers are
#     port=
#     scheme=
#     prefix=
#     suffix=
#     method=
#     time=
#     src_ip=
#     internal={true,false}
#
# Each line must include exactly one cache directive
#   Cache directives are
#     action=never-cache
#     action=ignore-no-cache          (client & server no cache)
#     action=ignore-client-no-cache   (only client no cache)
#     action=ignore-server-no-cache   (only server no cache)
#     pin-in-cache=<time>
#     revalidate=<time>
#     ttl-in-cache=<time>             (force caching and expire after <time>)
#
# Each line may also contain various "tweaks" which adjust caching parameters.
#   Tweaks are
#     cache-responses-to-cookies=<value>
#       - Change the style of caching with regard to cookies. This effectively
#         overrides the configuration parameter
#           proxy.config.http.cache.cache_responses_to_cookies
#         and uses the same values with the same semantics. The override happens
#         only for requests that match.
#
# Examples
#
#  Revalidate all http objects from www.example.com after 2 hours
#    dest_domain=www.example.com   scheme=http  revalidate=2h
