get vs post vs put vs delete有什么区别?

时间:2014-04-07 17:26:30

标签: rest

我是新的休息和混淆http方法,如get,post,put,delete,option,head 任何人请分享我简单的例子。

这是我的例子:

@GET 
    @Produces("text/plain")
    public String getIt() {
        return "Hi there!";
    }

    @DELETE
    @Produces("text/plain")
    @Path("/getItDelTest")
    public String getItDelTest()
    {
        return "Hi there is getITDelTest method";
    }

    @HEAD
    @Produces("text/plain")
    @Path("/getItHeadTest")
    public String getItHeadTest()
    {
        return "Hi there is getITHeadTest method";
    }

    @PUT
    @Produces("text/plain")
    @Path("/getItPutTest")
    public String getItPutTest()
    {
        return "Hi there is getITPutTest method";
    }


    @POST
    @Produces("text/plain")
    @Path("/getItPost")
    public String getItPost()
    {
        return "Hi there is getItPost method";
    }

在这个例子之上我只是创建一个具有diffrent-2性质的简单方法但是我不明白为什么我们需要所有这些如果我们能够用post做所有这些动作

2 个答案:

答案 0 :(得分:2)

GET method仅用于数据检索和should not have any side-effects。但是POST是出于特定目的:改变服务器端的数据。

要更改资源的状态或更新资源,请使用PUT并删除或删除资源,请使用DELETE ..

请阅读:https://www.ibm.com/developerworks/webservices/library/ws-restful/

答案 1 :(得分:0)

区别在于HTTP Action动词。此动词包含在实际的HTTP消息中。这些动词的处理是特定于实现的。例如,在C#中,我可以在同一个控制器中有2个名为Hello的Web API方法。一个可以映射到GET,另一个映射到PUTDELETE等....