Headers and representations

Content negotiation

See how Accept headers let a client express preferences and how a server selects an available representation of a resource.

A resource can have more than one representation. The client states preferences with Accept headers:

Accept: text/html, application/json;q=0.8
Accept-Language: en, it;q=0.7
Accept-Encoding: br, gzip

The server chooses a supported option. Quality values such as q=0.8 make one option less preferred than another.

The server is not required to support every requested representation. An API may always return JSON. A site may use distinct URLs instead of negotiating language.

When a response changes according to a request header, caches need to know. A response such as Vary: Accept-Encoding tells a cache to keep different variants for different encoding preferences.

Quick check

Result

You got of right.

Lesson completed

Take this course offline

Get every free book, course edition, and software download.

Get the download library →