HTTP協議學習筆記

1.HTTP協議的主要特色瀏覽器

1.簡單快速
    每一個資源有固定URI
2.靈活
    在http頭中修改數據類型就能夠傳輸不一樣的數據類型,很靈活
3.無鏈接
    每次鏈接完以後,鏈接狀態都會斷開,不會保持鏈接狀態
4.無狀態
    在服務器端不會記錄請求狀態

2.HTTP報文的組成部分緩存

1.請求報文
    1.請求行
        http方法
        頁面地址
        http協議及版本
    2.請求頭
        格式key/valve
        用來告訴服務器你須要什麼內容
    3.空行
        用於間隔請求頭和請求體
    4.請求體
2.響應報文
    1.狀態行
        http協議及版本
        http狀態碼
    2.響應頭
        格式 key/value
    3.空行
        用於間隔請求頭和請求體
    4.響應體

3.HTTP方法服務器

GET——————————> 獲取資源
POST—————————>  傳輸資源
PUT——————————> 更新資源
DELETE————————>  刪除資源
HEAD—————————>  獲取報文首部

4.POST和GET的區別
5.HTTP狀態碼併發

1xx:指示信息
2xx:成功
    200 OK:客戶端請求成功
    206 Partial Content :客戶發送了一個帶有Range頭的GET請求,服務器完成了它
3xx:重定向
    301 Moved Permanently:所請求的頁面已轉移至新的url
    302 Found:所請求的頁面已經臨時轉移至新的url
    304 Not Modified :客戶端有緩存的文檔併發出了一個條件性的請求,服務器告訴客戶原來緩衝的文檔還能夠繼續使用
4xx:客戶端錯誤
    400 Bad Request:客戶端請求有語法錯誤,不能被服務器所理解
    401 Unauthorized:請求未經受權,這個狀態碼必須和WWW-Authenticate報頭域一塊兒使用
    403 Forbidden:對被請求的頁面訪問靜止
    404 Not Found:請求資源不存在
5xx:服務器錯誤
    500 Internal Server Error:服務器發生不可預期的錯誤原來緩衝的文檔還能夠繼續使用
    503 Server Unavailable:請求未完成,服務器臨時過載或當機,一段時間後可能恢復正常

6.什麼是持久鏈接性能

須要http 1.1及以上
HTTP 協議採用「請求-應答」模式,當使用普通模式,即非 Keep-Alive 模式時,每一個請求/應答客戶和服務器都要新建一個鏈接,完成以後當即斷開裂解(HTTP完成以後便可斷開鏈接的協議)
當使用 Keep-Alive 模式 (又稱持久鏈接,鏈接重用)時,Keep-Alive功能使客戶端到服務器端端鏈接持續有效,當出現對服務器端後續請求時,Keep-Alive功能避免了創建或者從新創建鏈接

7.什麼是管線化url

  • 在使用持久鏈接的狀況下,某個鏈接上消息的傳遞相似於code

    請求1—>響應1—>請求2—>響應2—>請求3—>響應3
  • 某個鏈接上的消息變成了這樣(即管線化(在持久鏈接的狀態下完成))資源

    請求1—>請求2—>請求3—>響應1—>響應2—>響應3

——————————————————————————————————————————————————————————————文檔

  • 管線化機制經過持久鏈接完成,近HTTP/1.1支持此技術
  • 只有GET和HEAD請求能夠管線化,而POST則有所限制
  • 初次建立鏈接時不該啓動管線機制,由於對方(服務器)不必定支持HTTP/1.1版本的協議
  • 管線化不會影響響應到來的順序,如上面的例子所示,響應返回的順序也並未改變
  • HTTP/1.1要求服務器端支持管線化,帶並不要求服務器端也對響應進行管線化處理,只是要求對於管線化的請求不失敗便可
  • 因爲上面提到的服務器問題,開啓管線化極可能並不會帶來大幅度的性能提高,並且不少服務器端和處理程序對管線化的支持並很差,所以現代瀏覽器如Chrome和Firefox默認並未開啓管線化支持
相關文章
相關標籤/搜索