HTTP PUT:
PUT помещает файл или ресурс по определенному URI и точно по этому URI. Если в этом URI уже есть файл или ресурс, PUT заменяет этот файл или ресурс. Если там нет файла или ресурса, PUT создает его. PUT идемпотент , но, как ни парадоксально, ответы PUT не кэшируются.
HTTP 1.1 RFC-расположение для PUT
HTTP POST:
POST отправляет данные на определенный URI и ожидает, что ресурс на этом URI обработает запрос. В этот момент веб-сервер может определить, что делать с данными в контексте указанного ресурса. Метод POST не является идемпотентным , однако ответы POST могут кэшироваться, если сервер устанавливает соответствующие заголовки Cache-Control и Expires.
Официальный HTTP RFC определяет POST:
- Аннотация существующих ресурсов;
- Размещение сообщения на доске объявлений, в группе новостей, списке рассылки,
или аналогичная группа статей;
- Предоставление блока данных, например, результата отправки
форма, к процессу обработки данных;
- Расширение базы данных с помощью операции добавления.
HTTP 1.1 RFC-местоположение для POST
Разница между POST и PUT:
RFC сам объясняет разницу в ядре:
Принципиальная разница между
Запросы POST и PUT отражены в
различное значение
Request-URI. URI в запросе POST
определяет ресурс, который будет
обрабатывать вложенную сущность. Тот
ресурс может быть принимающим данные
процесс, ворота в какой-то другой
протокол или отдельное лицо, которое
принимает аннотации В отличие от
URI в запросе PUT идентифицирует
юридическое лицо, приложенное к запросу -
пользовательский агент знает, что такое URI
предназначен и сервер не должен
попытаться применить запрос к некоторым
другой ресурс. Если сервер желает
что запрос будет применен к
другой URI, он ДОЛЖЕН отправить ответ 301 (постоянно перемещенный); пользовательский агент МОЖЕТ сделать
свое собственное решение относительно того, следует ли перенаправить запрос.
Используя правильный метод, не связанный в стороне:
Одним из преимуществ REST ROA по сравнению с SOAP является то, что при использовании HTTP REST ROA он поощряет правильное использование HTTP-глаголов / методов. Так, например, вы будете использовать PUT, только если вы хотите создать ресурс именно в этом месте. И вы никогда не будете использовать GET для создания или изменения ресурса.