Http protocol (RFC2616) defines the two verbs:  get / put. It seems a little confusion that both of them send data to server. What's the different?

The RFC itself explains the difference:

The fundamental difference between the POST and PUT requests is reflected in the different meaning of the Request-URI. The URI in a POST request identifies the resource that will handle the enclosed entity. That resource might be a data-accepting process, a gateway to some other protocol, or a separate entity that accepts annotations. In contrast, the URI in a PUT request identifies the entity enclosed with the request -- the user agent knows what URI is intended and the server MUST NOT attempt to apply the request to some other resource. If the server desires that the request be applied to a different URI, it MUST send a 301 (Moved Permanently) response; the user agent MAY then make its own decision regarding whether or not to redirect the request.

 

The official HTTP RFC specifies POST to be:

  • 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.

 

In OData protocol when create new entity to entity set,   the URL identity the entity set and the body contains the data for new entity,   the http method should be post.

If it send a group of data to create new entity group ,  it is better to choose the  Put method.

 

posted on 2012-10-29 17:46  RocZhang  阅读(356)  评论(0编辑  收藏  举报