協定就是網絡中通信雙方所應遵循的規則。網際網路為我們提供了各種各樣的服務,比如Web、eMail、FTP等,每一種服務都需要通過相應的協定來實作,其中Web服務所使用的就是HTTP協定。
HTTP超文本傳輸協定,它詳細規定了在用戶端(浏覽器)和Web伺服器(Web服務)之間互相通信應遵循的規則。
HTTP協定遵循請求(Request)/響應(Responses)模型,所有的HTTP通信都被構造成一對HTTP請求和HTTP響應。HTTP請求隻能由用戶端發起,伺服器不能主動向用戶端發送資料。當用戶端通過浏覽器向Web伺服器發送請求時,Web伺服器處理請求并傳回相應的應答。

比如我們通路www.51cto.com,并通過Burpsuite進行攔截。首先攔截到用戶端發出的HTTP請求,将之發送到Repeater子產品,發送出去之後,就會收到伺服器傳回的HTTP響應。
在用戶端通常都是通過浏覽器發起HTTP請求,浏覽器的作用其實就是将那些HTML标簽渲染成人類可以接受的直覺界面,否則就會像我們通過Burpsuite所攔截到的資料包那樣,隻是一堆代碼。除了浏覽器之外,在用戶端也可以借助一些工具發起HTTP請求,比如curl。
對于Web伺服器端,比如一個典型的PHP動态網站,主要是由三個部分組成的:Web服務、PHP預處理器、資料庫。
Web服務是指Apache、Nginx等,負責接收并處理HTTP請求。單純的Web服務隻能響應靜态頁面的靜态請求,也就是說,如果用戶端浏覽器請求的是靜态頁面,此時隻需要Web服務響應該請求;如果浏覽器請求的是動态頁面,此時Web服務會委托PHP預處理器将該動态頁面的PHP代碼解釋執行,并将執行結果生成為HTML靜态頁面,然後再将靜态頁面傳回給用戶端浏覽器進行顯示。PHP預處理器在解釋執行PHP代碼時,往往需要從資料庫中調取或存入資料。