1. 程式人生 > >【介面測試】介面測試之HTTP協議一

【介面測試】介面測試之HTTP協議一

HTTP協議是HyperTextTransferProtocol(超文字傳輸協議)的縮寫,是用於全球資訊網(WWW:World Wide Web)伺服器傳輸超文字到本地瀏覽器的傳送協議。

HTTP是一個基於TCP/IP通訊協議來傳送資料(HTML文字,圖檔案,查詢結果等)。

HTTP協議工作於客戶端-服務端架構上,瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB伺服器傳送所有請求。

WEB伺服器有:Apache伺服器,IIS(Internet Information Services)等。

WEB伺服器根據接收到的請求後,向客戶端傳送相應資訊。

HTTP預設埠為80,但是你也可以改為8080或其他埠。

HTTP1.0三點注意事項:

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

•   HTTP是媒體獨立的:這意味著,只要客戶端和伺服器知道如何處理資料內容,任何型別的資料都可以通過HTTP傳送,客戶端以及伺服器指定使用適合的MIME-type內容型別。

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

HTTP1.1

•   複用連線,一個連線可以傳送多個請求。

•   HTTP怎麼樣保持狀態,可以通過cookie保持資料。

以下圖表展示了HTTP協議通訊流程:

HTTP是基於客戶端/服務端(C/S)的架構模型,通過一個可靠的連結來交換資訊,是一個無狀態的而請求/響應協議。

一個HTTP“客戶端”是一個應用程式(Web瀏覽器或其他任何客戶端),通過連線到伺服器達到向伺服器傳送一個或多個HTTP的請求的目的。

一個HTTP“伺服器”同樣也是一個應用程式(通常一個Web服務,如Apache Web伺服器或IIS伺服器等),通過接收客戶端的請求並向客戶端傳送HTTP響應資料

HTTP使用統一資源識別符號(Uniform ResourceIdentifiers, URI)來傳輸資料和建立連線。

一旦建立連線後,資料訊息就通過類似Internet郵件所使用的格式[RFC5322]和多用途Internet郵件擴充套件(MIME)[RFC2045]來傳送。

4.客戶端請求訊息

客戶端傳送一個HTTP請求到伺服器的請求訊息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求資料4個部分組成,下圖給出了請求報文的一般格式。

請求方法

空格

URL

空格

協議版本

回車符

換行符

頭部欄位名

回車符

換行符

...

頭部欄位名

回車符

換行符

回車符

換行符

請求行

請求頭部

請求資料

HTTP通訊機制是在一次完整的HTTP通訊過程中,web瀏覽器與web伺服器之間將完成下列7個步驟:

(1)建立TCP連線

在HTTP工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連結是通過TCP來完成的,該協議與IP協議共同構建,Internet,即著名的TCP/IP協議族,因此Internet又被稱為是TCP/IP網路。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層次協議的連線,因此,首先要建立TCP連線,一般TCP連線的埠號是80

(2)web瀏覽器向web伺服器傳送請求命令

一旦建立了TCP連線,web瀏覽器就會向web伺服器傳送請求命令                     

例如:GET/sample/hello.jspHTTP/1.1

(3)web瀏覽器傳送請求頭資訊

瀏覽器傳送其請求命令之後,還要以頭資訊的形式向web伺服器傳送一些別的資訊,之後瀏覽器傳送了一空白行來通知伺服器,它已經結束了該頭資訊的傳送。

(4)web伺服器應答

客戶機向伺服器發出請求後,伺服器會客戶機回送應答

HTTP/1.1  200 OK

應答的第一部分是協議的版本號和應答狀態碼