介面測試教程(2)-HTTP簡介與請求
什麼是HTTP 超文字傳輸協議(HTTP,HyperText Transfer Protocol)是網際網路上應用最為廣泛的一種網路協議。所有的WWW檔案都必須遵守這個標準。設計HTTP最初的目的是為了提供一種釋出和接收HTML頁面的方法。
技術框架 HTTP是一個客戶端和伺服器端請求和應答的標準(TCP)。客戶端是終端使用者,伺服器端是網站。通過使用Web瀏覽器、網路爬蟲或者其它的工具,客戶端發起一個到伺服器上指定埠(預設埠為80)的HTTP請求。(我們稱這個客戶端)叫使用者代理(user agent)。應答的伺服器上儲存著(一些)資源,比如HTML檔案和影象。(我們稱)這個應答伺服器為源伺服器(origin server)。在使用者代理和源伺服器中間可能存在 http和其他幾種網路協議 http和其他幾種網路協議 [1] 多箇中間層,比如代理,閘道器,或者隧道(tunnels)。儘管TCP/IP協議是網際網路上最流行的應用,HTTP協議並沒有規定必須使用它和(基於)它支援的層。 事實上,HTTP可以在任何其他網際網路協議上,或者在其他網路上實現。HTTP只假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。 通常,由HTTP客戶端發起一個請求,建立一個到伺服器指定埠(預設是80埠)的TCP連線。HTTP伺服器則在那個埠監聽客戶端傳送過來的請求。一旦收到請求,伺服器(向客戶端)發回一個狀態行,比如”HTTP/1.1 200 OK”,和(響應的)訊息,訊息的訊息體可能是請求的檔案、錯誤訊息、或者其它一些資訊。 HTTP協議的網頁 HTTP協議的網頁 HTTP使用TCP而不是UDP的原因在於(開啟)一個網頁必須傳送很多資料,而TCP協議提供傳輸控制,按順序組織資料,和錯誤糾正。 通過HTTP或者HTTPS協議請求的資源由統一資源標示符(Uniform Resource Identifiers)(或者,更準確一些,URLs)來標識。
超文字 超文字是用超連結的方法,將各種不同空間的文字資訊組織在一起的網狀文字。超文字更是一種使用者介面正規化,用以顯示文字及與文字之間相關的內容。現時超文字普遍以電子文件方式存在,其中的文字包含有可以鏈結到其他位置或者文件的連結,允許從當前閱讀位置直接切換到超文字連結所指向的位置。超文字的格式有很多,目前最常使用的是超文字標記語言(標準通用標記語言下的一個應用)及富文字格式。 右擊網頁檢視原始碼就是超文字。
URL 統一資源定位符是對可以從網際網路上得到的資源的位置和訪問方法的一種簡潔的表示,是網際網路上標準資源的地址。網際網路上的每個檔案都有一個唯一的URL,它包含的資訊指出檔案的位置以及瀏覽器應該怎麼處理它。每個獨立的網站都有一個獨立的地址比如www.baidu.com
HTTP功能 HTTP協議(HyperText Transfer Protocol,超文字傳輸協議)是用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。
HTTP特點 無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線,採用這種方式可以節省傳輸時間。(當今多數伺服器支援Keep-Alive功能,使用伺服器支援長連線,解決無連線的問題)
無狀態:無狀態是指協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。即客戶端傳送HTTP請求後,伺服器根據請求,會給我們傳送資料,傳送完後,不會記錄資訊。(使用cookie機制可以保持session,解決無狀態的問題)
媒體獨立:只要客戶端和伺服器知道如何處理的資料內容,任何型別的資料都可以通過HTTP傳送。客戶端以及伺服器指定使用適合的MIME-Type來傳輸。
HTTP與HTTPS
HTTP:是網際網路上應用最為廣泛的一種網路協議,是一個客戶端和伺服器端請求和應答的標準(TCP),用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。
HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
HTTPS協議的主要作用可以分為兩種:一種是建立一個資訊保安通道,來保證資料傳輸的安全;另一種就是確認網站的真實性。
HTTP與HTTPS有什麼區別?
HTTP協議傳輸的資料都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私資訊非常不安全,為了保證這些隱私資料能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的資料進行加密,從而就誕生了HTTPS。
簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全。
HTTPS和HTTP的區別主要如下:
1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
2、http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
3、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。
4、http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。
HTTP請求 在瀏覽器輸入百度首頁的地址:www.baidu.com,輸入之後瀏覽器會給我們開啟百度首頁。實際上這個過程是瀏覽器向網站所在的伺服器傳送了一個 R eq uest ,即請求,網站伺服器接收到這個 Request 之後進行處理和解析,然後返回對應的一個 R es ponse ,即響應,然後傳回給瀏覽器, Response 裡面就包含了頁面的原始碼等內容,瀏覽器再對其進行解析便將網頁呈現了出來。
Request 即請求,由客戶端向服務端發出。可以 1 等 Request 劃分為四部分內容 · Request Method :請求方式 · Request URL :請求連結 Request Headers:請求頭 Request body:請求體
Request Method 請求方式. 請求方式常見的有兩種型別, GET 扣 POST。 .Get用於資訊獲取.而且應該是安全的和冥等的(冥等的憊思就是一個操作不會修改狀態資訊,並且每次澡作的時候都返回同樣的結果.)從傳送請求的角度, GET 請求相當於我們在資料庫中做了查詢的操作,這樣的操作攝作不影響資料庫本身的資料 .POST 衷示可能會修改伺服器上資源的謂求.也相當於在資料庫中做了修改的澡作.會影響資料庫本身的翔居 〔 比如註冊了賬戶,發了帖子.做了評論.得到了積分等.這種情況下.資源狀態被改變了)。
案例 1 ― 在瀏覽器輸入:https://www.baidu.com/s?wd=appium並回車,這個其實就是在百度搜索appium這個關健詞。 URL中包含了請求的引數資訊.這裡參救wd就是要搜尋的關鍵字.在瀏覽器可以看到Query String Parameters選項就是請求的引數.發起一次get請求時.引數會以url string形式進行傳遞。即?後的字串則為其請求引數,並以&作為分隔符。 案例 2 - POST請求 一般來說.網站登入驗證的時候.需要提交使用者名稱密碼.這裡包含了敏感資訊,使用 GET 方式請求的話密碼就會展布在 URL 裡面.造成密碼洩露.所以這裡最好以 pOST 方式傳送。檔案的上傳時.由於檔案內容比較大,也會選用 posT 方式比如百度賬戶登入如下圖所示