Заголовки запроса и ответа: кто отправил настройку
Похожие названия HTTP-заголовков могут относиться к разным направлениям обмена. При отладке важно сначала установить, что отправил клиент, а что сообщил сервер.
Назначение
Похожие названия HTTP-заголовков могут относиться к разным направлениям обмена. При отладке важно сначала установить, что отправил клиент, а что сообщил сервер.
Как это работает
Request Headers описывают запрос браузера, Response Headers — полученный ответ. Accept выражает предпочтение клиента по представлению, а Content-Type описывает тип конкретного содержимого. Они не взаимозаменяемы.
Пример
Запрос клиента:
GET /data/lessons.json HTTP/1.1
Host: example.com
Accept: application/json
Ответ сервера:
HTTP/1.1 200 OK
Content-Type: application/json
{"lessons":[]}
Что должно получиться
Клиент просит JSON, сервер в примере действительно возвращает JSON. Одного Accept недостаточно: приложение может ответить ошибкой или другим представлением, поэтому тип и тело ответа нужно проверить отдельно.
Граница применения и частая ошибка
Нельзя исправить неверный серверный Content-Type простой записью такого же заголовка в запросе. Часть заголовков браузер управляет самостоятельно и не разрешает задавать скрипту. Перенаправление создаёт новый этап, у которого собственные заголовки.
Самостоятельная проверка
Выберите один запрос в Network и перепишите в две колонки только несекретные заголовки. Укажите отправителя каждого. Сравните документ, CSS и JSON, не копируя Cookie, Authorization и другие чувствительные значения в публичный отчёт.