НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
HTML5. W3Schools українською. Повний довідник тегів

En

HTTP Методи запиту


Два найбільш розповсюджених методи HTTP: GET та POST.


Що таке HTTP?

Hypertext Transfer Protocol - Протокол передачі гіпертексту (HTTP) призначений для забезпечення зв’язку між клієнтами та серверами.

HTTP працює як протокол запиту-відповіді між клієнтом та сервером.

Веб-браузер може бути клієнтом, а додаток на комп’ютері, на якому розміщений вебсайт, може бути сервером.

Приклад: клієнт (браузер) відправляє HTTP-запит на сервер; потім сервер повертає відповідь клієнту. Відповідь містить інформацію про стан запиту і може також містити запитуваний контент.


HTTP Методи

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

Метод GET

GET використовується для запиту даних від вказаного ресурсу.

GET - один із найбільш розповсюджених методів HTTP.

Зверніть увагу, що рядок запиту (пари ім’я/значення) відправляється в URL-адресі запиту GET:

/test/demo_form.html?name1=value1&name2=value2

Деякі інші зауваження про запити GET:

  • GET-запити можуть бути кешовані
  • GET-запити залишаються в історії браузера
  • GET-запити можуть бути додані в закладки
  • GET-запити ніколи не повинні використовуватись при роботі з конфіденційними даними.
  • GET-запити мають обмеження по довжині
  • GET-запити використовуються тільки для запиту даних (не змінюються)

Метод POST

POST використовується для надсилання даних на сервер для створення/оновлення ресурсу.

Дані, відправлені на сервер за допомогою POST, зберігаються в тілі запиту HTTP:

POST /test/demo_form.html HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

POST є одним із найбільш розповсюджених методів HTTP.

Деякі інші зауваження про запити POST:

  • POST-запити ніколи не кешуються
  • POST-запити не зберігаються в історії браузера
  • POST-запити не можуть бути додані в закладки
  • POST-запити не мають обмежень по довжині даних

Метод PUT

PUT використовується для надсилання даних на сервер для створення/оновлення ресурсу.

Різниця між POST та PUT полягає в тому, що PUT-запити є ідентичними. Тобто, виклик одного і того ж запиту PUT кілька разів завжди буде призводити до одного й того ж результату. Напроти, виклик POST-запиту неодноразово має побічні ефекти від створення одного й того ж ресурсу кілька разів.


Метод HEAD

HEAD майже ідентичний GET, але без тіла відповіді.

Іншими словами, якщо GET/користувачі повертає список користувачів, то HEAD/користувачі зробить такий самий запит, але не поверне список користувачів.

Запити HEAD корисні для перевірки того, що буде повернуто запит GET, перед тим, як фактично виконати запит GET, наприклад, перед завантаженням великого файлу або тіла відповіді.


Метод DELETE

Метод DELETE видаляє вказаний ресурс.


Метод OPTIONS

Метод OPTIONS описує параметри зв’язку для цільового ресурсу.


Порівняння GET та POST

В наступній таблиці порівнюються два методи HTTP: GET та POST.

  GET POST
Кнопка НАЗАД/Перезавантажити Безпечно Данні будуть повторно відправлені (браузер має попередити користувача про те, що дані мають бути повторно відправлені)
Закладки Може бути в закладках Не може бути в закладках
Кешування (збережена копія) Може бути кешування Не може бути кешування
Тип кодування application/x-www-form-urlencoded application/x-www-form-urlencoded або multipart/form-data. Використовуйте багаточасткове кодування для двоїчних даних
Історія Параметри залишаються в історії браузера Параметри не зберігаються в історії браузера
Обмеження на довжину даних Так, при надсиланні даних метод GET додає дані в URL; довжина URL-адреси обмежена (максимальна довжина URL-адреси складає 2048 символів) Немає обмежень
Обмеження на тип даних Дозволені лише символи ASCII Немає обмежень. Двійкові дані також дозволені
Безпека GET меньше безпечний в порівнянні з POST, тому що відправлені дані є частиною URL

Ніколи не використовуйте GET при надсиланні паролей або іншої конфіденційної інформації!
POST набагато безпечніше, ніж GET, оскільки параметри не зберігаються в історії браузера або в журналах вебсервера (в логах).
Видимість Дані видимі всім в URL Дані не видимі в URL