Add or Multiply 1 題解(第二類斯特林數)
阿新 • • 發佈:2021-08-23
一、報文格式:
一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求資料4個部分組成,具體格式如下;
1.請求報文格式
起始行 |
<method> |
空格 |
<request-url> |
空格 |
<version> |
首行 |
<headers> |
||||
主體 |
<entity-body> |
2.響應報文格式
起始行 |
<version> |
空格 |
<status> |
空格 |
<reason-phrase> |
首行 |
<headers> |
||||
主體 |
<entity-body> |
二、起始行說明:
起始行項 |
內容 |
說明 |
method | GET,POST | |
request-url |
http://localhost:8080/index |
請求地址 |
version |
HTTP/<major>.<minor> |
HTTP/1.1 |
status | 200,404 | 狀態嗎 |
reason-phreas | OK | 數字狀態碼 |
二、首部欄位
每個HTTP首部都有一種簡單的語法:名字後面跟著冒號(:),然後跟上可選的空格,再跟上欄位值,最後是一個CRLF。(或者換行符);
1.通用首部欄位
一般 請求首部和 響應首部 都支援;
首部欄位名 | 說明 | 備註 |
---|---|---|
Cache-Control | 控制快取的行為 | 請參考 快取指令一覽表 |
Connection | 連線的管理 |
|
Date | 建立報文的日期時間 | Pragma: no-cache |
Pragma | 報文指令 | |
Trailer | 報文末端的首部一覽 | |
Transfer-Encoding | 指定報文主體的傳輸編碼方式 | |
Upgrade | 升級為其他協議 | 使用首部欄位 Upgrade 時,還需要額外指定Connection:Upgrade |
Via | 代理伺服器的相關資訊 | |
Warning | 錯誤通知 |
2.請求首部欄位
首部欄位名 | 說明 | |
---|---|---|
Accept | 使用者代理可處理的媒體型別 |
|
Accept-Charset | 優先的字符集 |
|
Accept-Encoding | 優先的內容編碼 |
|
Accept-Language | 優先的語言(自然語言) |
|
Authorization | Web認證資訊 | |
Expect | 期待伺服器的特定行為 | |
From | 使用者的電子郵箱地址 | |
Host | 請求資源所在伺服器 | |
If-Match | 比較實體標記(ETag)條件請求 | 伺服器會比對 If-Match 的欄位值和資源的 ETag 值,僅當兩者一致 時,才會執行請求。反之,則返回狀態碼 412 Precondition Failed 的響 應 |
If-Modified-Since | 比較資源的更新時間 | |
If-None-Match | 比較實體標記(與 If-Match 相反) | |
If-Range | 資源未更新時傳送實體 Byte 的範圍請求 | |
If-Unmodified-Since | 比較資源的更新時間(與If-Modified-Since相反) | |
Max-Forwards | 最大傳輸逐跳數 | |
Proxy-Authorization | 代理伺服器要求客戶端的認證資訊 | |
Range | 實體的位元組範圍請求 | |
Referer | 對請求中URI的原始獲取方 |
首部欄位 Referer 會告知伺服器請求的原始資源的 URI。 |
TE | 傳輸編碼的優先順序 | |
User-Agent | HTTP客戶端程式的資訊 | 首部欄位 User-Agent 會將建立請求的瀏覽器和使用者代理名稱等資訊傳 達給伺服器 |
3.響應首部欄位
首部欄位名 | 說明 | |
---|---|---|
Accept-Ranges | 是否接受位元組範圍請求 | |
Age | 推算資源建立經過時間 | 首部欄位 Age 能告知客戶端,源伺服器在多久前建立了響應。欄位值 的單位為秒。 |
ETag | 資源的匹配資訊 | 首部欄位 ETag 能告知客戶端實體標識。它是一種可將資源以字串 形式做唯一性標識的方式。伺服器會為每份資源分配對應的 ETag 值。 |
Location | 令客戶端重定向至指定URI | 使用首部欄位 Location 可以將響應接收方引導至某個與請求 URI 位置 不同的資源 |
Proxy-Authenticate | 代理伺服器對客戶端的認證資訊 | |
Retry-After | 對再次發起請求的時機要求 | |
Server | HTTP伺服器的安裝資訊 | |
Vary | 代理伺服器快取的管理資訊 | |
WWW-Authenticate | 伺服器對客戶端的認證資訊 |
4.快取請求指令
指令 | 引數 | 說明 |
---|---|---|
no-cache | 無 | 強制向原伺服器再次驗證,不緩 存過期的資源 |
no-store | 無 | 不快取請求或響應的任何內容 |
max-age = [ 秒] | 必須 | 響應的最大Age值 |
max-stale( = [ 秒]) | 可省略 | 接收已過期的響應 |
min-fresh = [ 秒] | 必需 | 期望在指定的時間內的響應仍有效 |
no-transform | 無 | 代理不可更改媒體型別 |
only-if-cached | 無 | 代理不可更改媒體型別 |
cache-extension | - | 新指令標記(token) |
5.快取響應指令
指令 | 引數 | 說明 |
---|---|---|
public | 無 | 可向任意方提供響應的快取 |
private | 可省略 | 僅向特定使用者返回響應 |
no-cache | 可省略 | 快取前必需先確認其有效性 |
no-store | 無 | 不快取請求或響應的任何內容 |
no-transform | 無 | 代理不可更改媒體型別 |
must-revalidate | 無 | 可快取但必須再向源伺服器進行確認 |
proxy-revalidate | 無 | 要求中間快取伺服器對快取的響應有效性再進行確認 |
max-age=[秒] | 必需 | 響應的最大Age值 |
s-maxage=[秒] | 必需 | 公共快取伺服器響應的最大Age值 |
cache-extension | - | 新指令標記(token) |
6.實體首部欄位
說明:描述請求實體和響應實體的屬性;一般請求首部和響應首部都含有;
首部欄位名 | 說明 | |
---|---|---|
Allow | 資源可支援的HTTP方法 | |
Content-Encoding | 實體主體適用的編碼方式 | 告知客戶端伺服器對實體的主體部分選 用的內容編碼方式 |
Content-Language | 實體主體的自然語言 |
|
Content-Length | 實體主體的大小(單位:位元組) | |
Content-Location | 替代對應資源的URI | |
Content-MD5 | 實體主體的報文摘要 | |
Content-Range | 實體主體的位置範圍 | |
Content-Type | 實體主體的媒體型別 | |
Expires | 實體主體過期的日期時間 | |
Last-Modified | 資源的最後修改日期時間 |