1. Список HTTP-методів
Найпершим словом у HTTP-запиті йде ім'я методу. Тут навіть є певна аналогія з викликом методів Java. Метод у HTTP-запиті визначає основну операцію, яку необхідно виконати над ресурсом.
Над яким ресурсом? Справа в тому, що на початку існування всесвітньої павутини сервери просто зберігали HTML-файли, отже, запит робився до такого файлу і описував певну дію, яку потрібно зробити з ресурсом/файлом.
Стандарт HTTP визначає такі методи:
# | Метод | Опис |
---|---|---|
1 | GET | Використовується для запиту на вміст вказаного ресурсу. |
2 | POST | Використовується для передачі даних із клієнта на сервер. Змінює стан ресурсу на сервері. |
3 | PUT | Використовується для передачі даних із клієнта на сервер. Створює новий ресурс на сервері. |
4 | DELETE | Видаляє вказаний ресурс на сервері. |
5 | HEAD | Аналогічний до GET, але тіло відповіді відсутнє. Потрібен для отримання заголовків відповіді |
6 | OPTIONS | Запитує в сервера список методів, що підтримуються для зазначеного ресурсу. |
7 | TRACE | Службовий метод. Дозволяє дізнатися, чи не змінюють запит сервери, якими він проходить. |
8 | CONNECT | Службовий метод. Використовується для встановлення захищеного з'єднання. |
2. Метод GET
Метод GET – найпопулярніший HTTP-метод. Саме його викликає браузер, коли надсилає запит на сервер по чергову сторінку.
Наприклад, ви перейшли в браузері за посиланням http://javarush.com/path/resource?param1=value1¶m2=value2, — тоді браузер надішле на сервер JavaRush HTTP-запит, який буде починатися з такої starting line:
GET /path/resource?param1=value1¶m2=value2 HTTP/1.1
В результаті сервер повинен буде надіслати браузеру HTTP-відповідь, в якій написати статус запиту, а також надіслати ресурс, на який робиться запит.
Мається на увазі, що багаторазовий виклик методу GET не змінює стан сервера, і сервер щоразу повинен повертати ту саму відповідь. Тому в протоколі закладено хитре керування кешуванням об'єкта.
По-перше, ресурси, що отримуються за допомогою запиту GET, браузер може кешувати на своїй стороні на власний розсуд (але є нюанси).
По-друге, при надсиланні запиту на сервер можна вказати спеціальний заголовок If-Modified-Since
та дату
. Якщо ресурс чи документ, на чиє отримання робився запит, змінився із зазначеної дати, то сервер його надішле. Якщо не змінився, то тіло ресурсу не передається. Мається на увазі, що воно закешоване на клієнта.
Кешування сторінок (GET-запитів) використовується постійно, тому раджу розібратися в цьому питанні.
3. Методи POST та PUT
Метод POST використовується для того, щоб змінити ресурс на сервері. Наприклад, коли ви завантажуєте картинку на сервер, ваш браузер надсилає запит POST.
Розглянемо HTTP-запит, який почнеться з такої starting line:
POST /path/resource?param1=value1¶m2=value2 HTTP/1.1
headers…
<request body>
В результаті сервер повинен буде надіслати браузеру HTTP-відповідь, в якій напише статус запиту, а також надіслати змінений ресурс. Багаторазовий виклик методу POST змінює стан сервера, і сервер щоразу може повертати різну відповідь.
GET і POST – два найпоширеніші запити в інтернеті. Щоб тобі було простіше запам'ятати, як працюють методи, розглянемо їх у таблиці:
GET | POST | PUT | |
---|---|---|---|
Запит | Лише URL | URL та тіло запиту | URL та тіло запиту |
Відповідь | Код та тіло відповіді | Код та тіло відповіді | Код відповіді |
Детальніше про POST-запит ти можеш почитати за цим посиланням.
4. Метод DELETE
Ну і нарешті інформація щодо методу DELETE. Тут узагалі все просто.
Скажімо, ми хочемо видалити певний ресурс на сервері. Надсилаємо йому запит типу:
DELETE /path/resource?param1=value1¶m2=value2 HTTP/1.1
Після отримання цього запиту сервер видаляє зазначений ресурс. Якщо, звісно, ти маєш права на його видалення.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