8 питань
Питання на співбесіді з HTTP
Питання рівня Junior
1. Які основні HTTP-методи ви знаєте і які з них ідемпотентні?
Відповідь
GETчитає ресурс,POSTстворює або запускає дію,PUTзамінює ресурс,PATCHчастково оновлює,DELETEвидаляє. Ідемпотентний метод при повторенні того самого запиту дає той самий стан на сервері, що й один запит.GET,PUTіDELETEідемпотентні, аPOSTні, іPATCHу загальному випадку теж ні.GETіHEADще й безпечні, тобто не змінюють стан.Додаткове питання: Як зробити повторний
POSTбезпечним, наприклад для оплати?2. Які є класи HTTP-статусів? Наведіть приклади.
Відповідь
1xx інформаційні, 2xx успіх (
200 OK,201 Created,204 No Content), 3xx перенаправлення (301,302,304 Not Modified). 4xx означають помилку клієнта:400некоректний запит,401не автентифікований,403доступ заборонено,404не знайдено. 5xx означають помилку сервера, наприклад500або503. Правильний статус важливий, бо на нього спираються клієнти, кеші й моніторинг.Додаткове питання: Який статус повернути, якщо дані запиту валідні за форматом, але порушують бізнес-правило?
3. Що таке REST і як правильно проєктувати URL ресурсів?
Відповідь
REST це архітектурний стиль, де все є ресурсами з адресою, а дії над ними виражаються HTTP-методами. URL містять іменники в множині, а не дієслова:
GET /users/42,POST /users, а не/getUser. Вкладеність показує зв'язки, наприклад/users/42/orders. Сервер не зберігає стан сесії між запитами, кожен запит несе все необхідне.Додаткове питання: Як ви реалізуєте пагінацію і фільтрацію в REST API?
4. Навіщо потрібні заголовки
Content-TypeіAccept?Відповідь
Content-Typeописує формат тіла повідомлення, наприкладapplication/jsonабоmultipart/form-data, щоб отримувач знав, як його розібрати.Acceptу запиті повідомляє серверу, які формати відповіді клієнт приймає. Якщо сервер не може віддати потрібний формат, він повертає406 Not Acceptable. НеправильнийContent-Typeчасто призводить до того, що сервер не бачить тіло запиту.Додаткове питання: Які ще заголовки ви часто використовуєте в API?
5. Чим
PUTвідрізняється відPATCH?Відповідь
PUTзамінює ресурс цілком: клієнт надсилає повне представлення, і поля, яких немає в тілі, вважаються видаленими або скинутими.PATCHзмінює лише передані поля.PUTідемпотентний за визначенням,PATCHгарантовано ні, хоча часто реалізується ідемпотентно. На практиці для форм редагування частіше використовуютьPATCH.Додаткове питання: Чи можна створити ресурс через
PUTі коли це доречно?
Питання рівня Middle
2. Що таке CORS і навіщо браузер робить preflight-запит?
Відповідь
Браузер за політикою same-origin блокує читання відповідей з іншого origin, тобто іншої комбінації протоколу, домену і порту. CORS дозволяє серверу явно дозволити це заголовками на кшталт
Access-Control-Allow-Origin. Для непростих запитів, наприклад зPUT,DELETEабоContent-Type: application/json, браузер спершу надсилаєOPTIONSpreflight і перевіряє дозволені методи й заголовки. CORS обмежує лише браузери, серверні клієнти його не враховують.Додаткове питання: Чому не можна поєднати
Access-Control-Allow-Origin: *з передачею cookie?3. Як працює кешування в HTTP?
Відповідь
Сервер керує кешуванням заголовком
Cache-Control:max-ageзадає час свіжості,no-storeзабороняє кешувати,no-cacheдозволяє кешувати лише з перевіркою,privateіpublicвказують, хто може кешувати. Для перевірки сервер віддаєETagабоLast-Modified, а клієнт потім надсилаєIf-None-MatchчиIf-Modified-Since. Якщо ресурс не змінився, сервер відповідає304 Not Modifiedбез тіла. Статичні файли з хешем у назві кешують надовго зimmutable.Додаткове питання: Як інвалідувати кеш у користувачів після деплою нової версії фронтенду?
Тренуй ці питання
Вчи картки, відповідай текстом або голосом і отримуй оцінку AI. Потрібен вхід в акаунт.
Відповідай уголос і отримуй оцінку
Тут питання з еталонними відповідями. У застосунку ShortLesson ти відповідаєш сам, текстом або голосом, а AI оцінює відповідь за критеріями і ставить додаткове питання, як на справжній співбесіді.
Застосунок незабаром з'явиться в магазинах.