一、定義
超文字傳送協議 (http-hypertext transfer protocol) 定義了瀏覽器(即全球資訊網客戶程序)怎樣向全球資訊網伺服器請求全球資訊網文件,以及伺服器怎樣把文件傳送給瀏覽器。從層次的角度看,http是面向(transaction-oriented)應用層協議,它是全球資訊網上能夠可靠地交換檔案(包括文字、聲音、影象等各種多**檔案)的重要基礎。
全球資訊網的工作過程
計算機系統中有乙個專門為http開放的80埠,主要用於全球資訊網傳輸資訊的協議。每個全球資訊網網點(可以是計算機)都有乙個伺服器程序來監聽tcp的80埠,一旦發現瀏覽器向它發出連線建立請求,繼而建立tcp連線,瀏覽器就向全球資訊網伺服器發出瀏覽某個網頁的請求,伺服器就接著返回所請求的頁面作為響應。最後,tcp連線被釋放。
http中的cookie提供了這種功能。cookie是這樣工作的:當使用者(代號為user)訪問某個使用cookie的**時,該**就會為user產生乙個唯一的識別碼並以此作為索引在伺服器的後端資料庫中產生乙個專案。接著在給user的http響應報文(關於http的報文結構附錄會有介紹,讀者可以先看那部分內容)中新增set-cookie的首部行。這裡的「首部欄位名」為「set-cookie」,後面的「值」就是賦予該使用者的「識別碼」。例如這個首部行為:set-cookie:09876543。
當user收到這個響應時,其瀏覽器就在它管理的特定cookie檔案中新增一行,其中包括這個伺服器的主機名和set-cookie後面給出的識別碼。當user繼續瀏覽這個**時,每傳送乙個http請求報文,其瀏覽器就會從其cookie檔案中取出這個**的識別碼並放到http請求報文的cookie首部行中:cookie:09876543。於是這個**就能夠跟蹤user在這個**的活動,也就能夠實現購買的商品一起付費了。伺服器和使用者的交集僅僅在於這個識別碼,伺服器不知道user的其它任何資訊。
二、特點
http協議的主要特點可概括如下:
1、支援客戶/伺服器模式。支援基本認證[12]
和安全認證(見後文《安全協議》)。
3、靈活:http允許傳輸任意型別的資料物件。正在傳輸的型別由content-type加以標記。
4、http 0.9和1.0使用非持續連線:限制每次連線只處理乙個請求,伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。http 1.1使用持續連線:不必為每個web物件建立乙個新的連線,乙個連線可以傳送多個物件。
5、無狀態:http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大[13]
。●請求行,例如get /images/logo.gif http/1.1,表示從/images目錄下請求logo.gif這個檔案。
●(請求)頭,例如accept-language: en
●可選的訊息體 請求行和標題必須以作為結尾(也就是,回車然後換行)。空行內必須只有而無其他空格。在http/1.1協議中,所有的請求頭,除host外,都是可選的。
http/1.1協議中共定義了八種方法(有時也叫「動作」)來表明request-uri指定的資源的不同操作方式:
options -返回伺服器針對特定資源所支援的http請求方法。也可以利用向web伺服器傳送'*'的請求來測試伺服器的功能性。
head-向伺服器索要與get請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應訊息頭中的元資訊。
網路蜘蛛等隨意訪問。
post -向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。post請求可能會導致新的資源的建立和/或已有資源的修改。
delete -請求伺服器刪除request-uri所標識的資源。
trace-回顯伺服器收到的請求,主要用於測試或診斷。
connect -http/1.1協議中預留給能夠將連線改為管道方式的
**伺服器。
patch- 用來將區域性修改應用於某一資源,新增於規範rfc5789。
方法名稱是區分大小寫的。當某個請求所針對的資源不支援對應的請求方法的時候,伺服器應當返回狀態碼405(method not allowed);當伺服器不認識或者不支援對應的請求方法的時候,應當返回狀態碼501(not implemented)。
http伺服器至少應該實現
get和post方法,其他方法都是可選的。當然,所有的方法支援的實現都應當符合下述的方法各自的語義定義。此外,除了上述方法,特定的http伺服器還能夠擴充套件自定義的方法。
客戶端向伺服器傳送乙個請求,伺服器以乙個狀態行作為響應,響應的內容包括:訊息協議的版本、成功或者錯誤編碼、伺服器資訊、實體元資訊以及必要的實體內容。根據響應類別的類別,伺服器響應裡可以含實體內容,但不是所有的響應都有實體內容。本節僅簡述響應頭
[14]。
響應頭第一行
響應頭第一行也稱為狀態行,格式如下:
http-version 空格 status-code 空格 reason-phrase crlf
http- version表示http版本,例如為http/1.1。status- code是結果**,用三個數字表示。reason-phrase是個簡單的文字描述,解釋status-code的具體原因。status-code用於機器自動識別,reason-phrase用於人工理解。status-code的第乙個數字代表響應類別,可能取5個不同的值。後續兩位描述在該類響應下發生的具體狀況,具體請參見:
http狀態碼 。
響應頭域
伺服器需要傳遞許多附加資訊,這些資訊不能全放在狀態行裡。因此,需要另行定義響應頭域,用來描述這些附加資訊。響應頭域主要描述伺服器的資訊和request-uri的資訊。響應頭舉例、實體頭以及實體請參見:
伺服器標頭檔案響應
安全超文字轉移協議(secure hypertext transfer protocol, s-http)是一種結合http而設計的訊息的安全通訊協議。s-http協議為http客戶機和伺服器提供了多種安全機制,這些安全服務選項是適用於web上各類使用者的。還為客戶機和伺服器提供了對稱能力(及時處理請求和恢復,及兩者的引數選擇)同時維持http的通訊模型和實施特徵。
s-http不需要客戶方的公用金鑰證明,但它支援對稱金鑰的操作模式。這意味著在沒有要求使用者個人建立公用金鑰的情況下,會自發地發生私人交易。它支援端對端安全傳輸,客戶機可能首先啟動安全傳輸(使用報頭的資訊),用來支援加密技術。
在語法上,s-http報文與http相同,由請求行或狀態行組成,後面是資訊頭和主體。請求報文的格式由請求行、通用資訊頭、請求頭、實體頭、資訊主體組成。響應報文由響應行、通用資訊頭、響應頭、實體頭、資訊主體組成。
目前有兩種方法來建立連線:
httpsuri方案(rfc 2818
[15]
)和http 1.1請求頭(由rfc2817
[16]
引入)。由於瀏覽器對後者的幾乎沒有任何支援,因此https uri方案仍是建立安全超文字協議連線的主要手段。安全超文字連線協議使用https://代替http://
http響應報文結構
http請求報文和響應報文都是由三部分組成,可以看出,這兩種報文格式的區別就在於開始行不同。
1 開始行,用於區別是請求報文還是響應報文。在請求報文中的開始行叫做請求行,在響應報文中的開始行叫做狀態行。在開始行的三個字段之間都以空格分隔開,最後的「cr」和「lf」分別代表「回車」和「換行」。
特別注意的是,請求報文中的第一行只有三個內容,即方法,請求資源的url,以及http的版本。這裡的名詞「方法」就是對所請求的物件進行的操作,這些方法其實也就是一些命令。因此請求報文的型別是由它採用的方法決定的。
2 首部行,用來說明瀏覽器、伺服器或者報文主體的一些資訊。首部可以有若干行,也可以沒有。
3 實體主體,在請求報文中一般無此字段,在響應報文中也可以沒有此欄位。
所有的http報文都分為兩類:請求報文(request message)
和響應報文(response message)
請求報文的格式如下
響應報文的格式如下
下面對各部分簡要描述
http的首部實質上是一些名/值的列表,比如,下面的首部會向content-length首部賦值為19
content-length: 19
以下是一些常用的首部
首部例項
描述date: tue,30oct 1997 02:16:03 gmt
伺服器產生響應的日期
content-length: 1024
實體的主體部分包含了1024位元組的資料
content-type: image/gif
實體的主體部分是乙個gif的
accept: image/gif, image/jpeg, text/html
客戶端可以接收gif和jpeg以及html
http報文的第三部分實體是可選的. 實體的主體是http協議要傳輸的內容
全球資訊網 WWW
全球資訊網的工作模式採用客戶機 伺服器方式,在使用者計算機上執行瀏覽器作為全球資訊網客戶程式,大量的全球資訊網文件儲存在伺服器上,執行伺服器程式 全球資訊網的核心內容包括統一資源定位 url 超文字傳輸協議 http 和文字標記語言 html url的一般格式是 協議 主機 埠 路徑 http是無連...
全球資訊網(WWW)簡介
16.dns 網際網路的網域名稱系統dns被設計成乙個聯機分布式資料庫系統。某應用程序將待解析的網域名稱放在dns請求報文中,以udp資料報方式發給本地網域名稱伺服器,網域名稱伺服器查詢網域名稱後,在返回報文中響應對應的ip位址,如果不能回答請求,該網域名稱伺服器作為dns客戶,向其它網域名稱伺服器...
204全球資訊網的應用
目錄 全球資訊網應用結構 http 概念 版本http連線 報文 請求報文 響應報文 cookie 全球資訊網應用即web應用,web應用主要包括web伺服器 瀏覽器 超文字傳輸協議 http 即超文字傳輸協議,定義瀏覽器如何向web伺服器傳送請求以及web伺服器如何向瀏覽器進行響應http1.0和...