HTTP: HyperText Transfer Protocol(超文本傳輸協議)chrome
HTTP是應用層協議,基於HTTP協議的如HTTPs協議。特色有明文傳輸,無狀態。瀏覽器
1、HTTP協議的組成緩存
請求:頭部和正文。服務器
響應:頭部和正文。cookie
2、請求頭相關url
- User-Agent: 客戶端信息,瀏覽器,操做系統。
- 協議和版本號。
- 請求的地址。
- Accept-Encoding: 請求頭壓縮方式,瀏覽器主動服務器告訴能夠接受這兩種壓縮方式,我能夠解壓縮。
- Connection: Keep-Alive 長鏈接,在未過時以內,不用再三次握手鍊接。
- Cookie: 瀏覽器發送給服務器的內容。
- x-request-with: XMLHttpRequest 表示使用Ajax方式發送的請求。
- Accept:告訴服務器瀏覽器能夠接受的響應類型。
- Referer: url 哪一個頁面發送的請求。能夠知道來訪頁面,若是直接鍵入地址訪問Referer是空。
- Content-length 正文長度(數據不大)。
- 方法
-
- GET 向指定資源獲取數據,長度限制2000byte,參數以?A=1&b=2的形式傳輸
- POST 向指定資源提交數據,無長度限制,數據在請求正文中傳輸
- PUT 向指定資源更新
- DELETE 刪除標識的指定資源
- HEAD 向服務器發出指定資源的請求,相似GET,但服務器不傳回全部資源
- TRACE
- OPTIONS
...spa
3、響應頭相關操作系統
- Server: 服務器信息,服務器名/版本號。
- Content-Type: 返回數據類型。
- Transfer-Encoding:chunked 分塊傳輸(數據較大時)。
- X-UA-Compatible:IE=Edge,chrome=1 支持兼容模式。
- cache-control:緩存方式。默認是private,即第一次訪問全新加載,以後使用緩存;no-cache意爲徹底不用緩存;max-age能夠設置一個時間,時間段內都使用緩存,過時從新加載。還有設置訪問次數的,更多取值待百度。
- Expires:過時時間 過時就從新加載,不過時就用緩存。
- Last-Modified/If-Modified-Since:記錄緩存文件最後修改狀況,以判斷是否要從新向服務器請求。
- Etag/If-None-Match: 爲了更精確記錄緩存文件修改狀況,再也不以時間爲參照,而給文件標識「版本號」。
- set-cookie: 爲客戶端設置cookie。
(2)常見狀態碼blog
- 1XX:指示信息,請求已接收,繼續處理
- 2XX:成功,請求已經成功
- 3XX:重定向,跳轉到其餘位置
- 4XX:客戶端錯誤
- 5XX:服務器端錯誤
——資源
- 200:ok
- 206:斷點續傳或者將一個大文檔分解爲多個下載段同時下載
- 301:永久重定向
- 302:暫時重定向
- 304:內容未修改。服務器端判斷內容沒有變化,讓瀏覽器使用本地緩存。
- 400:客戶端請求有語法錯誤
- 401:請求未受權
- 403:服務器接收請求但拒絕服務,沒有權限
- 404:資源沒有找到,url錯了
- 500:服務區不可預期錯誤
- 503:服務器當前不能處理請求,過段時間可能恢復
參考:
慕課網Scott的Node.js基礎
蝸牛學院《HTTP協議詳解》