超文本傳輸協議(HTTP)是用於分布式、協作性、超媒體信息系統的應用層協議。這是自1990以來全球資訊網(即網際網路)數據通信的基礎。HTTP是一種通用的無狀態協議,可以用於其他目的,也可以使用其請求方法、錯誤代碼和頭的擴展。
基本上,HTTP是一種基於TCP/IP的通信協議,用於在全球資訊網上傳送數據(HTML文件、圖像文件、查詢結果等)。默認埠是TCP80,但也可以使用其他埠。它爲計算機之間的通信提供了一種標準化的方式。HTTP規範指定如何構造客戶端的請求數據並將其發送到伺服器,以及伺服器如何響應這些請求。
Basic Features
有三個基本特性使HTTP成爲一個簡單而強大的協議:
HTTP是無連接的:HTTP客戶端,即瀏覽器發起HTTP請求,請求發出後,客戶端等待響應。伺服器處理請求並發送一個響應,然後客戶端斷開連接。所以客戶機和伺服器只在當前請求和響應期間知道彼此。更多的請求是在新的連接上發出的,比如客戶機和伺服器彼此是新的。
HTTP與媒體無關:這意味著,只要客戶端和伺服器都知道如何處理數據內容,任何類型的數據都可以通過HTTP發送。客戶端和伺服器都需要使用適當的MIME類型指定內容類型。
HTTP是無狀態的:如上所述,HTTP是無連接的,它是HTTP是無狀態協議的直接結果。只有在當前請求期間,伺服器和客戶機才知道彼此。後來,他們倆都忘記了彼此。由於協議的這種性質,客戶端和瀏覽器都不能在網頁上的不同請求之間保留信息。
HTTP/1.0 uses a new connection for each request/response exchange, where as HTTP/1.1 connection may be used for one or more request/response exchanges.
Basic Architecture
下圖顯示了一個非常基本的web應用程式架構,並描述了HTTP的位置:
HTTP協議是基於基於客戶機/伺服器架構的請求/響應協議,其中web瀏覽器、機器人和搜尋引擎等充當HTTP客戶機,web伺服器充當伺服器。
Client
HTTP客戶端以請求方法、URI和協議版本的形式向伺服器發送一個請求,然後是一個類似MIME的消息,該消息通過TCP/IP連接包含請求修飾符、客戶端信息和可能的正文內容。
Server
HTTP伺服器用狀態行(包括消息的協議版本和成功或錯誤代碼)進行響應,然後是包含伺服器信息、實體元信息和可能的實體體內容的類似MIME的消息。