HTTP是一種請求/回應(request/response)的傳輸協定。客戶端應用程式要求一份文件,伺服端就會傳回狀態碼(status code)。
客戶端的要求至少須包括一個要求方法(request method),一個用來分辨資源的URI(Uniform Resource Identifier)及HTTP協定的版本。此外,客戶端也可以將客戶端應用程式的相關資訊,要求修飾子(requestmodifier),甚至資料本身包含到request中。
最新的HTTP定義的要求型態包括OPTIONS, GET, HEAD, POST , PUT, DELETE, TRACE。
GET方法用來擷取由URI所確認的資訊,並將其傳回到客戶端,我們可將一些標頭(header)包含進來,以適當地修改GET方法。
HEAD與GET方法類似,主要差別在於使用HEAD時,伺服端是不會傳回訊息給客戶端的。
狀態碼220-299:用來代表要求的順利完成(也有可能是部份完成)。
狀態碼300-399:用來表示某種型態的轉客(redirection)。
狀態碼400-499:用來代表要求錯誤,如文件無法找到或存取等。
狀態碼超過500:代表伺服器的錯誤。
常用的HTTP回應碼(狀態碼)
代碼
|
訊息
|
說明
|
200
|
正確無誤
|
要求成功完成
|
301
|
永遠地移動
|
資源將會永遠地重新定位。如果新的URI是一個網址,將會放在Location欄位中。
|
302
|
暫時地移動
|
資源將為暫時地重新定位。如果新的URI是一個網址,將會放在Location欄位中。
|
304
|
未更新
|
用來回應GET要求。這個錯誤訊息是代表資源並未被更改。
|
400
|
錯誤的要求
|
伺服端無法瞭解客戶端所傳送的要求。可能是語法錯誤。客戶端不應再傳送這個錯誤要求。
|
401
|
未授權
|
要求需要使用者的授權。客戶端應該將適當的Authorization標頭欄位包括進來,然後再傳送這個要求。
|
403
| 禁止 |
伺服端瞭解要求,但不會執行這個要求。可能是未獲得許可。如果重送這個要求的話並不會改變狀態。
|
404
|
未發現
|
伺服端無法找到符合URI所指定的資源。
|
405
|
方法錯誤
|
要求中的方法對所指定的URI而言是不合法的。
|
407
|
需有Proxy的認證
|
客戶端必須先得到代理伺服器的認證,才可以作這個要求。
|
410
|
不見了
|
所指定的資源已不可使用,且不知其新位址。
|
500
|
伺服端內部錯誤
|
伺服端發生一些錯誤,導致無法執行要求。
|
501
|
無此項功能
|
伺服端並沒有足夠的能力來執行客戶端的要求。
|
503
|
無法取得服務
|
伺服端目前四法執行客戶端所提出的要求。通常在伺服端的使用者人數超過其限制時會發生這樣的情況。
|
505
|
HTTP版本不支援
|
伺服端並未實作要求中所指定的HTTP版本。
|
沒有留言:
張貼留言