HTTP協定(HyperText Transfer Protocol,超文本傳輸協定)是用於從WWW伺服器傳輸超文本到本機瀏覽器的傳輸協定。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證電腦正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)等。
用於http協定互動的資訊稱為http封包。請求端(客戶端)的http封包叫做請求報文,回應端(伺服器)的叫做回應封包。
請求封包由請求方法,請求URI,協定版本,首部欄位(可選),內容實體(可選)構成
回應封包由協定版本,狀態碼,原因短語,首部欄位(可選),實體主體構成
在每份封包中,請求URI,協定版本,狀態碼,原因短語,首部欄位屬於封包首部,然後空一行,剩下的就是封包主體。
首部字段有4種:請求首部字段,響應首部字段,通用首部字段,實體首部字段,通用首部和實體首部為請求報文和回應封包都有的,而請求首部只有請求封包有,回應首部只有回應封包有。
訊息是http通訊中的基本單位,由8位元組位元組流組成,透過http通訊傳輸。
實體作為請求和回應的有效載荷資料(補充項)被傳輸,其內容由實體首部和實體主體組成
#一般情況下,封包主體等於實體主體。只有當傳輸中進行編碼操作時,實體主體的內容會發生變化,才會和封包主體不一致。
http1.0和http1.1支援的方法
方法 |
說明 |
支持http協定的版本 |
GET | 取得已被URI識別的資源 |
1.0,1.1 |
POST |
#傳送實體主體 |
1.0,1.1 |
PUT |
||
傳輸檔案 | (不帶驗證機制) |
|
########################################################## #####取得封包首部##################1.0,1.1#################### #######DELETE#########################刪除###檔案###(#######不帶驗證機制######)#####################1.0,1.1###### |
||
OPTIONS |
#詢問支援方法 |
1.1 |
#TRACE |
#TRACE
|
|
1.1 |
#CONNECT
|
|
#1.1 |
|
LINK
|
#1.0 |
#UNLINK
|
斷開連結關係 |
1.0 |
# |
http#狀態碼 |
類別
|
|
1XX In | formational (資訊性狀態碼) |
|
接收的請求正在處理
|
Success | (成功狀態碼)|
3XX Re | direction(重定向狀態碼) |
|
需要進行附加操作以完成請求
|
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意思相同 |
|
表示請求封包中存在 | 語法錯誤。伺服器端無法辨識請求 401 Unauthorized |
認證的認證資訊。若先前已進行過一次請求,則表示使用者認證失敗 |
#403 Forbidden |
http通用首個欄位
通用首個欄位名 |
說明 |
Cache -Control |
|
Connection |
管理逐跳首部和持久連線 |
#建立封包的日期時間 | |
Pragma |
#訊息指令 |
##Trailer |
|
http1.1 警告碼(Warning共七種)
警告碼 |
警告內容 |
|
| 110
#Response is stale(回應已過期 ) |
|
Revalidation failed(再驗證失敗 ) |
##代理無法驗證資源有效性時失敗(伺服器無法到達等原因) |
|
112 |
Disconnection operation(斷開連結操作) |
代理與互聯網連結被故意切斷 |
#113 |
Heuristic expiration(試探性過期) |
回應的使用期間超過24 小時(有效快取的設定時間大於24小時的情況) |
##199 |
Miscellaneous warning(雜項警告) |
#任意警告的內容 |
214 |
Tansformation applied(使用了轉換) |
##代理程式對內容編碼或媒體類型等執行了某些處理時 |
#299 |
Miscellaneous persistent warning(持久雜項警告) |
任意的警告內容 |
http請求首個欄位
請求首個欄位 |
說明 |
#Accept |
#使用者代理程式可處理的媒體類型及媒體類型的相對 |
Accept-Char | set | #優先的
Accept-Encoding |
|
Accept- | Lang uage |
|
Authorization | #Web
|
##Expect
|
|
From
|
Host
|
|
If-Match #與實體標記(ETag)比較,若相同則執行請求,否則回傳412 | 狀態碼|
If -Modefied-Since 若If-Modefied-Since欄位值早於資源的更新#時間,則希望處理該請求,否則返回304 | 狀態碼|
If-None-Match 比較實體標記(與If-Match ##想反) |
|
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
|
http實體首個欄位
實體首個欄位 |
說明 |
#Allow |
#資源可支援的http方法 |
Content-Encoding |
實體適用的編碼方式 |
Content-Language |
實體的自然語言 |
##Content-Length |
實體的大小(單位為位元組) |
Content-Location |
取代對應資源的URI |
##Content- | #實體主體的封包 |
Content-Range
|
實體主體的位置範圍
|
Content-Type
|
實體主體的媒體類型
|
Expires
|
實體主體過期的日期時間
|
Last-Modified
|
資源最後修改的日期時間
|
以上是http的方法,狀態碼和組成部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!