Мелкомодульный отдых поддержка браузера глаголов HTTP

Есть ли любые данные относительно того, как браузеры на самом деле поддерживают отдых http глаголы (особенно ПОМЕЩЕННЫЙ, УДАЛЯЮТ). Этот вопрос главным образом мотивирован тем, что много источников (таких как этот ответ stackoverflow) сообщают, что большинство браузеров не поддерживает ПОМЕЩЕННЫЙ и УДАЛЯЕТ, но не говорит который.

Направляющие решают это использование патча на клиенте и инвертирования патча на сервере, но интересно, например, каким браузерам не был бы нужен такой взлом.

10
задан Community 23 May 2017 в 12:13
поделиться

2 ответа

Если сомневаетесь, спросите Анну:

http://annevankesteren.nl/2007/10/http-method-support

Этому исследованию уже несколько лет, но оно дает положительную оценку PUT и DELETE, а также пробует различные варианты более непонятных глаголов, таких как TRACE и PROPFIND:

Ван Кестерен протестировал Firefox 3, Opera 9.5 и Internet Explorer 7 - смесь предварительных версий и релизов. GET и POST работали, как и ожидалось, и все поддерживали стандартный набор методов http из RFC 2616. Есть некоторые проблемы с регистром, поэтому старайтесь всегда использовать прописные буквы; TRACE и OPTIONS - это крайние случаи с проблемами, обнаруженными в Firefox и Opera, соответственно. CONNECT и TRACE и SEARCH являются проблемными для IE. Имейте в виду, что это было написано в 2007 году, так что YMMV.

Я думаю, что вся путаница с браузерами, не поддерживающими кроме GET и POST, связана с тем, что спецификация HTML перечисляет только эти два элемента в HTML

элементе :

Атрибут method элемента FORM определяет метод HTTP, используемый для отправки формы агенту обработки. Этот атрибут может принимать два значения:

  • get: При использовании метода HTTP "get" набор данных формы добавляется к URI, указанному атрибутом action (с вопросительным знаком ("?") в качестве разделителя), и этот новый URI отправляется агенту обработки.

  • post: При использовании метода HTTP "post" набор данных формы включается в тело формы и отправляется агенту обработки.

Именно по этой причине браузеры поддерживают GET и POST только в HTML; так как это указано в стандарте.

Текущая (январь 2014) спецификация XMLHttpRequest, с другой стороны, прямо указывает, что методы запроса должны быть разрешены за некоторыми исключениями (CONNECT, TRACE или TRACK), и что методы RFC2616 должны быть в верхнем регистре:

\6. Если метод не зависит от регистра CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, TRACE или TRACK, вычтите 0x20 из каждого байта в диапазоне от 0x61 (ASCII a) до 0x7A (ASCII z).

Если он не соответствует ни одному из вышеперечисленных, он передается буквально, в том числе в конечном запросе.

EDIT Еще один источник, который пришел к более или менее такому же выводу: XMLHttpRequest поддерживает PUT и DELETE: http://jshirley.vox.com/library/post/xmlhttprequest-and-rest.html (предупреждение, неработающая ссылка по состоянию на май 2014 года).

EDIT Вопрос, конечно, уже задавался раньше, но ответы двухлетней давности все еще актуальны.

EDIT Краткое резюме страницы Анны ван Кестерен от 2007 года, и добавлен раздел о HTML против XMLHttpRequest

5
ответ дан 4 December 2019 в 04:01
поделиться

См. Страницу PutDeleteSupport в Atom Wiki. Возможно, вам будет интересно просмотреть другие страницы Atom Wiki, связанные с HTTP.

-1
ответ дан 4 December 2019 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: