HTTP請求用於與CouchDB進行通信。
通過使用這些請求,可以 -
- 從資料庫檢索數據
- 將數據以檔的形式存儲到資料庫中
- 查看並格式化存儲在資料庫中的文檔。
HTTP請求格式
在通信時,資料庫使用不同的請求格式。 這些請求格式有:get
,head
,post
,put
,delete
和copy
。
在CouchDB中,輸入數據和輸出數據結構將以所有操作的JavaScript對象符號(JSON)對象的形式。
請參閱用於與CouchDB通信的HTTP協議的不同請求格式,如下所列 -
GET:GET請求格式用於獲取特定專案。 要獲取不同的專案,必須發送特定的網址模式。 在CouchDB中使用此GET請求,以JSON文檔的形式獲取靜態項,資料庫文檔和配置以及統計資訊。
HEAD:HEAD方法用於獲取GET請求的HTTP頭,而不需要回應的正文。
POST:Post請求用於上傳數據。 在CouchDB中,POST請求主要用於設置值,上傳文檔,設置文檔值,還可以啟動某些管理命令。
PUT:PUT請求用於創建新對象,資料庫,文檔,視圖和設計文檔。
DELETE:DELETE請求用於刪除文檔,視圖和設計文檔。
COPY:COPY方法用於複製文檔和對象。
HTTP請求標頭
提供HTTP標頭以獲得正確的格式和編碼。 HTTP請求頭與請求一起發送,同時將請求發送到CouchDB伺服器。 下麵將解釋不同的Http請求標頭。
Content-type:內容類型(Content-type)標頭用於指定提供給伺服器的數據的內容類型以及請求。大多數情況下,發送的內容類型將是MIME類型或JSON(application/JSON)。 強烈建議在請求上使用Content-type
。
Accept:Accept標頭用於指定伺服器,客戶端可以理解的數據類型列表,以便伺服器將使用這些數據類型發送其回應。 一般來說,可以發送客戶端接受的MIME數據類型列表,資料項目之前以冒號分隔。
在CouchDB中,不需要在查詢中使用Accept
,但強烈建議確保返回的數據可以由客戶端處理。
HTTP回應頭
HTTP回應頭是伺服器發送的一種回應類型。 這些標頭提供了有關伺服器作為回應發送的內容的資訊。
有4
種類型的回應頭:
Content-type : 內容類型(Content-type)回應頭指定伺服器返回的數據的MIME類型。對於大多數請求,返回的MIME類型是text/plain
。
Cache-control:緩存控制(Cache-control
)回應頭用於建議客戶端處理伺服器發送的資訊。 CouchDB主要返回must-revalidate
,這表示如果可能的話,該資訊應該被重新驗證。
Content-length : 內容長度(Content-length
)回應頭用於獲取伺服器發送的內容的長度(以位元組為單位)。
Etag : Etag標頭用於顯示文檔或視圖的修訂版本。
HTTP頭的狀態碼
下表指定了HTTP頭髮送的狀態代碼及其工作情況:
狀態碼 | 描述 |
---|---|
200 - OK | 當請求成功完成時,會生成此狀態。 |
201 - Created | 創建文檔時會生成此狀態。 |
202 - Accepted | 當接受請求時,會生成此狀態。 |
404 - Not Found | 當伺服器無法找到請求的內容時,會發出此狀態。 |
405 - Resource Not Allowed | 當所使用的http請求類型無效時,會發出此狀態。 |
409 - Conflict | 每當有任何更新衝突時,都會發出此狀態。 |
415 - Bad Content Type | 此狀態指定伺服器不支持請求的內容類型。 |
500 - Internal Server Error | 無論何時請求發送無效數據,都會發出此狀態。 |
與資料庫交互的HTTP URL路徑
以下是用於直接與資料庫交互的一些URL路徑列表。
URL | 操作說明 |
---|---|
PUT /db |
PUT url用於創建一個新的資料庫。 |
GET /db |
GET url用於獲取有關現有資料庫的資訊。 |
PUT /db/document |
PUT url用於創建文檔/更新現有文檔。 |
GET /db/document |
GET url用於獲取文檔。 |
DELETE /db/document |
DELETE url用於從指定的資料庫中刪除指定的文檔。 |
GET /db/_design/design-doc |
此URL用於獲取設計文檔的定義。 |
GET /db/_design/designdoc/_view/view-name |
此URL用於從指定的資料庫訪問設計文檔中的視圖 - view-name 。 |