HyperText Transfer Protocol 超文本傳輸協議 應用層通訊協議瀏覽器
採用請求/響應模型,一個客戶端和服務器端請求和應答的標準(TCP,默認端口80)。HTTPS承載於TLS或SSL協議層之上。
緩存
HTTP的頭域包括通用頭,請求頭,響應頭和實體頭四個部分服務器
客戶端向服務器發送一個請求,請求頭包含請求的方法、URL、協議版本、以及包含請求修飾符、客戶信息和內容的相似於MIME的消息結構。優化
請求報文格式:請求行 - 通用信息頭 - 請求頭 - 實體頭 - 報文主體編碼
服務器以一個狀態行做爲響應,響應的內容包括消息協議的版本,成功或者錯誤編碼加上包含服務器信息、實體元信息以及可能的實體內容。url
應答報文格式: 狀態行 - 通用信息頭 - 響應頭 - 實體頭 - 報文主體spa
包含請求和響應消息都支持的頭域,通用頭域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。.net
public | 響應可被任何緩存區緩存 |
private | 對於單個用戶的整個或部分響應消息,不能被共享緩存處理。這容許服務器僅僅描述當用戶的部分響應消息,此響應消息對於其餘用戶的請求無效 |
no-cache | 請求或響應消息不能緩存 |
no-store | 在請求消息中發送將使得請求和響應消息都不使用緩存。 |
max-age | 指示客戶機能夠接收生存期不大於指定時間(以秒爲單位)的響應 |
min-fresh | 指示客戶機能夠接收響應時間小於當前時間加上指定時間的響應 |
max-stale | 客戶機能夠接收超出超時期間的響應消息。若是指定max-stale的值,那麼客戶機能夠接收超出超時期指定值以內的響應消息。 |
Date頭域
表示消息發送的時間(世界標準時),時間的描述格式由rfc822定義。
eg: Date:Mon,31Dec200104:25:57GMT。orm
Pragma頭域
用來包含實現特定的指令,最經常使用的是Pragma:no-cache。在HTTP/1.1協議中,它的含義和Cache-Control:no-cache相同。blog
容許客戶端向服務器傳遞關於請求或者關於客戶機的附加信息。包含: Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If-Range、If-Range、If-Unmodified-Since、Max-Forwards、Proxy-Authorization、Range、Referer、User-Agent。
容許服務器傳遞不能放在狀態行的附加信息。包含Age、Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW-Authenticate
請求消息和響應消息均可以包含實體信息,實體信息通常由實體頭域和實體組成。實體頭域包含關於實體的原信息,實體頭包括Allow、Content-Base、Content-Encoding、Content-Language、Content-Length(實際傳送的字節數)、Content-Location、Content-MD五、Content-Range(傳送的範圍,在斷點續傳中與請求頭中的Range合用)、Content-Type、Etag、Expires、Last-Modified、extension-header。
(實體能夠是一個通過編碼的字節流,它的編碼方式由Content-Encoding或Content-Type定義,它的長度由Content-Length或Content-Range定義)