1. 程式人生 > >Java常見HTTP請求方法RequestMethod

Java常見HTTP請求方法RequestMethod

spring中常見的http請求訪問方法:

public enum RequestMethod {

    GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE

}

如: @RequestMapping(value = “/new”, method = RequestMethod.GET)

各個請求方法的使用場景

  • GET

平時網頁的一些基本的URL都是GET請求的,用於執行查詢操作
但是由於GET中URL是有長度的限制的,而GET會把所有的引數都放在URL中,比如

xxx?name=xingoo
因此就會有下面的問題:

1 資料都明文暴露,使用者可以直接看到
2 資料長度有限制

  • POST

由於上面GET的缺點,POST正好彌補了這些問題。POST方法把資料都存放在body裡面,這樣即突破了長度的限制;又保證使用者無法直接看到。在使用表單時,比較常用

  • HEAD

HEAD請求只會返回首部的資訊,不會返回相應體。通常用於測試資料是否存在、當做心跳檢測等等。

  • PUT

與GET相反,用於改變某些內容

  • DELETE

刪除某些資源

  • TRACE

可以理解成,我們為了看看一條請求在到達服務前資料發生了什麼變化。可以使用這個命令,它會在最後一站返回原始資訊,這樣就可以觀察到中間是否修改過請求。(經常會用於跨站攻擊,所以有一定的安全隱患)

  • OPTIONS

詢問伺服器支援的方法。

  • PATCH

這個方法不太常見,是servlet 3.0提供的方法,主要用於更新部分欄位。與PUT方法相比,PUT提交的相當於全部資料的更新,類似於update;而PATCH則相當於更新部分欄位,如果資料不存在則新建,有點類似於neworupdate。

在控制器中,我們可以通過設定RequestMapping的method方法,改變接收資料controller:
@Controller
public class HelloController {
@RequestMapping(value=”/test”,method=RequestMethod.GET)
public @ResponseBody String get(){
return “from get”;
}
@RequestMapping(value=”/test”,method=RequestMethod.POST)
public @ResponseBody String post(){
return “from post”;
}
}
雖然上面的Url是一樣的,但是由於請求方法不同,他們會根據請求方法使用相應的控制器方法處理請求。