HTTP는 클라이언트와 서버 간에 요청(request)과 응답(response)을 주고 받음으로써 동작한다. 클라이언트는 HTTP 요청 메시지를 생성하여 서버에 전송하고, 서버는 이 요청에 대한 적절한 HTTP 응답 메시지를 생성하여 클라이언트에 전송한다.
많은 발전을 거듭하여 HTML과 같은 하이퍼텍스트 문서뿐만 아니라, 이미지 비디어같은 미디어 컨텐츠, HTML form과 같은 POST 요청에도 사용한다.
요청과 응답 사이에는 여러가지 개체들이 있는데, 여러 가지 작업을 수행하는 gateway, 캐시 역할을 해주는 proxy 등이 있다.
HTTP는 캐시, origin, 쿠키 등을 이용한 인증, 프록시, 세션 등을 제어할 수 있다.
HTTP를 기반으로 한 XMLHttpRequest API와 Fetch API가 통신에 사용된다. EventSource 인터페이스에 기반한 SSE(Server Send Event)도 사용한다.
HTTP는 기본적으로 HTML과 같은 문서 리소스를 가져올 수 있도록 하는 프로토콜 이다. TCP/IP 프로토콜 위에서 동작하며, 웹 브라우저와 웹 서버 사이에서 이루어지는 모든 통신에 HTTP가 사용된다.