👾
Node.js
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Основи Node.js
      • Вступ
      • Модулі Node.js
      • Запуск скриптів модулів в Node.js
      • Структура проєкту, експорт-імпорт, index.js як хаб
      • Модулі CommonJS
      • Модулі MJS
      • Модулі ECMAScript
      • Модулі NPM + базові модулі
      • Глобальні змінні
      • Робота з файлами
    • 2️⃣Консольні додатки
      • Створення консольних додатків
    • 3️⃣Фреймворк Express
      • Про Express
      • Nodemon і запуски скриптів
      • Postman
      • Проміжне ПЗ middleware
      • Передача даних на сервер
      • Роутінг
      • CRUD
      • Налаштування лінтера
    • 4️⃣REST API
      • Змінні оточення
      • Логування
      • REST
      • Методи HTTP
      • CORS
      • Формування URL для REST API
      • Контроллери відсутнього роуту і непередбачуваної помилки
      • Валідація даних Joi
      • Рефакторинг додатку за MVC архітектурою
      • Express автогенератор додатку
    • 5️⃣База даних Mongo.DB
      • Основи MongoDB
      • Налаштування Mongo Atlas
      • Встановлення локальної MongoDB і основні команди
    • 6️⃣ODM Mongoose
      • Mongoose
      • Порядок планування бекенд додатку
      • чорнетка
    • 7️⃣Автентифякація WJT
      • чорнетка
      • чорнетка 2
    • 8️⃣Файли
      • чернетка
    • 9️⃣тестування
      • чернетка
    • 🔟Page 14
      • імейли
    • чорнетка докер
    • чорнетка сокети
    • додаткові матеріали
    • 👷Практика
      • 1️⃣Page 4
      • 2️⃣Page 5
      • 3️⃣Page 6
      • 4️⃣Page 7
      • 5️⃣Page 8
      • 6️⃣Page 9
  • Про мене
    • Про мене
Powered by GitBook
On this page
  • Ідемпотентність​
  • HTTP метод GET​
  • HTTP метод POST​
  • HTTP метод PUT (PATCH)​
  • HTTP метод DELETE​
  • Коди відповіді HTTP​
  1. Теорія
  2. REST API

Методи HTTP

PreviousRESTNextCORS

Last updated 1 year ago

Ідемпотентність

Властивість об'єкта або операції, яка при повторному застосуванні дає такий само результат, що і при попередній ітерації. Наприклад:

  • додавання нуля: a=a+0=(a+0)+0=((a+0)+0)+0=...

  • множення на одиницю: x = x*1 = (x*1)*1 = ((x*1)*1)*1 = ...;

У HTTP клієнт може здійснювати той само виклик кілька разів і здійснювати той само результат, працюючи як "сеттер". Тобто: створення кількох однакових запитів має такий само ефект як і відправлення одного запиту.

Ідемпотентні операції роблять той само результат на сервері, утім відповідь може відрізнятися тобто стан ресурсу може змінитися між запитами.

Найвживаніші HTTP-методи GET/POST/PUT/DELETE:

  • GET - запити з використанням цього методу можуть лише витягувати дані.

  • POST - використовується для надсилання сутностей до певного ресурсу. Міняє стан та побічні ефекти на сервері. Найчастіше створює новий ресурс за надісланим запитом.

  • PUT - замінює ресурс поточним поданням запиту

  • DELETE - видаляє вказаний ресурс.

  • PATCH - використовують для часткової зміни ресурсу

HTTP метод GET

Використовують для читання ресурсу. Якщо GET-запит за адресою успішний, то повертається представлення ресурсу у форматі XML або JSON у поєднанні з кодом стану HTTP 200 (OK). У разі невдачі повертається код 404 (NOT FOUND) або 400 (BAD REQUEST). Це безпечний (ідемопотентний) метод. Він призначений лише для отримання інформації та не повинен змінювати стан сервера або мати побічні ефекти.

HTTP метод POST

Запит часто використовують для створення нових ресурсів, а також створення вкладених ресурсів. При створенні нового ресурсу, POST-запит надсилає уявлення, а сервер бере на себе відповідальність призначення нового ресурсу ID тощо. Якщо ресурс успішно створено, то повертається HTTP код 201 Create. Також може бути встановлений заголовок Location з адресою створеного ресурсу. Метод POST - не безпечний (ідемпотентний) запит, оскільки відбувається побічний ефект - створення ресурсу.

Зазвичай використовують для оновлення ресурсу. Тобто запит відбувається до існуючого ресурсу URL. В тілі PUT-запиту передають оновлені дані оригінального ресурсу (повністю, або лише оновлювану частину - PATCH). Якщо операція успішна, то повертається код 200 (або 204 якщо не був переданий будь-який контент у тілі відповіді). Метод PUT вважають не безпечною операцією, адже у процесі виконання відбувається модифікація (або створення) екземплярів ресурсу на стороні сервера. Але цей метод - ідемпотентний. Тобто під час оновлення ресурсу за допомогою PUT запиту - ресурс не зникне, а розташовуватиметься там, де і був.

Використовують для видалення ресурсу. Під час запиту передають конкретний URL (ID). Якщо видалення ресурсу успішне - повернеться код 200 (OK) HTTP, а також тіло відповіді, що містить дані віддаленого ресурсу. Також можна використовувати HTTP код 204 (NO CONTENT) без тіла відповіді. Відповідно до специфікації HTTP, метод DELETE ідемпотентний. Якщо виконати DELETE запит до ресурсу, він видалиться. Повторний DELETE запит до ресурсу закінчиться також: ресурс видалено.

Будь-яка відповідь від сервера має вказувати код стану HTTP. Це індикатор, чи успішно виконано певний HTTP запит. Коди поділяють на п'ять груп:

1. Інформаційні 100 - 199

100: Continue

2. Успішні 200 - 299

200: OK

201: Created

202: Accepted

204: No Content

3. Перенаправлення 300 - 399

301: Moved Permanently

307: Temporary Redirect

4. Клієнтські помилки 400 - 499

400: Bad Request

401: Unauthorized

403: Forbidden

404: Not Found

5. Серверні помилки 500 - 599

500: Internal Server Error

501: Not Implemented

502: Bad Gateway

503: Service Unavailable

504: Gateway Timeout

Покликання:

HTTP метод PUT (PATCH)

HTTP метод DELETE

Коди відповіді HTTP

Стандарт або

📚
4️⃣
​
​
​
​
​
​
RFC 2616
MDN