【http】http的方法,狀態碼和組成部分

HttpHypertext Transfer Protocol

HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議。它可使瀏覽器更加高效,使網絡傳輸減小。它不只保證計算機正確快速地傳輸超文本文檔,還肯定傳輸文檔中的哪一部分,以及哪部份內容首先顯示(如文本先於圖形)等。web

用於http協議交互的信息被稱爲http報文。請求端(客戶端)的http報文叫作請求報文,響應端(服務器)的叫作響應報文。瀏覽器

請求報文由請求方法,請求URI,協議版本,首部字段(可選),內容實體(可選)構成緩存

響應報文由協議版本,狀態碼,緣由短語,首部字段(可選),實體主體構成服務器

 

在每份報文中,請求URI,協議版本,狀態碼,緣由短語,首部字段屬於報文首部,而後空一行,剩下的是報文主體。網絡

首部字段有4種:請求首部字段,響應首部字段,通用首部字段,實體首部字段,通用首部和實體首部爲請求報文和響應報文都有的,而請求首部只有請求報文有,響應首部只有響應報文有。app

 

報文是http通訊中的基本單位,由8位組字節流組成,經過http通訊傳輸。編碼

實體做爲請求和響應的有效載荷數據(補充項)被傳輸,其內容由實體首部和實體主體組成spa

通常狀況下,報文主體等於實體主體。只有當傳輸中進行編碼操做時,實體主體的內容發生變化,纔會和報文主體不一致。代理

 

http1.0http1.1支持的方法orm

方法

說明

支持http協議的版本

GET

獲取已被URI識別的資源

1.0,1.1

POST

傳輸實體主體

1.0,1.1

PUT

傳輸文件(不帶驗證機制)

1.0,1.1

HEAD

得到報文首部

1.0,1.1

DELETE

刪除文件(不帶驗證機制)

1.0,1.1

OPTIONS

詢問支持方法

1.1

TRACE

追蹤路徑

1.1

CONNECT

要求用隧道協議連接代理

1.1

LINK

創建和資源之間的聯繫

1.0

UNLINK

斷開連接關係

1.0

 

 

 

http狀態碼

狀態碼

類別

緣由短語

1XX

Informational(信息性狀態碼)

接收的請求正在處理

2XX

Success(成功狀態碼)

請求正常處理完畢

3XX

Redirection(重定向狀態碼)

須要進行附加操做以完成請求

4XX

Client Error(客戶端錯誤狀態碼)

服務器沒法處理請求

5XX

Server Error(服務器錯誤狀態碼)

服務器處理請求出錯

 

14中經常使用的狀態碼

200 OK

表示客戶端發來的請求在服務器端被正常處理了

204 No Content

表示服務器接收的請求已處理成功,但返回的響應報文不含實體主體部分

206 Partial Content

表示客戶端進行了範圍請求,而服務器成功執行了這部分的GET請求

301 Moved Permaently

永久性重定向,表示請求的資源已被分配了新的URI,之後應使用該資源如今所指的URI

302 Found

臨時性重定向,表示請求的資源已被分配了新的URI,但願用戶本次能使用新的URI訪問

303 See Other

表示因爲請求對應的資源存在着另外一個URI,應使用GET方法定向獲取請求的資源

304 Not Modified

表示客戶端發送附帶條件請求時,服務器端容許請求訪問資源,但因發生請求爲知足條件的狀況後,直接返回304 Not Modified(服務器端資源爲改變,可直接使用客戶端未過時的主體部分)

307 Temporary Redirect

臨時重定向,和302含義相同

400 Bad Request

表示請求報文中存在語法錯誤。服務器端沒法識別請求

401 Unauthorized

表示發送的請求須要經過http認證的認證信息。若以前已進行過一次請求,則表示用戶認證失敗

403 Forbidden

表示請求資源的訪問被服務器拒絕了。沒有權限訪問

404 Not Found

表示服務器沒法找到請求的資源,即沒有這個資源

500 Internal Server Error

表示服務器端在執行請求時發生了錯誤,也有多是web應用存在bug或某些臨時性故障

