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 |