Модуль 7 · Урок 28

Headers, cookies, caching і HTTP evidence

Fields керують message semantics і описують representation. Cookies додають session context, caches повторно використовують responses, а conditional requests відрізняють transfer від validation.

FieldsContent negotiationCookiesCache validators

Fields мають визначену семантику

Field names case-insensitive, але values інтерпретуються за contract конкретного field. Request fields описують preferences, preconditions, credentials або context; response fields — representation metadata, location, policy, validators чи diagnostics. Не порівнюйте всю колекцію як unordered dictionary: повторюваність і combine rules залежать від field.

ContractQA assertion
Content-TypeMedia type/charset відповідає actual content.
Accept* / VarySelected representation і cache variants узгоджені.
LocationTarget відповідає status/method і не витікає в unsafe origin.
Correlation/rate fieldsFormat, propagation і redaction за documented contract.

Cookies додають state context

Server надсилає `Set-Cookie`, user agent повертає matching cookies за domain/path/expiry/Secure/SameSite rules. `HttpOnly` закриває cookie від JavaScript, але не від browser HTTP requests. QA перевіряє login/logout/expiry/rotation, scope і відсутність session IDs у screenshot/HAR/report.

Cookie не доводить authorization

Server має перевірити session і permissions для кожної protected operation. Client-visible role або наявність cookie не є authorization oracle.

Freshness, validation і invalidation

Fresh cached response може обслуговувати equivalent request без origin validation. Stale response зазвичай revalidate через `If-None-Match`/ETag або `If-Modified-Since`/Last-Modified; 304 не несе нову selected representation content, а оновлює reuse. `no-cache` дозволяє storage, але вимагає validation перед reuse; `no-store` просить не зберігати.

Private/sharedBrowser cache і CDN мають різний scope; personalized response не має витікати між users.
Cache keyЩонайменше method + target URI; `Vary` додає selected request fields.
InvalidationMutation, purge, expiry та validator behavior мають узгоджуватися з product freshness.

HTTP Investigation Lab

  1. Розкладіть URI й визначте origin/intermediaries.
  2. Збережіть request/response message summary без секретів.
  3. Перевірте method/status/state, redirect hops і retry safety.
  4. Порівняйте cold, fresh-cache і revalidation runs.
  5. Оформіть finding із exact evidence та residual uncertainty.

Завантажити HTTP Investigation Lab →

Офіційні джерела

Модуль 7 завершено

Після тесту прогрес стане 28/28 опублікованих уроків. Модуль 8 продовжить роботу вже з API contracts, schemas, auth і collections; фінал та сертифікат поки закриті.

Практична перевірка · урок 28 з 32

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Що описує Content-Type?
2. Для чого client надсилає Accept?
3. Навіщо response Vary?