進行介面測試的前提就是要熟悉http協議;
何為http協議(hypertext transfer protocol,超文字傳輸協議)?
所謂協議,就是指雙方遵循的規範。http協議,就是瀏覽器和伺服器之間進行「溝通」的一種規範。我們在看空間,刷微博…都是在使用http協議,當然,遠遠不止這些應用。
筆者一直聽說http是屬於「應用層的協議」,而且是基於tcp/ip協議的。這個不難理解,如果你上大學時候學過「計算機網路」的課程,就一定知 道osi七層參考協議。如果你接觸過socket網路程式設計,就應該明白tcp和udp這兩種使用廣泛的通訊協議(建立連線、三次握 手等等,當然,這不是本文討論的重點)。如圖:
既然tcp/udp是廣泛使用的網路通訊協議,那為啥有多出個http協議來呢?
這就衍生出了http協議**。基於tcp的可靠性連線**。通俗點說,就是在請求之後,伺服器端立即關閉連線、釋放資源。這樣既保證了資源可用,也吸取了tcp的可靠性的優點。
正因為這點,所以大家通常說http協議是「無狀態」的,也就是「伺服器不知道你客戶端幹了啥」,其實很大程度上是基於效能考慮的。以至於後來有了session之類的玩意。
基本上可以這麼理解,http是基於tcp/ip的一種通訊協議,主要用來全球資訊網之間資料互動,預設的埠是tcp 80,當然80埠其他協議也可以使用。http為計算機相互通訊提供了標準化方法。http規範指定如何構造客戶端的請求資料並將其傳送到伺服器,以及伺服器如何響應這些請求。
以下三個特徵使得http簡單但是功能強大的一種協議。
http是無連線的
在http客戶端,例如乙個瀏覽器發起http請求,請求發出後,等待伺服器給回的響應內容。伺服器處理請求並發回響應,然後客戶端斷開連線。因此,客戶端和伺服器僅在當前請求和響應期間相互了解。對客戶端和伺服器之類的新連線的進一步請求是彼此新的。
http與**無關
這意味著,只要客戶端和伺服器都知道如何處理資料內容,就可以通過http傳送任何型別的資料。 客戶端和伺服器都需要使用適當的mime型別指定內容型別。
http是無狀態的
如上所述,http是無連線的,它是http作為無狀態協議的直接結果。 伺服器和客戶端僅在當前請求期間相互了解。 之後,他們兩個都忘記了彼此。 由於協議的這種性質,客戶端和瀏覽器都不能在跨網頁的不同請求之間保留資訊。
下圖顯示了web應用程式的乙個非常基本的體系結構,並描述了http的位置:
http協議就在client和server之間的一層。主要用來傳輸請求和響應的資料。先來理解下面兩個概念,以後經常說到。
客戶端:
服務端:
http伺服器以狀態行響應,包括訊息的協議版本和成功或錯誤**,然後是包含伺服器資訊,實體元資訊和可能的實體主體內容的類似mime的訊息。
當前我們都是使用http/1.1,最大區別就是在http/1.0中,為每乙個請求和響應建立新連線,而在http/1.1中,乙個連線可用於乙個或多個請求/響應交換。
怎麼理解乙個請求可用於多個請求/響應交換。在servlet技術中,有乙個概念叫請求**。生活中請求**的例子是,例如,你去乙個當地行政辦公中心,你到了乙個視窗,你告訴櫃檯你要辦什麼事情,這個就是請求。這個櫃檯人說,你要辦的事情,他這辦不了,但是他可以轉給他同事(不在同乙個視窗)辦。由於你好不容易排隊才排上這個視窗,為了避免再次排隊,他找他同事辦好了,這個過程就是**請求,辦好了,他同事給他,然後他給你,整個過程就產生了多次請求和響應,但是只有一次排隊過程,這個排隊過程就是乙個新的連線。
重點概念:http全稱,http/1.1協議,http是無連線,http是無狀態
HTTP協議1 HTTP簡介
http協議是hyper text transfer protocol 超文字傳輸協議 的縮寫,是用於從全球資訊網 www world wide web 伺服器傳輸超文字到本地瀏覽器的傳送協議。http是乙個基於tcp ip通訊協議來傳遞資料 html 檔案,檔案,查詢結果等 http協議工作於客戶...
網路基礎與協議入門 (1)HTTP協議重點
1.概述 http是超文字傳輸協議,由全球資訊網協會和internet工作組合作發展,其中著名的rfc2616協議是http協議的核心。2.使用者 http使用者的客戶端,一般被稱為使用者 即user agent。3.源伺服器 http伺服器端,一般被稱為源伺服器,即origin server。4....
網路基礎與協議入門 (1)HTTP協議重點
1.概述 http是超文字傳輸協議,由全球資訊網協會和internet工作組合作發展,其中著名的rfc2616協議是http協議的核心。2.使用者 http使用者的客戶端,一般被稱為使用者 即user agent。3.源伺服器 http伺服器端,一般被稱為源伺服器,即origin server。4....