1. 程式人生 > >【基礎原理】HTTP協議

【基礎原理】HTTP協議

【前言】

       最近被調到了測試組工作,再熟悉了Jmeter的使用之後,發現Jmeter返回的測試報告中多數是http的報文,或者狀態碼。 趁著這次機會也把原來欠的知識都補上,http協議這塊自己確實應該好好總結總結。所以就有了這篇部落格。

【正文】

       先就本文的脈落畫一張思維導圖:

        

  一、HTTP協議的特點

       超文字傳輸協議(HTTP,HyperText Transfer Protocol)是網際網路上應用最為廣泛的一種網路協議。所有的WWW檔案都必須遵守這個標準。設計HTTP最初的目的是為了提供一種釋出和接收HTML頁面的方法。HTTP是一個

客戶端伺服器端請求和應答的標準(TCP)。

                                                                                                                                                                                                                                                      ---百度百科

而HTTP協議同時具有以下特色:

          1.支援客戶/伺服器模式


            2.簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快

            3.靈活:HTTP允許傳輸任意型別的資料物件。正在傳輸的型別由Content-Type加以標記。

           4.無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

          5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

 二、HTTP有哪些內容:

        HTTP的工作流程如下:一個客戶機與伺服器建立連線後,傳送一個請求給服務

器,伺服器接到請求後,給予相應的響應資訊。

       HTTP的工作流程就這麼簡單,只不過它傳送的請求資訊和伺服器的響應資訊都有著相應的固定格式。下面我們就來介紹其具體的格式。

  2.1 URL

        這是我們對於HTTP協議最常見的部分, 比如我們常輸入的www.baidu.com 就會轉化成http的url :http:202.108.22.5/*.*

        http表示要通過HTTP協議來定位網路資源;host表示合法的Internet主機域名或者IP地址;port指定一個埠號,為空則使用預設埠80;abs_path指定請求資源的URI;如果URL中沒有給出abs_path,那麼當它作為請求URI時,必須以“/”的形式給出,通常這個工作瀏覽器自動幫我們完成。

        2.2請求

  http請求由三部分組成,分別是:請求行 (狀態行)、訊息報頭、請求正文

             1、請求行以一個方法符號開頭,以空格分開,後面跟著請求的URI和協議的版本

              格式 如下:Method Request-URI HTTP-Version CRLF  


               註釋:  1.其中 Method表示請求方法;

                             2.Request-URI是一個統一資源識別符號;

                             3.HTTP-Version表示請求的HTTP協議版本;

                             4.CRLF表示回車和換行(除了作為結尾的CRLF外,不允許出現單獨的CR或LF字元)。

                            那麼請求方法 method 有哪些?


   注: 但是現在七種方法中常用的只有get和post兩種 是常用的

          區別: get方式,url後附帶引數大小為1kb以內  ,post無限大。

 響應和報頭和其它相關原理下次再寫。 都寫累了。