Lesson 6 / 24

Headers & Content Negotiation

How the client and server agree on the format of a message.

Content-Type vs Accept

Content-Type tells the receiver what format the body being sent is in (application/json). Accept tells the server what format the client wants back. They can differ — a client might send form data but ask for a JSON response.

A typical request

Headers carry metadata the URI and body shouldn't.

POST /orders HTTP/1.1
Host: api.example.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOi...

{ "productId": 42, "qty": 2 }

Reject what you can't serve

If a client's Accept header asks for a format the server doesn't support, return 406 Not Acceptable instead of silently sending something else.