Чи слід використовувати PUT та DELETE у формах?


76

Якщо припустити, що моя веб-програма має повну підтримку PUT і DELETE на стороні сервера, чи варто їм користуватися?

В основному моє питання полягає в тому, скільки браузерів підтримують це:

<form method="PUT">

або

<form method="DELETE">

Чи є якісь переваги від використання цих двох методів HTTP, крім сумісності з REST? (припускаючи, що заміною цих двох методів є загальновживаний POST)

Відповіді:


82

Ваше запитання стосується двох тісно пов’язаних, але окремих стандартів, HTTP та HTML. Методи PUT та DELETE є частиною HTTP. У HTTP вони очевидно використовуються в інтерфейсах RESTful та інших службах, що базуються на HTTP, таких як Webdav.

HTML до версії 4 визначає лише використання POST та GET для форм. На даний момент HTML5 здається, ніби він може підтримувати подальші методи. [примітка, підтримка не включена в поточний проект w3]

Будь-яка поточна підтримка браузера (я прямо не знаю про це) буде дуже обмеженою і корисною лише як експеримент на кровоточивому краю.


17
Поточний чернетка HTML5 не підтримує PUTта не маєDELETE форм. Наразі відповідний розділ знаходиться в розділі "Останній дзвінок для коментарів", тож можливо, вони будуть реалізовані, але, на жаль, це не схоже на це. Я думаю, що це було там у певний момент, а потім видалено.
Ендрю Маршалл

1
Що стосується підтримки браузера, mozilla цікавить цей квиток для FF4, що вказує на те, що вони його підтримували, але зараз його видалили - bugzilla.mozilla.org/show_bug.cgi?id=600813 .
leebriggs 02.03.11

@andrew Дійсно, він був частиною проекту протягом декількох років, але був вилучений наприкінці минулого року. Я не мав наміру припускати, що він буде частиною стандарту, лише таким, яким він може бути.
leebriggs 02.03.11

8
Я дуже розчарований усуненням цих методів, оскільки вони мають великий сенс. Хтось має посилання на причину цього рішення ?.
Трістіан


27

GET, POST, PUT та DELETE (є й інші) є частиною стандарту HTTP, але на даний момент ви обмежені GET і POST у формах HTML.

Як згадав Ендрю, ви можете використовувати PUT та DELETE в запитах AJAX; однак це працює лише в деяких браузерах (див. http://api.jquery.com/jQuery.ajax/ ).


14

Ні, GET& POST- єдині допустимі значення методу HTTP для methodатрибута. Для отримання додаткової інформації див. Специфікацію HTML .

Однак я вважаю, що ви можете використовувати їх у запитах AJAX.


Посилання порушено.
code_dredd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.