1. 程式人生 > >HTTP協議簡單總結

HTTP協議簡單總結

1、HTTP協議的主要特點

  • 簡單快速: 每個uri(統一資源識別符號)是固定的,因此處理簡單
  • 靈活: 通過1個HTTP協議可以完成不同資料型別的傳輸
  • 無連線: 連線一次就會斷掉,不會保持連線
  • 無狀態: 服務端不會儲存之前連線的狀態,無快取

2、HTTP報文

  • 請求報文
    • 請求行: 包含HTTP方法、頁面地址、HTTP協議以及版本
    • 請求頭: key/value值告訴服務端所請求的內容
    • 空行: 不可省略,用於區分請求頭與請求行
    • 請求體
  • 相應報文
    • 狀態行
    • 響應頭
    • 空行
    • 相應體

3、HTTP方法

  • Get : 獲取資源
  • Post: 傳輸資源
  • Put: 更新資源
  • Delete: 刪除資源
  • Head: 獲取報文首部(類似於GET)
  • Track: 回顯伺服器收到的請求, 測試/診斷用
  • Options: 允許客戶端檢視服務端的效能
  • Connect: HTTP代理

4、GET與POST的區別

  • GET在瀏覽器回退時是無害的(不會重複提交),而POST會再次提交請求  ☆
  • GET產生的URL地址可以被收藏,  而POST不可以
  • GET請求會被瀏覽器主動快取, 而POST不會,需要手動設定  ☆
  • GET請求只能進行URL編碼,POST支援多種編碼方式
  • GET請求引數會完整的被儲存在瀏覽器歷史記錄,而POST的引數不會被保留  ☆
  • GET請求在URL中傳送的引數是有長度限制的(一般為2kb),而POST沒有  ☆
  • GET引數的資料型別只接受ASCII字元,而POST沒有限制
  • GET比POST更不安全,資料暴露在URL上,不能用來傳遞敏感資訊
  • GET引數通過URL傳遞,POST放在Request Body中  ☆

5、狀態碼

  • 1xx : 指示資訊 - 表示請求已接收,繼續處理
  • 2xx : 成功 - 表示成功已被成功接收
    • 200 OK - 客戶端請求成功
    • 206 Partial Content - 客戶端傳送了一個帶有Range頭的GET請求,伺服器完成了他
  • 3xx : 重定向 - 要完成請求必須進行更進一步操作
    • 301 Moved Permanentil - 永久重定向
    • 302 Found - 臨時重定向
    • 304 Not Modified - 客戶端有緩衝的文件併發出了一個條件性的請求,服務端告訴客戶,原來緩衝的文件還可以使用 
  • 4xx : 客戶端錯誤
    • 400 Bad Request - 客戶端請求有語法錯誤,不能被服務端所理解 
    • 401 Unauthorized - 請求未經允許,當前請求需使用者驗證,這個狀態碼必須和WWW-Authenticate報頭域一起使用
    • 402  - 預留
    • 403 Forbidden - 被請求頁面的訪問被禁止 ,即沒有許可權
    • 404 Not Found - 請求的資源不存在
  • 5xx : 服務端錯誤
    • 500 Internal Server Error - 伺服器發生不可預期的錯誤,原來緩衝的文件還可以繼續使用
    • 501 - 服務端不支援當前請求鎖需要的某個功能
    • 502 - 從上游伺服器接收到無效相應
    • 503 Server Unavailable - 請求未完成,臨時問題,伺服器臨時過載或宕機,過一段時間可以恢復正常
    • 504 - 上游無響應
    • 505 - 伺服器拒絕或者不支援使用的HTTP版本

6、持久連線

HTTP協議採用“請求-應答”模式,當使用普通模式,即非Keep-Alive模式時,每個請求/應答客戶端與服務端都要新建立一個連線,完成之後立即斷開連線(HTTP協議為無連線的協議)

當使用Keep-Alive模式時(又稱持久連線,連線重用)時,Keep-Alive功能使客戶端到服務端的連線持久有效,當出現對伺服器的後繼請求時,Keep-Alive功能避免了建立或重新建立連線 。 

持久連線僅支援HTTP1.1及以上版本

7、管線化

在使用持久連線的情況下,某個連線上訊息的傳遞類似於:

請求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預設並未開啟管線化支援

相關推薦

HTTP協議簡單總結

1、HTTP協議的主要特點 簡單快速: 每個uri(統一資源識別符號)是固定的,因此處理簡單 靈活: 通過1個HTTP協議可以完成不同資料型別的傳輸 無連線: 連線一次就會斷掉,不會保持連線 無狀態: 服務端不會儲存之前連線的狀態,無快取 2、HTTP報文 請求報文

http協議簡單解析

