Поширені HTTP-заголовки
HTTP-заголовки — це пари «ключ — значення», що надсилаються на початку кожного запиту й відповіді. Вони несуть метадані: тип вмісту, правила кешування та автентифікацію. Скористайтеся таблицею, щоб розпізнавати заголовки, які трапляються під час розробки й налагодження веб-трафіку.
| Заголовок | Напрямок | Призначення |
|---|---|---|
| Host | request | Identifies the server's host and port (from the URL). |
| User-Agent | request | Reports the client software (browser, OS, bot) making the request. |
| Accept | request | Lists the response media types (MIME) the client can handle. |
| Authorization | request | Carries credentials (token, Basic auth) to authenticate the client. |
| Content-Type | request/response | States the media type of the request or response body. |
| Content-Length | request/response | Gives the size in bytes of the request or response body. |
| Cookie | request | Sends stored key/value pairs from a previous response back to the server. |
| Set-Cookie | response | Server instructs the client to store a cookie for later requests. |
| Cache-Control | request/response | Directs caching behaviour: no-cache, max-age, private, etc. |
| ETag | response | Opaque identifier for a resource version, used for revalidation. |
| If-None-Match | request | Sends an ETag; server returns 304 if the resource is unchanged. |
| Location | response | Points the client to a new URL for redirects (3xx) or created resources. |
| Access-Control-Allow-Origin | response | Permits a browser to share a response across origins (CORS). |
| X-Forwarded-For | request | Records the client IP as seen through a proxy or load balancer. |
| Referer | request | Indicates the URL of the page that linked to the requested resource. |
Примітки
- Назви заголовків нечутливі до регістру; за домовленістю їх пишуть у Title-Case (напр. Content-Type).
- Заголовки запиту описують клієнт, заголовки відповіді — відповідь сервера.
- Браузер автоматично встановлює багато заголовків (Host, Referer) — не підробляйте їх.
Часті запитання
- У чому різниця між заголовком запиту й відповіді?
- Заголовки запиту надсилає клієнт (браузер чи застосунок) серверу; заголовки відповіді повертає сервер разом із відповіддю. Деякі, як Content-Type, трапляються з обох боків.
- Чи залежать назви HTTP-заголовків від регістру?
- Ні. За специфікацією назви заголовків нечутливі до регістру, тому Content-Type і content-type — одне й те саме. Title-Case — лише домовленість.
- Для чого потрібен заголовок Host?
- Host повідомляє серверу, до якого домену спрямовано запит. У HTTP/1.1 він обов'язковий і дозволяє одному серверу розміщувати багато сайтів за назвою.
- Як кешування працює через заголовки?
- Cache-Control визначає, як довго відповідь можна кешувати, а ETag і If-None-Match дають змогу клієнту запитати «змінилося?» і отримати легкий 304 Not Modified.