最近在看nodejs
,發現須要不少http
相關的知識,就去找了本「圖解HTTP」
看,
記錄下本身以爲比較重要的知識點html
http:// | user:passwd | @www.cheesekun.top | :80 | /dir/index.html | ?uid=1 | #ch1 |
---|---|---|---|---|---|---|
協議方案名 | 登陸信息 | 服務器地址 | 服務器端口 | 文件路徑 | 查詢字符串 | 片斷標識符 |
因爲字段類別不少,只挑選了一些打開網頁常見的字段
node
請求報文和相應報文都會使用的首部web
首部字段名 | 說明 | 某參數 | 做用 |
---|---|---|---|
Connection | 逐跳首部,鏈接的管理 | keep-alive | 客戶端與服務器進行持久鏈接,可用參數close斷開 |
從客戶端向服務器端發送請求報文時使用的首部。補充了請求的附加內容,客戶端信息,響應內容相關優先級等信息瀏覽器
首部字段名 | 說明 | 參數 | 做用 |
---|---|---|---|
Accept | 用戶代理可處理相對優先級的媒體類型 | text/html,application/xhtml+xml,image/webp,/;q=0.8 | 優先採用text和html格式,q爲優先權重值 |
Accept-Encoding | 優先的內容編碼 | gzip,deflate,sdch | 支持gzip等內容編碼及其優先級 |
Accept-Language | 優先的語言(天然語言) | zh-CN,zh;q=0.8,en-us,en; | 優先中文 |
Content-Length | 實體主題的大小(單位:字節) | ||
Host | 請求資源所在的服務器 | ||
Referer | 對請求中URI的原始獲取方 | https://www.google.com | 該頁面是在google連接而來 |
User-Agent | HTTP客戶端程序的信息 | ||
X-Request-With | 客戶端的請求是Ajax請求仍是其餘請求 |
從服務器端向客戶端返回響應報文時使用的首部。補充了響應的附加內容,也會要求客戶端附加額外的內容信息緩存
首部字段名 | 說明 | 某參數 | 做用 |
---|---|---|---|
Accept-Ranges | 是否接受字節範圍請求 | ||
Content-Type | 實現主體的媒體類型 | ||
Date | 建立報文的日期時間 | ||
ETag | 資源的匹配信息 | "一串字符" | 標識全部資源 |
Expires | 實體主體過時的日期時間 | 一個日期 | 緩存超過該日期會從源服務器獲取資源 |
Location | 轉移URI指向 | 一個URI | 配合3xx,重定向提示轉移URI路徑 |
Last-Modified | 資源的最後修改日期時間 | ||
Pragma | 報文指令 | no-cache | 兼容http1.0,http1.1使用Cache-Conrol:no-cache,表示不接收緩存 |
Transfer-Encoding | 指定報文主體的傳輸編碼方式 | chunked(分塊) | 分塊傳輸編碼 |
Vary | 代理服務器緩存的管理 | Accept-Language | 從代理服務器拿取A-L的緩存,若無,則從源服務器拿 |
針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更新時間等與實體有關的信息服務器
狀態碼告知從服務器端返回的請求結果app
狀態碼 | 類別 | 緣由短語 |
---|---|---|
1XX | Informational(信息性狀態碼) | 接收的請求正在處理 |
2XX | Success(成功狀態碼) | 請求正常處理完畢 |
3XX | Redirection(重定向狀態碼) | 須要進行附加操做以完成請求 |
4XX | Client Error(客戶端錯誤狀態碼) | 服務器沒法處理請求 |
5XX | Server Error(服務器錯誤狀態碼) | 服務器處理請求出錯 |
200 OK:表示客戶端的請求被服務器成功處理ui
204 No Content:該狀態碼錶明服務器接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分。另外,也不容許返回任何實體的主體。好比,當從瀏覽器發出請求處理後,返回 204 響應,那麼瀏覽器顯示的頁面不發生更新。google
206 Partial Content:該狀態碼錶示客戶端進行了範圍請求,而服務器成功執行了這部分的GET請求。響應報文中包含由Content-Range 指定範圍的實體內容。編碼
3XX 響應結果代表瀏覽器須要執行某些特殊的處理以正確處理請求。
301 Moved Permanently:永久性重定向。該狀態碼錶示請求的資源已被分配了新的 URI,之後應使用資源如今所指的 URI。也就是說,若是已經把資源對應的 URI保存爲書籤了,這時應該按 Location 首部字段提示的 URI 從新保存。
302 Found:臨時性重定向:該狀態碼錶示請求的資源已被分配了新的URI,但願用戶本次請求能使用新的URI。302和301很類似,302表示的URI並非永久性移動,換句話說就是URI還有可能發生變化。
303 See Other:該狀態碼錶示因爲請求對應的資源存在着另外一個 URI,應使用 GET方法定向獲取請求的資源。303和302有着類似的功能,他們之間的區別是303狀態碼錶示明確客戶端採用GET請求獲取資源
304 Not Modified:該狀態碼錶示客戶端發送附帶條件的請求時,服務器端容許請求訪問資源,但未知足條件的狀況。304狀態碼返回時,不包含任何響應的主題部分。跟重定向沒有關係。
4XX響應結果表示錯誤發生在客戶端
400 Bad Request:該狀態碼錶示請求報文中存在語法錯誤。當錯誤發生時,需修改請求的內容後再次發送請求。另外,瀏覽器會像 200 OK 同樣對待該狀態碼。
401 Unauthorized:該狀態碼錶示發送的請求須要有經過 HTTP 認證(BASIC 認證、DIGEST 認證)的認證信息。
403 Forbidden:該狀態碼代表對請求資源的訪問被服務器拒絕了。
404 Not Found:該狀態碼代表服務器上沒法找到請求的資源。
5XX 的響應結果代表服務器自己發生錯誤。
500 Internal Server Error:該狀態碼代表服務器端在執行請求時發生了錯誤。
503 Service Unavailable:該狀態碼代表服務器暫時處於超負載或正在進行停機維護,如今沒法處理請求。
挺好的一本書,172張圖片也特別幫助理解。
原文:cheesekun.top