1. 程式人生 > >RESTful中不同HTTP請求型別的含義

RESTful中不同HTTP請求型別的含義

RESTful web服務在設計上非常依賴於HTTP。通過使用不同的HTTP方法來完成工作,使用HTTP的響應程式碼來同時使用者一個請求是否成功。RESTful表示Representational State tranfer,使用HTTP來實現兩個系統之間通訊。RESTful web服務是一些指向資源的URI(統一資源識別符號)的集合。這些URI可以指向一個資源或者多個資源的集合。比如說,/employee/101包含的是員工101的詳細資訊,而/employees會返回所有員工的列表。在RESTful web服務中,HTTP請求型別表示要對資源進行的操作。

例如:
使用HTTP GET請求訪問/employee/101

,可以取回該使用者的詳細資訊。
使用POST請求訪問/employee/102,將會建立一個ID為102的新員工。、使用PUT請求訪問/employee/101,可以用來更新員工101的資訊。
使用DELETE請求訪問/employee/101,可以刪除ID為101的員工的資料。

在使用PUT和POST請求的時候,具體的資料將會包含在請求體中。

Purpose of HTTP Request in RESTful WebService

當使用RESTful web服務的時候,每一種HTTP請求方法的含義如下:

GET

從伺服器取回資料(只是取回資料,而不會產生其他的影響)。這是一個冪等的方法(譯者注:使用相同的引數重複執行,應該能夠獲取到相同的結果)。下面是一個使用GET請求從伺服器獲取id為123的書的例子:

GET /books/123

POST

POST請求通常用來建立一個實體,也就是一個沒有ID的資源。一旦這個請求成功執行了,就會在HTTP請求的響應中,返回這個新建立的實體的id。我們通常用它來上傳檔案或者表單。
比如,下面這個URL將會在伺服器上建立一本新書:

POST /books/

PUT

PUT請求和POST請求類似,但是一般用來更新一個已有的實體。通過把已經存在的資源的ID和新的實體用PUT請求上傳的伺服器,來更新資源。
比如,下面這個URL將會替換掉伺服器上的ID為123的書:

PUT /books/123

可以參考Leonard Richardson, Sam Ruby, and David Heinemeier Hansson寫的RESTful Web Services

,來了解RESTful API中什麼時候該使用PUT和POST。

DELETE

DELETE方法用來從伺服器上刪除資源。和PUT類似,你需要把要刪除的資源的ID上傳給伺服器。
比如下面這個URL可以用來刪除伺服器上ID為123的書:

DELETE /books/123

TRACE

提供一種方法來測試當一個請求發生的時候,伺服器通過網路收到的內容。所以,它會返回你傳送的內容。

HEAD

HEAS請求和GET請求資源類似,但是僅僅返回響應的頭部(沒有具體的響應體)。同時,和GET請求類似,HEAD也是冪等的,不會在伺服器上造成其他影響。

OPTIONS

OPTIONS方法允許客戶端請求一個服務所支援的請求方法。它所對應的響應頭(response header)是Allow, 它非常簡單地列出了支援的方法。
(以下例子為譯者新增)
比如:

200 OK
Allow: HEAD,GET,PUT,DELETE,OPTIONS

CONNECT

主要用來建立一個對資源的網路連線(通常請求一些能夠把HTTP連線轉發成為TCP連線並保持的代理)。一旦建立連線後,會響應一個200狀態碼和一條“Connection Established”的訊息。

下面這張圖展示了在RESTful web服務中,不同的HTTP方法的用法:


不同HTTP方法 的用法

以上就是在RESTful web服務中不同HTTP請求型別的含義,不管是在Java中還是在其他技術中。最重要的是理解PUT和POST之間的區別,儘管PUT和POST都可以用來建立和更新實體,但是通常更傾向於使用POST來建立,而使用PUT來更新已存在的實體。

相關推薦

RESTful不同HTTP請求型別含義

RESTful web服務在設計上非常依賴於HTTP。通過使用不同的HTTP方法來完成工作,使用HTTP的響應程式碼來同時使用者一個請求是否成功。RESTful表示Representational State tranfer,使用HTTP來實現兩個系統之間通訊。RESTful web服務是一些指向資源的U

js學習總結----ajaxhttp請求方式及同步編程和異步編程

