Модуль 11 · Урок 42

HTTP contract і Fetch API

HTTP response має status, headers і body; fetch fulfills із Response навіть для 404/500. Тому перевірка response.ok перед parsing є частиною client contract.

Method / URLStatusHeadersResponse.ok

Request/response evidence

RequestResponse
Method, URL/query, headers, optional bodyStatus, headers, optional body
Origin/credentials/cache policyCORS/cache/auth contract

GET є safe та idempotent за HTTP semantics; POST не гарантує idempotency. Не retry mutation автоматично без server-side idempotency contract.

Fetch boundary

const response = await fetch(url, { signal });
if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}
const data = await response.json();

Network failure може reject fetch; HTTP 404/500 зазвичай fulfill Response. CORS — browser/server policy, не error, який виправляють client header trick. Secrets не зберігають у frontend source.

Практика

Заповніть HTTP contract і method/retry matrix для synthetic operations. У Network-like evidence фіксуйте sanitized URL, method, status, content type і timing без credentials/body PII.

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

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

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

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

1. Які частини описують HTTP request?
2. Які частини описують HTTP response?
3. Чи reject fetch на HTTP 404?