Что проверяешь в заголовках ответа
Вопрос
Какие заголовки ответа ты проверяешь при тестировании API и зачем?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Content-Type соответствует телу (JSON, charset)
Кеширование: Cache-Control и ETag, no-store на персональных данных
Безопасность: флаги Set-Cookie, CORS, Strict-Transport-Security
Location у 201 и редиректов, Allow у 405, Retry-After у 429
Нет утечек: версии сервера и фреймворка в Server и X-Powered-By, request id для поиска в логах
Что могут спросить следом
- Что опасного в
Access-Control-Allow-Origin, отражающем любой Origin? - Почему персональные данные с
Cache-Control: publicэто баг? - Как проверить заголовки, если тест пишешь в Postman?
Разбор
Заголовки я делю на четыре группы. Формат: Content-Type совпадает с тем, что реально в теле, и кодировка указана. Кеш: у справочников есть Cache-Control и ETag, и повторный запрос с If-None-Match даёт 304, а у ответов с личными данными стоит no-store или хотя бы private, иначе общий прокси может отдать профиль одного пользователя другому. Безопасность: у cookie сессии HttpOnly, Secure и SameSite, CORS разрешает только свои домены и не отражает любой Origin вместе с Allow-Credentials, есть HSTS. Служебные: Location у 201 и редиректов, Allow у 405, Retry-After у 429. И смотрю на утечки: Server и X-Powered-By с точной версией подсказывают атакующему, какие уязвимости пробовать. В Postman всё это проверяется через pm.response.headers в тестах коллекции.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.