HTTP協(xié)議概述
HTTP協(xié)議就是我們常說的超文本協(xié)議(HyperText Transfer Protocol)页屠。HTTP協(xié)議是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議。所有的WWW文件都必須遵守這個標準蓖柔。設計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法辰企。1960年美國人Ted Nelson構思了一種通過計算機處理文本信息的方法,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標準架構的發(fā)展根基况鸣。Ted Nelson組織協(xié)調萬維網(wǎng)協(xié)會(World Wide Web Consortium)和互聯(lián)網(wǎng)工程工作小組(Internet Engineering Task Force )共同合作研究牢贸,最終發(fā)布了一系列的RFC,其中著名的RFC 2616定義了HTTP 1.1懒闷。
HTTP工作原理
一次HTTP操作稱為一個事務十减,其工作過程可分為四步:
- 首先客戶機與服務器需要建立連接。
- 建立連接后愤估,客戶機發(fā)送一個請求給服務器,請求方式的格式為:統(tǒng)一資源標識符(URL Uniform Resource Locator)速址、協(xié)議版本號玩焰,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內容芍锚。
- 服務器接到請求后昔园,給予相應的響應信息,其格式為一個狀態(tài)行并炮,包括信息的協(xié)議版本號默刚、一個成功或錯誤的代碼,后邊是MIME信息包括服務器信息逃魄、實體信息和可能的內容荤西。
- 客戶端接收服務器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機與服務器斷開連接。
HTTP版本
HTTP歷經四個版本邪锌,分別是HTTP/0.9勉躺、HTTP/1.0、HTTP/1.1觅丰、HTTP/2.0饵溅,目前主要使用HTTP/1.1 版本。
HTTP/0.9
已過時妇萄。只接受 GET 一種請求方法蜕企,沒有在通訊中指定版本號,且不支持請求頭冠句。由于該版本不支持 POST 方法糖赔,所以客戶端無法向服務器傳遞太多信息。
HTTP/1.0
這是第一個在通訊中指定版本號的HTTP 協(xié)議版本轩端,至今仍被廣泛采用放典,特別是在代理服務器中。
HTTP/1.1
當前版本基茵。持久連接被默認采用奋构,并能很好地配合代理服務器工作。還支持以管道方式同時發(fā)送多個請求拱层,以便降低線路負載弥臼,提高傳輸速度。
HTTP/2
是下一代HTTP協(xié)議
請求方法
HTTP/1.1協(xié)議中共定義了八種方法(也叫“動作”)來以不同方式操作指定的資源:
GET
向指定的資源發(fā)出“顯示”請求根灯。使用GET方法應該只用在讀取數(shù)據(jù)径缅,而不應當被用于產生“副作用”的操作中,例如在Web Application中烙肺。其中一個原因是GET可能會被網(wǎng)絡蜘蛛等隨意訪問纳猪。參見安全方法
HEAD
與GET方法一樣,都是向服務器發(fā)出指定資源的請求桃笙。只不過服務器將不傳回資源的本文部分氏堤。它的好處在于,使用這個方法可以在不必傳輸全部內容的情況下搏明,就可以獲取其中“關于該資源的信息”(元信息或稱元數(shù)據(jù))鼠锈。
POST
向指定資源提交數(shù)據(jù),請求服務器進行處理(例如提交表單或者上傳文件)星著。數(shù)據(jù)被包含在請求本文中购笆。這個請求可能會創(chuàng)建新的資源或修改現(xiàn)有資源,或二者皆有虚循。
PUT
向指定資源位置上傳其最新內容同欠。
DELETE
請求服務器刪除Request-URI所標識的資源样傍。
TRACE
回顯服務器收到的請求,主要用于測試或診斷行您。
OPTIONS
這個方法可使服務器傳回該資源所支持的所有HTTP請求方法铭乾。用'*'來代替資源名稱,向Web服務器發(fā)送OPTIONS請求娃循,可以測試服務器功能是否正常運作炕檩。
CONNECT
HTTP/1.1協(xié)議中預留給能夠將連接改為管道方式的代理服務器。通常用于SSL加密服務器的鏈接(經由非加密的HTTP代理服務器)捌斧。
小結:
方法名稱是區(qū)分大小寫的笛质。當某個請求所針對的資源不支持對應的請求方法的時候,服務器應當返回狀態(tài)碼405(Method Not Allowed)捞蚂,當服務器不認識或者不支持對應的請求方法的時候妇押,應當返回狀態(tài)碼501(Not Implemented)。
GET姓迅、POST敲霍、PUT、DELETE是我們在測試過程中常用的四種方法丁存,其余四種較少使用肩杈,如何使用這幾種方法,將會在下下章進行介紹解寝。
歡迎關注微信公眾號:軟件測試汪扩然。軟件測試交流群:809111560
轉載請注意出處,謝謝合作