超文本傳輸協議

超文本傳輸協議


  超文本傳輸協議
超文本傳輸協議

文件傳輸協定(HTTP,HyperTextTransfer Protocol)是因特網上應用最爲廣泛的一種網絡傳輸協定。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是爲了提供一種發佈和接收HTML頁面的方法。

介紹

  
 

超文本傳輸協議原理

HTTP的發展是萬維網協會和Internet工作小組合作的結果,在一系列的RFC發佈了最終的版本,其中最著名的是RFC2616。在RFC 2616中定義了HTTP 1.1這個今天普遍使用的版本。   HTTP是一個用於在客戶端和服務器間請求和應答的協議。一個HTTP的客戶端,諸如一個web瀏覽器,通過建立一個到遠程主機特殊端口(默認端口爲80)的連接,初始化一個請求。一個HTTP服務器通過監聽特殊端口等待客戶端發送一個請求序列,就像“GET /HTTP/1.1”(用來請求網頁服務器的默認頁面),有選擇的接收像email一樣的MIME消息,此消息中包含了大量用來描述請求各個方面的信息頭序列,響應一個選擇的保留數據主體。接收到一個請求序列後(如果要的話,還有消息),服務器會發回一個回覆,如“200OK”,同時發回一個它本報的消息,此消息的主體可能是被請求的文件、錯誤消息或者其他的一些信息。   HTTP並不侷限於使用網絡協議(TCP/IP)及其相關支持層,儘管這是它在互聯網上最爲流行的應用程序。事實上,HTTP可以“在任何其他互聯網協議之上執行,或者在其他網絡上執行。HTTP只認可可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。   HTTP不同於其他基於TCP協議,諸如FTP。在HTTP中,一旦一個特殊的請求(或者請求的相關序列)完成,連接通常被中斷。這個設計使得對於當前頁面有規則連接到另一臺服務器頁面的萬維網來說,HTTP是完美的。當持久連接的缺乏成爲保持用戶狀態的必需選擇的方法時,對網頁設計者來說,會偶然產生一些問題。而大部分這些方法包括了對“cookies”的使用。  這裏有一個HTTP的安全版本稱爲HTTPS,HTTPS支持任何的加密算法,只要此加密算法能被頁面雙方所理解。  HTTP(和HTTPS)由統一資源定位器或者簡稱URLs定位。創造這種地址定位的語法爲了HTML的鏈接。超文本傳輸協議

請求信息

發出的請求信息包括以下幾個  
 * 請求行,例如GET /images/logo.gif HTTP/1.1,表示從/images 目錄下請求logo.gif這個文件。
 * 標題,例如Accept-Language: en  
 * 空行
 * 可選信息
  請求行和標題必須以<CR><LF>作爲結尾(也就是,回車然後換行)。空行內必須只有<CR><LF>而無其他空格。在HTTP/1.1協議中,所有的標題除主機外都是可選的。

請求方法

  HTTP 定義了八種方法來指示確認的資源執行所需的行爲。
 HEAD   要求與GET請求相應的回覆一樣的應答,但是沒有迴應的內容。這對找回寫在迴應標題中的meta-infomation有幫助,不需要傳輸整個內容。  
 GET  請求某個特殊的資源,是目前網上最通用的方法。不應該用於一些會造成副作用的操作中(在網絡軟件中使用是一個常見的錯誤用法)。參看下個目錄的安全方法。
   POST
  向確定的資源提交需要處理的數據。這些數據包括在請求的內容裏。這可以造成新資源的產生和更新已有資源。
   PUT   上傳特定資源
  DELETE   刪除特定資源
 TRACE   返回接收的請求,客戶端可因此察看在請求過程中什麼中間服務器被加進來或者有所改變。  OPTIONS   返回服務器支持的HTTP方法,這可以用來檢查網絡服務器的功能。  
 CONNECT  將請求連接轉換成透明的TCP/IP通道,通常通過非加密的HTTP代理利用SSL-加密通訊(HTTPS)。

編輯本段安全方法

  有些方法(比如HEAD, GET, OPTIONS, and TRACE) 被定義爲安全方法,這些方法針對的只是信息的返回,並不會改變服務器的狀態(換句話說就是這些方法不會產生副作用)。不安全的方法(例如POST, PUTand DELETE)應該用特殊的方式向用戶展示,通常是按鈕而不是鏈接,這樣就可以使用戶意識到可能要負的責任(例如一個按鈕帶來的資金交易。)

超文本

   超文本(Hypertext)是用超鏈結的方法,將各種不同空間的文字信息組織在一起的網狀文本。超文本更是一種用戶介面範式,用以顯示文本及與文本之間相關的內容。現時超文本普遍以電子文檔方式存在,其中的文字包含有可以鏈結到其他位置或者文檔的連結,允許從當前閱讀位置直接切換到超文本連結所指向的位置。超文本的格式有很多,目前最常使用的是超文本標記語言(Hyper TextMarkup Language,HTML)及富文本格式 (Rich TextFormat,RTF)。我們日常瀏覽的網頁上的鏈結都屬於超文本。2、一種按信息之間關係非線性地存儲、組織、管理和瀏覽信息的計算機技術。超文本技術將自然語言文本和計算機交互式地轉移或動態顯示線性文本的能力結合在一起,它的本質和基本特徵就是在文檔內部和文檔之間建立關係,正是這種關係給了文本以非線性的組織。

例子

  下面是一個HTTP客戶端與服務器之間會話的例子,運行於www.g o o g l e. c o m,端口80  
 客戶端請求:
   GET / HTTP/1.1  
 Host:www.b a i d u.c o m   
(緊跟着一個換行,通過敲入回車實現)  
 服務器應答:
  HTTP/1.1 200 OK  
 Content-Length: 3059
  Server: GWS/2.0
  Date: Sat, 11 Jan 2003 02:44:04 GMT
  Content-Type: text/html
  Cache-control: private   
Set-Cookie:PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy  X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.g o og l e. c o m  
 Connection: keep-alive   
(緊跟着一個空行,並且由HTML格式的文本組成了Google的主頁)
  在HTTP1.0中,客戶端發送一個請求至服務器,服務器發送一個應答至客戶端。之後,連接將被釋放。另一方面,HTTP1.1支持持久連接。這使得客戶端可以發送請求並且接收應答,然後迅速的發送另一個請求和接收另一個應答。因爲多個額外的請求,TCP連接並沒有被釋放,而每個請求中關於TCP的負載相對較少。同時,在得到上一個請求的應答之前發送多個請求(通常是兩個)也成爲可能。這個技術被稱爲“流水線”。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章