超文本傳輸協議 (HTTP) :很多服務器應用程序使用HTTP之外的其他協議。他們在計算機之間維護一個持久性的的連接。應用服務器可以清楚的知道是誰連接上來,而且何時中斷連接。因爲他們知道每一個連接的狀態,以及每一個使用它的人。這稱之爲狀態協議。
相反, HTTP 是一個無狀態協議。HTTP server 可以接受來自於各種客戶的各種請求,並提供各種響應,即使是這個響應僅僅是說No。沒有大量的協商和連接持久性,無狀態協議可以處理大量的請求。
HTTP請求的第一行包含方法,其後是請求的來源地址和HTTP版本。HTTP請求頭跟在首行後面,可以沒有也可以有多個。HTTP 頭向服務器提供額外的信息。可以包括瀏覽器的種類和版本,可接受的文檔類型,瀏覽器的 cookies等等。7種請求方法中, GET 和 POST 是用得最多的。
一旦服務器接收到請求,他就要產生一個HTTP響應。響應的第一行稱爲狀態行,包含了HTTP協議的版本,數字型狀態,以及狀態的簡短描述。狀態行後,服務器將返回一個HTTP 響應頭,類似於HTTP請求頭。
Cookies 和 URL 重寫是兩個在請求間跟蹤用戶狀態的方式。cookie 是一種特殊的信息包,存儲於用戶的計算機中。URL 重寫是在頁面地址中存儲一個特殊的標記,Java 服務器可以用它來跟蹤用戶。
標準的HTTP web 服務器並不傳輸動態內容。它主要是使用請求來定位文件資源,並在響應中返回此資源。通常這裏的文件使用Hypertext Markup Language (HTML) [W3C, HTML] 格式化,以使瀏覽器可以顯示它們。
靜態內容直接來自於文本或數據文件,比如HTML 或者 JPEG 文件。這些文件可以隨時改變,但通過瀏覽器請求時,卻不能自動改變。
動態內容是臨時產生的,典型地,它是針對瀏覽器的個別請求的響應。