A protocol that upgrades an HTTP connection into a long-lived, two-way channel, so server and client can push messages any time.