What does the protocol specify?
grammar, character sets, content coding
data types: entity, resource, message
request methods and response codes
headers: general, request, response, entity
requirements for clients, proxies and servers
caching needs, content negotiation and security considerations (RFC 2617)