Ответ 1
Ну, "post post, как сообщение на доске объявлений", похоже, довольно близко к ответу, я думаю. В конце концов, что именно одна из тех функций, для которых этот метод был разработан. POST
всегда предназначен для публикации материалов для какого-либо "factory", который должен обрабатываться им, иначе вы могли бы просто использовать PUT
. Давайте посмотрим на RFC2616, раздел 9.5:
Метод POST используется для запроса, чтобы сервер происхождения принимал объект, заключенный в запросе, в качестве нового подчиненного ресурс, идентифицированный Request-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
, но я думаю, что это может дать некоторые подсказки об этой идее.
Возможно, мы могли бы также взглянуть на некоторые значения слова "пост" (http://www.thefreedictionary.com/Post, третье определение) - согласно что пост в виде глагола может означать
- Чтобы отправить письмо (письмо или пакет)
- Чтобы сообщить о последних новостях
- Перенос (элемент) в бухгалтерскую книгу
- Чтобы сделать необходимые записи в (книге)
И это именно то, что POST
делает (метафорически). Если вы хотите отправить электронное письмо, вы позволяете своему почтовому провайдеру обращаться с ним, а затем сообщать вам о состоянии. И это также разница между PUT
и POST
: если клиент отвечает за обработку ресурса, вы используете PUT
(потому что вы знаете, что положить и куда его поместить).
Итак, теоретически, если бы вы знали IP-адрес человека, которому хотите отправить электронное письмо, вам не нужен ваш провайдер, чтобы найти этот материал для вас. Но теперь вы знаете, что ставить, но не точно. Поэтому в этом случае вы используете POST
. Вы информируете сервер о последних новостях, и сервер решает, куда его поместить. Таким образом, вы можете думать о нем как о "переносе элемента" на ресурс, который уже присутствует (например, поток на форуме или что-то еще) - вы просто хотите что-то добавить.
Надеюсь, это имеет смысл...