HTTP is an application-level protocol for transmitting hypermedia documents across the internet. It uses a client-server model with requests containing a method, URL, and protocol version, and responses containing a status line and headers along with an optional body. Common methods include GET, POST, and HEAD. HTTP is stateless but can be made stateful through mechanisms like cookies.