X11
X11 (or X, or X Windowing System) is a server and protocol for rendering desktop environments.
The X server can handle inputs from the Linux kernel, and outputs rasters to be rendered on a display.
It was initially released in June 1984, prior to the founding of the X.Org Foundation in 2004.
Terminology
See here for the X11 server display protocol diagram on Wikipedia.
For a full end-to-end explanation of the X11 protocol, see the Wayland documentation 😛.
X server
Handles peripheral input and graphical output from the Linux kernel.
The X.Org server is an X server.
X Client
Refers to a program running inside X11. It will receive events from the X server and determine on its own what to do with that.
Clients are able to send events back through the X server for doing things like window resizing, positioning, opening new programs, etc.
Most graphical programs, like Firefox, are X Clients.
Window manager
A specific kind of X client which runs a desktop environment, and focuses on handling windows for other programs.
i3wm is a window manager. It is specifically NOT a compositing window manager.
Compositor
Not to be confused with a Wayland compositor.
A compositor is like a post-processor which renders windows in a separate, off screen buffer, which the compositor then renders itself and writes into video memory.
This is distinct from how X11 normally renders, where overlapping windows will not render at all.
This allows compositors to support things like window transparency, blurs, fancy effects, etc.