orm 列表 partial 關閉連接 connect 時移 通過 ont sat HTTP協議(轉載自牛客網不知名大神) 1.簡介   HTTP協議(Hyper Text Transfer Protocol,超文本傳輸協議),是用於從萬維網(WWW:World Wide

HTTP協議學習總結

http消息格式: start line + headers + bodyRequest Message: <method> <request-URL> <version><headers><entity-body> Repsonse Messag

HTTP協議部分總結

AD field 傳輸 http 嘗試 AR 按順序 驗證 支持斷點續傳 HTTP協議 HTTP定義在七層協議中的應用層,TCP解決的是傳輸層的邏輯 HTTP使用TCP而不是UDP的原因在於打開一個網頁必須傳送很多數據,而TCP協議提供傳輸控制,按順序組織數據,和錯

http以及http協議簡單理解

cati .post inter cor moved intern err 瀏覽器歷史記錄 ora HTTP協議是超文本傳輸協議的縮寫,是用於從萬維網(WWW)服務器傳輸超文本到本地瀏覽器的傳送協議;HTTP是一個基於TCP/IP通信協議來傳遞數據(HTML文件, 圖片文件

http 協議簡單介紹

文章目錄 http http 請求 http 響應 http 狀態碼 http 請求方法 http 工作原理 參考 http HTTP協議是Hyper

HTTP協議知識總結

簡介: HTTP協議是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫,是一個基於TCP/IP通訊協議來傳遞資料(HTML 檔案, 圖片檔案, 查詢結果等)的協議。   HTTP協議工作於客戶端-服務端架構為上。瀏覽器作為HTTP客戶端通過URL

(轉)HTTP協議—— 簡單認識TCP/IP協議

1、什麼是TCP/IP        如果要了解一個人,可以從他歸屬的集體聊起來。我們的HTTP協議就屬於TCP/IP協議家族中的一員,瞭解HTTP協議再整個網路流程中的地位,也能更加充分的理解HTTP協議。       要想了解什麼是TCP/IP協議,就要知道為什麼有這個協議。中國人和中國

HTTP協議簡單介紹

Http協議是超文字傳輸協議的縮寫,是用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。Http協議是一個基於TCP/IP通訊協議來傳輸資料(HTML檔案、圖片檔案、查詢結果等) 瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB瀏覽器傳送所有請求。 HTTP

QT:HTTP協議簡單應用

HTTP協議 QNetworkAccessManager QNetworkReply 《案例》QT實現HTTP文字瀏覽器 /* HTTP文字瀏覽器 - 程式碼演示 */// HttpDialog.h #ifndef HTTPDIALOGH #define HTTPDIAL

HTTP協議知識點總結

三、HTTP協議詳的響應型別  在接收和解釋請求訊息後,伺服器返回一個HTTP響應訊息。  HTTP響應也是由三個部分組成,分別是:狀態行、訊息報頭、響應正文  狀態行格式如下:   HTTP-Version Status-Code Reason-Phrase CRLF    其中,HTTP-Version表

HTTP協議—— 簡單認識網路請求過程中使用的協議

大學沒讀計算機專業,所以很多的專業知識都不知道。既然已經從事了IT這個行業,就勢必要去了解下網路底層,雖然實際工作中這些東西用不到。高樓大廈,起於平川。不積跬步,無以至千里,不積小流,無以成江海。我現在的知識結構,就如同空中樓閣。稍微遇到高層次的問題,可能就理解不了了。一棵大樹如果不在剛開始的時候深深的紮根

HTTP協議要點總結(資料包、請求方式)

一、什麼是http協議?         由w3c制訂的一種網路應用層協議,定義了瀏覽器與web伺服器之間通訊的過程以及通訊時所使用的資料格式。         1)通訊的過程           

http協議學習-總結

第一部分 HTTP:WEB的基礎第一章 HTTP概述媒體型別 http給每種要通過web傳輸的物件都打上了名為MIME(Multipurpose Internet Mail Extension,多用途因特網郵件擴充套件)型別的資料格式標籤。 Web伺服器會為所有HTTP物件資

圖解HTTP總結(2)——簡單HTTP協議

      HTTP協議是一種不儲存狀態,即無狀態(stateless)協議。HTTP協議自身不對請求和響應之間的通訊狀態進行儲存。也就是說在HTTP這個級別,協議對於傳送過的請求或響應都不做持久化處理。       使用HTTP協議

簡單認識http協議

理論 med jpg dss 一個人 應用層 利用 隔離 網絡 1、什麽是TCP/IP 如果要了解一個人,可以從他歸屬的集體聊起來。我們的HTTP協議就屬於TCP/IP協議家族中的一員,了解HTTP協議再整個網絡流程中的地位,也能更加充分的理解HTTP協議。

分針網——每日分享:HTTP協議理解與應用總結

http 應用總結 領取免費IT資料 加群:272292492 更多文章:www.f-z.cn Request & Response Re

圖解Http協議(二章簡單Http協議

客戶 持久化 請求方法 體驗 cnblogs 圖解 重要 cookies logs 先放上我的思維導圖 個人感覺這個就是一個和我們平常聊天一樣 來,我們一起拿起手中的手機,體驗一把http之旅 在一個風和日麗的午後,鐵柱剛從工地搬磚回來,吃飽喝足,整了點小酒。然後抹了

HTTP 簡單總結

查詢 tcp/ip 網絡傳輸 優點 臨時性 modified unix系統 因特網 判斷 1. 一次完整的HTTP事務是怎樣的一個過程? 基本流程:   a. 域名解析   b. 發起TCP的3次握手   c. 建立TCP連接後發起http請求   d. 服務器端響應htt

基於HTTP協議的輕量級開源簡單隊列服務:HTTPSQS[轉]

海量數據 短信 最大 ima 站內搜索 功能 .html 調用 python HTTPSQS(HTTP Simple Queue Service)是一款基於 HTTP GET/POST 協議的輕量級開源簡單消息隊列服務,使用 Tokyo Cabinet 的 B+Tree K