HTTP協議基礎

HTTP: HyperText Transfer Protocol(超文本傳輸協議)chrome

HTTP是應用層協議,基於HTTP協議的如HTTPs協議。特色有明文傳輸,無狀態。瀏覽器

1、HTTP協議的組成緩存

請求:頭部和正文。服務器

響應:頭部和正文。cookie

2、請求頭相關url

 

  1. User-Agent: 客戶端信息,瀏覽器,操做系統。
  2. 協議和版本號。
  3. 請求的地址。
  4. Accept-Encoding: 請求頭壓縮方式,瀏覽器主動服務器告訴能夠接受這兩種壓縮方式,我能夠解壓縮。
  5. Connection: Keep-Alive 長鏈接,在未過時以內,不用再三次握手鍊接。
  6. Cookie: 瀏覽器發送給服務器的內容。
  7. x-request-with: XMLHttpRequest 表示使用Ajax方式發送的請求。
  8. Accept:告訴服務器瀏覽器能夠接受的響應類型。
  9. Referer: url 哪一個頁面發送的請求。能夠知道來訪頁面,若是直接鍵入地址訪問Referer是空。
  10. Content-length 正文長度(數據不大)。
  11. 方法
    •   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協議詳解

HTTP請求中瀏覽器的緩存機制

相關文章
相關標籤/搜索