1. 程式人生 > >REST模式中HTTP請求方法(GET,POST,PUT,DELETE)

REST模式中HTTP請求方法(GET,POST,PUT,DELETE)

 一直在測試REST模式的WEB SERVICE介面,客戶端的HTTP的請求方式一般分為四種:GET、POST、PUT、DELETE,這四種請求方式有什麼不同呢。簡單的說,GET就是獲取資源,POST就是建立資源,PUT就是更新資源,DELETE就是刪除資源。具體來說:

  PUT:PUT請求是向伺服器端傳送資料的,從而改變資訊,該請求就像資料庫的update操作一樣,用來修改資料的內容,但是不會增加資料的種類等,也就是說無論進行多少次PUT操作,資源不會增加。

  DELETE:DELETE請求顧名思義,就是用來刪除某一個資源的,該請求就像資料庫的delete操作。

  GET:GET操作是安全的。所謂安全是指不管進行多少次操作,資源的狀態都不會改變,GET只是訪問和檢視資源。

  POST:操作不是安全的,每次請求都會建立資源,當我們多次發出POST請求後,其結果是創建出了多個資源。還有一點需要注意的就是,建立操作可以使用POST,也可以使用PUT,區別在於POST 是作用在一個集合資源之上的(/uri),而PUT操作是作用在一個具體資源之上的(/uri/xxx),再通俗點說,如果URL可以在客戶端確定,那麼就使用PUT,如果是在服務端確定,那麼就使用POST,比如說很多資源使用資料庫自增主鍵作為標識資訊,而建立的資源的標識資訊到底是什麼只能由服務端提供,這個時候就必須使用POST。 

下面說說GET和POST的區別:

  1、GET請求的資料會附在URL之後(就是把資料放置在HTTP協議頭中),以?分割URL和傳輸資料,引數之間以&相連,如:getCitycode?lat=100.22&lon=35.33

   POST把提交的資料則放置在是HTTP包的包體中。
  2、在瀏覽器上,GET方式提交的資料是有限制的,例如有時候請求的URL太長,會返回錯誤;但如果是客戶端GET請求,是沒有資料的限制的。POST沒有限制,可傳較大量的資料。
  3、POST的安全性要比GET的安全性高。這裡所說的安全性和上面GET提到的“安全”不是同個概念。上面“安全”的含義僅僅是不作資料修改,而這裡安全的含義是真正的Security的含義,比如:通過GET提交資料,使用者名稱和密碼將明文出現在URL上,檢視瀏覽器的歷史紀錄,就可以檢視到GET請求的引數,比如登入的帳號密碼、搜尋關鍵字、個人資訊等。