Varnish glossary

Web caching terminology

  • Backend: The HTTP server varnishd is caching for. This can be any sort of device that handles HTTP requests, including, but not limited to: a web server, a CMS, a load balancer, another varnishd, etc.

  • Backend response: The response specifically served from a backend to varnishd. The backend response may be manipulated in vcl_backend_response.

  • Body: The bytes that make up the contents of the object, varnishd does not care if they are in HTML, XML, JPEG or even EBCDIC; to varnishd they are just bytes.

  • Client: The program that sends varnishd an HTTP request, typically a browser, but do not forget to think about spiders, robots, script-kiddies and criminals.

  • Cache: A collection of relevant data stored away for reuse.

  • Cookie: A cookie is not just a sweet biscuit anymore. Cookies are actually packets of data sent by the web server to a browser and stored there. It is later used to identify the user when he/she revisits the same server.

  • ESI: Edge Side Includes is a small markup language and helps in handling web infrastructure scaling.

  • Header: An HTTP protocol header, like “Accept-Encoding:”.

  • Hit: An object Varnish delivers from cache.

  • Hit rate: The rate at which Varnish delivers an object from cache.

  • HTTP: Hyper Text Transfer Protocol is an application protocol for hypermedia information systems.

  • HTTP2: HTTP2 is basically the same as HTTP1.1, the major difference being that HTTP2 can befriend new web applications by speeding up how data is framed (also secured) and transported between the client and the server.

  • Main (process): One of the two processes in the varnishd program. The main process is a manager/nanny process that handles configuration, parameters, compilation of VCL etc. but it never gets near actual HTTP traffic.

  • Miss: An object Varnish fetches from the backend before it is served to the client. The object may or may not be put in the cache; it depends on the content.

  • Object: The (possibly) cached version of a backend response. varnishd receives a response from the backend and creates an object, from which it may deliver cached responses to clients. If the object is created as a result of a request which is passed, it will not be stored for caching.

  • Pass: A pass is an object Varnish does not try to cache, but simply fetches from the backend and hands to the client.

  • Pipe: Varnish just moves the bytes between client and backend; it does not try to understand what they mean.

  • Request: What the client sends to varnishd and varnishd sends to the backend.

  • Response: What the backend returns to varnishd and varnishd returns to the client. When the response is stored in varnishd’s cache, we call it an object.

  • Timeout: A predefined interval of time that has expired.

  • Varnishd: (NB: with ‘d’) This is the actual Varnish cache program. There is only one program, but when you run it, you will get two processes: The “master” and the “worker” (or “child”).

  • Varnishlog: Program which presents Varnish transaction log in native format.

  • varnishncsa: Program which presents Varnish transaction log in “NCSA” format.

  • Varnishstat: Program which presents Varnish statistics counters.

  • Varnishtest: Program to test varnishd’s behavior with, it simulates backend and client according to test scripts.

  • Varnishtop: Program which gives real-time “top-X” list view of transaction log.

  • Web server: A web server is a machine that runs a software that uses HTTP (Hypertext Transfer Protocol) to serve the files in the form of web pages, in response to their requests, which are forwarded by their computers’ HTTP clients.

  • Worker (process): The worker process is started and configured by the master process. This is the process that does all the work you actually want Varnish to do. If the worker dies, the master will try start it again, to keep your website alive.

Varnish three-letter acronyms

You will find these acronyms used when you use any of our Varnish-related documentation, the main website, book, wiki, etc.

  • VAV: Varnish Arg Vector – Argv parsing.

  • VBE: Varnish backend – Code for contacting backends (bin/varnishd/cache_backend.c)

  • VBP: Varnish Backend Polling – Health checks of backends (bin/varnishd/cache_backend_poll.c)

  • VCA: Varnish Connection Acceptor – The code that receives/accepts the TCP connections (bin/varnishd/cache_acceptor.c)

  • VCC: VCL to C Compiler – The code that compiles VCL to C code. (lib/libvcl)

  • VCL: Varnish Configuration Language – The domain-specific programming language used for configuring a varnishd.

  • VCT: Varnish CType(3) – Character classification for RFC2616 and XML parsing.

  • VDD: Varnish (Core) Developer Day – Quarterly invite-only meeting strictly for Varnish core (C) developers, packagers and VMOD hackers.

  • VEV: Varnish EVent – library functions to implement a simple event dispatcher.

  • VGB: Varnish Governing Board – May or may not exist. If you need to ask, you are not on it.

  • VGC: Varnish Generated Code – Code generated by VCC from VCL.

  • VIN: Varnish Instance Naming – Resolution of -n arguments.

  • VLU: Varnish Line Up – library functions to collect stream of bytes into lines for processing. (lib/libvarnish/vlu.c)

  • VRE: Varnish Regular Expression – library functions for regular expression based matching and substring replacement. (lib/libvarnish/vre.c)

  • VRT: Varnish Run Time – functions called from compiled code. (bin/varnishd/cache_vrt.c)

  • VRY: VaRY – Related to processing of Vary: HTTP headers. (bin/varnishd/cache_vary.c)

  • VSL: Varnish shared memory Log – The log written into the shared memory segment for varnish{log,ncsa,top,hist} to see.

  • VSB: Varnish string buffer – a copy of the FreeBSD “sbuf” library, for safe string handling.

  • VSC: Varnish Statistics Counter – counters for various stats, exposed via varnishapi.

  • VSS: Varnish Session Stuff – library functions to wrap DNS/TCP. (lib/libvarnish/vss.c)

  • VTC: Varnish Test Code – a test-specification for the varnishtest program.

  • VTLA: Varnish three-letter acronym – No rule without an exception.

  • VUG: Varnish User Group meeting – Half-yearly event where the users and developers of Varnish Cache gather to share experiences and plan future development.

  • VWx: Varnish Waiter ‘x’ – A code module to monitor idle sessions.

  • VWE: Varnish Waiter Epoll – epoll(2) (linux) based waiter module.

  • VWK: Varnish Waiter Kqueue – kqueue(2) (freebsd) based waiter module.

  • VWP: Varnish Waiter Poll – poll(2) based waiter module.

  • VWS: Varnish Waiter Solaris – Solaris ports(2) based waiter module.