功能 依然 interval 需要 發送請求 console dom 屬於 相關 一、請求方式 var xhr = createXHR(); xhr.open("get","/getList?num=12",true); xhr.open("post","/getList

RESTfulHTTP協議

附加 nav 語法錯誤 -- 刪除 eth ror head version RESTful是一種基於資源的軟件架構風格。 所謂資源,就是網絡上的一個實體,或者說是網絡上的一個具體信息。一張圖片、一首歌曲都是一個資源。 RESTful API是基於HTTP協議的一種實現。(

在 Angular6 使用 HTTP 請求服務端資料的步驟詳解

第一步 準備好api介面地址, 例如 https://api.example.com/api/ 第二步 在根元件 app.components.ts 中引入 HttpClientModule 模組。 ? 1 2 3 4 5 6 7

angular的$http請求跨域,採用CROS方式解決

anjular中的controller層$http服務,解決跨域請求。 js書寫:     /**     * 採用CORS方式實現ajax跨域請求     */    $http({&

angular的$http請求跨域,采用CROS方式解決

req urn 響應頭信息 info 圖片 scope 信息 alt 解決 anjular中的controller層$http服務,解決跨域請求。 js書寫: /** * 采用CORS方式實現ajax跨域請求 */ $http({

AJAXHTTP請求方式

HTTP METHOD HTTP常用的幾種請求方式: 1.GET 2.POST 3.PUT 4.DELETE 5.HEAD 這些請求方式不管是哪一種都可以向伺服器請求獲取資料或者傳遞資料,從本質上無區別,只是在行業內被開發人員約定俗成各自不同的用處,並非是一種標準。 方法分

在 Angular6 使用 HTTP 請求服務端資料

第一步 準備好api介面地址, 例如 https://api.example.com/api/ 第二步 在根元件 app.module.ts 中引入 HttpClientModule 模組。 // app.module.ts import {HttpClientMo

在LoadRunner設定HTTP請求time out的時間

If the error occurs during a scenario execution and happens in the middle of the scenario (usually with a large amount of load), the application is handlin

如何在java發起http請求

1、post(引數json格式)try { //請求地址 URL urlHttp = new URL(StaticData.URL+"/condition/query_camera"); // 將url 以 open方法返回的urlConnection 連線強轉為H

AngularJShttp請求預設為非同步的,請問如何設定為同步請求呢?--使用$q

在工作時遇到這樣一個問題,在儲存資料時,需要對儲存的資料進行多次校驗(與後臺互動的校驗),如果校驗成功則執行儲存操作,如果不成功則返回提示。話不多說,直接上程式碼 var checkFun1 = f

讓瀏覽器不再顯示 https 頁面http 請求警報

本文為歸檔內容,原始地址在 部落格園. HTTPS 是 HTTP over Secure Socket Layer,以安全為目標的 HTTP 通道,所以在 HTTPS 承載的頁面上不允許出現 http 請求,一旦出現就是提示或報錯: Mixed Content: The page at “https

AndroidHTTP請求

在Android上傳送HTTP請求的方式一般有兩種,HttpURLConnection和HttpClient。 1、HttpURLConnection: 首先需要獲取HttpURLConnection的例項,一般只需要new一個URL物件並傳入目標的網路地址

在Node.js發起HTTP請求的5種方法

深入解析Node.js中5種發起HTTP請求的方法 翻譯:瘋狂的技術宅 英文標題:5 Ways to Make HTTP Requests in Node.js 原文連結:www.twilio.com/blog/2017/0… 建立HTTP請求使現代程式語言的核心功能之一,也是

讓瀏覽器不再顯示 https 頁面http 請求警報,所有靜態資源強制轉https

HTTPS 是 HTTP over Secure Socket Layer,以安全為目標的 HTTP 通道,所以在 HTTPS 承載的頁面上不允許出現 http 請求,一旦出現就是提示或報錯: Mixed Content: The page at ‘htt

Nginx 處理 HTTP 請求

概述         在 Nginx 的初始化啟動過程中,worker 工作程序會呼叫事件模組的ngx_event_process_init 方法為每個監聽套接字ngx_listening_t 分配一個 ngx_connection_t 連線,並設定該連線上讀事件的

springMVC出現http請求400錯誤問題

支付成功後,需要其他系統跳轉到我的成功頁面:我傳遞的回撥地址:http://aggrefront/cashier/qrResult?merchantNo=110047782&orderId=QR1111111113445367 但是系統重定向到我這邊時,直接報400

【轉】Androidhttp請求 URLEncode

原地址:http://blog.csdn.net/a102111/article/details/40978541 最近在搞http相關的處理,碰到一個URLEncode的問題,簡單記錄下,供後期查詢。 傳送給服務端的請求中的引數值,如果含有特殊符號,需要是做U

golang傳送http請求的幾種常見情況

整理一下golang中各種http的傳送方式 最初的一些專案中,很多的地方都使用到了golang傳送http請求,之後再對請求收到的結果進行一些處理,所用到的模式也比較固定,這裡整理一下集中http的傳送方式,先記錄這麼多,再一點一點新增。 最基本的場景 方式一 使

Androidhttp請求 URLEncode

最近在搞http相關的處理,碰到一個URLEncode的問題,簡單記錄下,供後期查詢。 傳送給服務端的請求中的引數值,如果含有特殊符號,需要是做URLEncode,服務端才可以正常解析,否則可能會出錯。 URLEncode主要是把一些特殊字元轉換成轉移字元,比如:&am