= HTTP representation
{c}
An <HTTP representation> consists of data and metadata describing a selected state or form of a resource. It is the information transferred or referenced to express that resource, rather than the resource identifier itself. A resource can have more than one available representation.<HTTP Semantics>[§3.2, Representations]{ref}
For an invented `/color` resource, one representation is the plain-text bytes `blue` with type `text/plain`. Another is an <HTML> document displaying the same color information, with type `text/html`. The underlying application value can agree while the bytes and <media types> differ. <HTTP content negotiation> can help select among available representations according to request information.
An <HTTP response> also contains control information about the exchange, such as its <HTTP status code>. It is not simply another name for representation data. A `HEAD` response, for example, can describe a selected representation without transferring its content, while a `GET` can transfer that content.<HTTP Semantics>[§§6.4 and 9.3.2, content and HEAD semantics]{ref}
Representation metadata tells a recipient how to interpret the data. A <media type> concerns format, character-set information concerns text encoding, and an <entity tag> supplies a validator for the selected representation. These properties can differ between two forms of the same resource.
A <URL> therefore does not promise one immutable byte sequence. A resource can change with time or offer different forms; conversely, matching application meaning does not require byte-identical representations. When comparing responses, record which representation was selected and compare the relevant data and metadata rather than only the identifier.
Back to article page