Докладний, але скопійований із специфікації методу HTTP 1.1 за адресою http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
9.3 Отримати
Метод GET означає отримати будь-яку інформацію (у формі сутності), ідентифіковану URI-запитом. Якщо запит-URI посилається на процес створення даних, саме отримані дані повертаються як суб'єкт у відповіді, а не вихідний текст процесу, якщо тільки цей текст не є результатом процесу.
Семантика методу GET змінюється на "умовний GET", якщо повідомлення запиту включає в себе заголовок If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match або If-Range. Умовний метод GET вимагає перенесення об'єкта лише за обставин, описаних полями (умовами) умовного заголовка. Умовний метод GET призначений для зменшення зайвого використання мережі, дозволяючи оновити кешовані об'єкти, не потребуючи декількох запитів або передачі даних, які вже зберігаються клієнтом.
Семантика методу GET змінюється на "часткове GET", якщо повідомлення запиту включає поле заголовка діапазону. Часткове GET вимагає передати лише частину об'єкта, як описано в розділі 14.35. Частковий метод GET призначений для зменшення зайвого використання мережі, дозволяючи частково витягнутим об'єктам завершитись без передачі даних, які вже утримуються клієнтом.
Відповідь на запит GET є кешованим, якщо і лише якщо він відповідає вимогам щодо кешування HTTP, описаних у розділі 13.
Див. Розділ 15.1.3 щодо міркувань безпеки при використанні форм.
9.5 POST
Метод POST використовується для запиту, щоб сервер-джерело прийняв сутність, включену в запит, як новий підлеглий ресурс, ідентифікований URI-запитом у рядку запиту. POST розроблений таким чином, щоб дозволити єдиний метод охопити наступні функції:
- Annotation of existing resources;
- Posting a message to a bulletin board, newsgroup, mailing list,
or similar group of articles;
- Providing a block of data, such as the result of submitting a
form, to a data-handling process;
- Extending a database through an append operation.
Фактична функція, що виконується методом POST, визначається сервером і зазвичай залежить від запиту-URI. Опублікована особа підпорядковується цьому URI так само, як файл підпорядковується директорії, що містить його, стаття новин підпорядковується групі новин, до якої вона розміщена, або запис підпорядковується базі даних.
Дія, виконана методом POST, може не призвести до ресурсу, який можна ідентифікувати за допомогою URI. У цьому випадку або 200 (ОК), або 204 (Без вмісту) є відповідним статусом відповіді, залежно від того, включена у відповідь сутність, яка описує результат.
Якщо ресурс створено на початковому сервері, відповідь ДОЛЖЕН би бути 201 (Створено) і містити сутність, яка описує статус запиту та посилається на новий ресурс, та заголовок Location (див. Розділ 14.30).
Відповіді на цей метод не підлягають кешуванню, якщо тільки відповідь не включає відповідні поля заголовка кеша або закінчується. Однак відповідь 303 (див. Інше) може бути використана для спрямування агента користувача на отримання кешованого ресурсу.
POST-запити ОБОВ'ЯЗКОВО дотримуватися вимог передачі повідомлень, викладених у розділі 8.2.
З міркувань безпеки див. Розділ 15.1.3.
9.6 PUT
Метод PUT вимагає, щоб вкладений об'єкт зберігався під наданим URI-запитом. Якщо Request-URI посилається на вже існуючий ресурс, додане об'єкт ДОЛЖНЕ розглядатися як модифікована версія тієї, що знаходиться на сервері походження. Якщо Uquest-URI не вказує на існуючий ресурс і URI може бути визначений як новий ресурс запитуючим агентом користувача, сервер-джерело може створити ресурс з цим URI. Якщо створений новий ресурс, сервер-джерело ОБОВ'ЯЗКОВО повідомить про це агента користувача через відповідь 201 (Створено). Якщо існуючий ресурс модифікований, або відповідатимуть коди відповідей 200 (ОК) або 204 (Без вмісту), щоб вказати на успішне завершення запиту. Якщо ресурс не вдалося створити або змінити за допомогою URI-запиту, ПОВИНЕН бути наданий відповідний відповідь на помилку, який відображає природу проблеми. Одержувач сутності НЕ МОЖЕ Ігнорувати будь-які заголовки вмісту * (наприклад, Контент-Діапазон), які він не розуміє та не реалізує, і ОБОВ'ЯЗКОВО повертати відповідь 501 (Не реалізовано) у таких випадках.
Якщо запит проходить через кеш, і Request-URI ідентифікує одну або більше поточно кешованих об'єктів, ці записи ОБОВ'ЯЗКОВО трактуються як застарілі. Відповіді на цей метод не є кешованими.
Принципова відмінність запитів POST від PUT відображається в різному значенні Request-URI. URI у запиті POST ідентифікує ресурс, який буде обробляти додану сутність. Цей ресурс може бути процесом прийняття даних, шлюзом до якогось іншого протоколу або окремим об'єктом, який приймає примітки. На відміну від цього, URI у запиті PUT ідентифікує об'єкт, укладений із запитом - агент користувача знає, для чого призначений URI, і сервер НЕ МОЖЕ намагатися застосувати запит до якогось іншого ресурсу. Якщо сервер бажає, щоб запит було застосовано до іншого URI,
ОБОВ'ЯЗКОВО надіслати відповідь 301 (постійно переміщена); користувальницький агент МОЖЕ приймати власне рішення щодо перенаправлення запиту чи ні.
Один ресурс МОЖЕ бути ідентифікований багатьма різними URI. Наприклад, стаття може мати URI для ідентифікації "поточної версії", яка є окремою від URI, що ідентифікує кожну конкретну версію. У цьому випадку запит PUT на загальному URI може призвести до того, що декілька інших URI визначаються сервером походження.
HTTP / 1.1 не визначає, як метод PUT впливає на стан початкового сервера.
Запити PUT ОБОВ'ЯЗКОВО виконувати вимоги щодо передачі повідомлення, викладені в розділі 8.2.
Якщо інше не вказано для конкретного заголовка об'єкта, заголовки сутностей у запиті PUT ДОЛЮються застосовуватися до ресурсу, створеного або модифікованого PUT.
9.7 ВИДАЛИТИ
Метод DELETE вимагає, щоб сервер-джерело видалив ресурс, ідентифікований URI-запитом. Цей метод МОЖЕ бути відмінений втручанням людини (або іншими способами) на початковий сервер. Клієнту не можна гарантувати, що операція була здійснена, навіть якщо код статусу, повернутий з початкового сервера, вказує на те, що дія успішно завершена. Однак сервер НЕ повинен вказувати на успіх, якщо під час надання відповіді він не має наміру видалити ресурс або перемістити його в недоступне місце.
Успішна відповідь повинна бути 200 (ОК), якщо відповідь включає суб'єкт, що описує статус, 202 (Прийнято), якщо дія ще не здійснено, або 204 (Немає вмісту), якщо дія було введено, але відповідь не включає суб'єкт господарювання.
Якщо запит проходить через кеш, і Request-URI ідентифікує одну або більше поточно кешованих об'єктів, ці записи ОБОВ'ЯЗКОВО трактуються як застарілі. Відповіді на цей метод не є кешованими.