### **一、http簡介**
* http超文本傳輸協議是用于從萬維網服務器傳輸超文本到本地瀏覽器的傳送協議,HTTP基于TCP/IP通信協議來傳遞數據(HTML文件、圖片文件、查詢結果等)。
* HTTP協議工作于客戶端-服務器架構上,瀏覽器作為HTTP客戶端通過URL向HTTP服務端即web服務器發送所有請求。
* 何為web服務器?
web服務器一般是指網站服務器,是指駐留于因特網上某種類型的計算機的程序,可以向瀏覽器等web客戶端提供文檔,也可以放置網站文件和數據文件,以供全世界瀏覽和下載。web服務器也稱WWW(WORLD WIDE WEB)服務器主要功能是提供網上信息瀏覽服務,是可以向發出請求的瀏覽器提供文檔的程序:
1、服務器是一種被動的程序:只有當Internet上運行其他計算機中的瀏覽器發出的請求時,服務器才會響應

2、最常用的web服務器是Apache、Microsoft和Internet信息服務器
3、Internet上的服務器也稱為web服務器,是一臺在Internet上具有獨立IP地址的計算機,可以向Internet上的客戶端機提供WWW、Email等各種Internet服務。
4、Web服務器是指駐留于因特網上某種類型計算機的程序。當Web瀏覽器(客戶端)連到服務器上并請求文件時,服務器將處理該請求并將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。服務器使用HTTP(超文本傳輸協議)與客戶機瀏覽器進行信息交流,這就是人們常把它們稱為HTTP服務器的原因。
* web服務器不僅能夠存儲信息,還能再用戶通過web瀏覽器提供的信息基礎上運行腳本和程序。
HTTP協議是基于C/S架構進行通信的,而HTTP協議的服務器端實現程序有httpd、nginx等,其客戶端的實現程序主要是Web瀏覽器,例如Firefox、InternetExplorer、Google chrome、Safari、Opera等Web服務是基于TCP的,因此為了能夠隨時響應客戶端的請求,Web服務器需要監聽在80/TCP端口。這客戶端瀏覽器和Web服務器之間就可以通過HTTP協議進行通信了。
### **二、工作原理** (后續詳細講)
HTTP是基于客戶、服務器模式,且面向連接的。典型的HTTP事務處理都有如下過程:
(1)客戶與服務器建立連接;
(2)客戶向服務器提出請求;
(3)服務器接收請求,并根據請求返回相應的文件作為應答;
(4)客戶與服務器關閉連接

* 客戶與服務器之間的HTTP連接是一種一次性連接,它限制每次連接只處理一個請求,當服務器返回本次請求的應答后便立即關閉連接,下次請求再重新建立連接。這種一次性連接主要考慮到WWW服務器面向的是Internet中成干上萬個用戶,且只能提供有限個連接,故服務器不會讓一個連接處于等待狀態,及時地釋放連接可以大大提高服務器的執行效率。
* HTTP是一種無狀態協議,即服務器不保留與客戶交易時的任何狀態。這就大大減輕了服務器記憶負擔,從而保持較快的響應速度。HTTP是一種面向對象的協議。允許傳送任意類型的數據對象。它通過數據類型和長度來標識所傳送的數據內容和大小,并允許對數據進行壓縮傳送。當用戶在一個HTML文檔中定義了一個超文本鏈后,瀏覽器將通過TCP/IP協議與指定的服務器建立連接。
* HTTP規范定義了8種請求方法,每種請求方法規定了客戶和服務器之間不同的信息交換方式,常用的請求方法是GET和POST。其余的有(HEAD、OPTIONS、PUT、 DELETE、TRACE 和 CONNECT)服務器將根據客戶請求完成相應操作,并以應答塊形式返回給客戶,最后關閉連接。
## **### 三、 HTTP規范定義了**8**種請求方法**
HTTP/1.1協議中共定義了八種方法(有時也叫“動作”),來表明Request-URL指定的資源不同的操作方式
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法

1、OPTIONS
返回服務器針對特定資源所支持的HTTP請求方法,也可以利用向web服務器發送‘\*’的請求來測試服務器的功能性
2、HEAD
向服務器索與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以再不必傳輸整個響應內容的情況下,就可以獲取包含在響應小消息頭中的元信息。
3、GET
向特定的資源發出請求。注意:GET方法不應當被用于產生“副作用”的操作中,例如在Web Application中,其中一個原因是GET可能會被網絡蜘蛛等隨意訪問。Loadrunner中對應get請求函數:web\_link和web\_url
4、POST
向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。 Loadrunner中對應POST請求函數:web\_submit\_data,web\_submit\_form
5、PUT
向指定資源位置上傳其最新內容
6、DELETE
請求服務器刪除Request-URL所標識的資源
7、TRACE
回顯服務器收到的請求,主要用于測試或診斷
8、CONNECT
HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。
注意:
1)方法名稱是區分大小寫的,當某個請求所針對的資源不支持對應的請求方法的時候,服務器應當返回狀態碼405(Mothod Not Allowed);當服務器不認識或者不支持對應的請求方法時,應返回狀態碼501(Not Implemented)。
2)HTTP服務器至少應該實現GET和HEAD/POST方法,其他方法都是可選的,此外除上述方法,特定的HTTP服務器支持擴展自定義的方法。