HTTP-заголовки — строки метаданных вида «имя: значение», которые браузер и сервер добавляют к каждому HTTP-запросу и ответу, чтобы договориться о формате данных, кэшировании, cookie и безопасности передачи.
Каждое сообщение делится на заголовки и тело. В запросе, например методом GET или POST, клиент сообщает свои условия: Host указывает домен, Accept — желаемый формат ответа, а Cookie передаёт сохранённые данные сессии. В ответе сервер добавляет свои: Content-Type описывает тип содержимого, Content-Length — его размер, а Location задаёт новый URL при перенаправлении.
Заголовки принято делить по назначению:
Правильно настроенные заголовки ускоряют загрузку за счёт кэша и защищают соединение, поэтому их проверяют в первую очередь при отладке любого веб-приложения.