503 Service Unavailable

表示服務器暫時處於超負載或正在進行停機維護,如今沒法處理請求

 

 

http通用首部字段

通用首部字段名

說明

Cache-Control

控制緩存的行爲

Connection

管理逐跳首部和持久鏈接

Date

建立報文的日期時間

Pragma

報文指令

Trailer

報文末端的首部一覽

Transfer-Encoding

指定報文主體的傳輸編碼方式

Upgrade

升級爲其餘協議,檢測是否可以使用更高版本協議通訊

Via

代理服務器的相關信息,追蹤客戶端和服務器之間的請求和響應報文的傳輸路徑

Warning

錯誤通知,一般會告知用戶一些與緩存相關的問題的警告

 

http1.1 警告碼(Warning共七種)

警告碼

警告內容

說明

110

Response is stale(響應已過時)

代理返回已過時的資源

111

Revalidation failed(再驗證失敗)

代理沒法驗證資源有效性時失敗(服務器沒法到達等緣由)

112

Disconnection operation(斷開連接操做)

代理與互聯網連接被故意切斷

113

Heuristic expiration(試探性過時)

響應的使用期超過24小時(有效緩存的設定時間大於24小時的狀況下)

199

Miscellaneous warning(雜項警告)

任意警告的內容

214

Tansformation applied(使用了轉換)

代理對內容編碼或媒體類型等執行了某些處理時

299

Miscellaneous persistent warning(持久雜項警告)

任意的警告內容

 

 

http請求首部字段

請求首部字段

說明

Accept

用戶代理可處理的媒體類型及媒體類型的相對優先級

Accept-Charset

優先的字符集,用戶代理支持的字符集及相對優先順序

Accept-Encoding

優先的內容編碼,用戶代理支持的內容編碼及優先級順序

Accept-Language

優先的語言,用戶代理能處理的天然語言及天然語言集的相對優先級

Authorization

Web認證信息

Expect

期待服務器的特定行爲

From

用戶的電子郵件地址

Host

請求資源所在的服務器(主機名和端口號)

If-Match

和實體標記(ETag)比較,若相同則執行請求,不然返回412狀態碼

If-Modefied-Since

If-Modefied-Since字段值早於資源的更新時間,則但願處理該請求,不然返回304狀態碼

If-None-Match

比較實體標記(與If-Match想反)

If-Range

資源未更新時發送實體Byte的範圍請求。若If-Range字段值和請求資源的ETag值或時間相一致時,則做爲範圍請求處理,不然返回全體資源

If-Unmodified-Since

比較資源的更新時間(與If-Modified-Since想反)

Max-Forwards

最大傳輸逐跳數(以十進制形式指定可通過的服務器的最大數目)

Proxy-Authorization

代理服務器要求客戶端的認證信息

Range

實體的字節範圍請求

Referer

對請求中URI的原始獲取方(請求的原始資源的URI

TE

告知服務器客戶端能處理響應的傳輸編碼方式及相對優先級

User-Agent

http客戶端程序的信息

 

 

http響應首部字段

響應首部字段

說明

Accept-Ranges

是否接受字節範圍請求

Age

資源建立通過的時間,單位爲秒

ETag

資源的匹配信息,能告知客戶端實體標識

Location

令客戶端重定向至指定URI

Proxy-Authenticate

代理服務器對客戶端的認證信息

Retry-After

對再次發起請求的時機要求

Server

http服務器的安裝信息

Vary

代理服務器緩存的管理信息

WWW-Authenicate

服務器對客戶端的認證信息

 

 

http實體首部字段

實體首部字段

說明

Allow

資源可支持的http方法

Content-Encoding

實體適用的編碼方式

Content-Language

實體的天然語言

Content-Length

實體的大小(單位爲字節)

Content-Location

替代對應資源的URI

Content-MD5

實體主體的報文摘要

Content-Range

實體主體的位置範圍

Content-Type

實體主體的媒體類型

Expires

實體主體過時的日期時間

Last-Modified

資源最後修改的日期時間

相關文章
相關標籤/搜索