- 超文字傳輸協議(http,hypertexttransferprotocol)是互聯網上應用最為廣泛的一種網絡協議。所有的engineeringtaskforce)共同合作研究,最終釋出了一係列的rfc,其中著名的rfc2616定義了http1.1。
http是一個客戶端和服務器端請求和應答的標準(tcp)。客戶端是終端用戶,服務器端是網站。通過使用web瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定(默認為80)的http請求。(我們稱這個客戶端)叫用戶代理(useragent)。應答的服務器上存儲著(一些)資源,比如html檔案
http和其他幾種網絡協議
和圖像。(我們稱)這個應答服務器為源服務器(originserver)。在用戶代理和源服務器中間可能存在
http和其他幾種網絡協議多箇中間層,比如代理,網關,或者隧道(tunnels)。儘管tcpip協議是互聯網上最流行的應用,http協議並冇有規定必須使用它和(基於)它支援的層。事實上,http可以在任何其他互聯網協議上,或者在其他網絡上實現。http隻假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。
通常,由http客戶端發起一個請求,建立一個到服務器指定(默認是80)的tcp連接。http服務器則在那個監聽客戶端發送過來的請求。一旦收到請求,服務器(向客戶端)發回一個狀態行,比
http協議的網頁
如"http1.1200ok",和(響應的)訊息,訊息的訊息體可能是請求的檔案、錯誤訊息、或者其它一些資訊。
http協議的網頁
http使用tcp而不是udp的原因在於(打開)一個網頁必須傳送很多數據,而tcp協議提供傳輸控製,按順序組織數據,和錯誤糾正。
通過http或者https協議請求的資源由統一資源標示符(uniformresourceidentifiers)(或者,更準確一些,urls)來標識。
協議功能
http協議(hypertexttransferprotocol,超文字傳輸協議)是用於從上的web服務器上存放的都是超文字資訊,客戶機需要通過http協議傳輸所要訪問的超文字資訊。http包含命令和傳輸資訊,不僅可用於web訪問,也可以用於其他因特網內聯網應用係統之間的通訊,從而實現各類應用資源超媒體訪問的整合。
我們在瀏覽器的地址欄裡輸入的網站地址叫做url(uniformresourcelocator,統一資源定位符)。就像每
http功用
家每戶都有一個門牌地址一樣,每個網頁也都有一個inter地址。當你在
http功用瀏
覽器的地址框中輸入一個url或是單擊一個超級鏈接時,url就確定了要瀏覽的地址。瀏覽器通過超文字傳輸協議(http),將web服務器上站點的網頁代碼提取出來,並翻譯成漂亮的網頁。
協議基礎
http(hypertexttransportprotocol)是超文字傳輸協議的縮寫,它用於傳送、iis和apache,都支援httpkeep-alive。對於提供靜態內容的網站來說,這個功能通常很有用。但是,對於負擔較重的網站來說,這裡存在另外一個問題:雖然為客戶保留打開的連接有一定的好處,但它同樣影響了效能,因為在處理暫停期間,本來可以釋放的資源仍舊被占用。當web服務器和應用服務器在同一台機器上運行時,keep-alive功能對資源利用的影響尤其突出。
keepalivetime值控製tcpip嘗試驗證空閒連接是否完好的頻率。如果這段時間內冇有活動,則會發送保持活動信號。如果網絡工作正常,而且接收方是活動的,它就會響應。如果需要對丟失接收方敏感,換句話說,需要更快地發現丟失了接收方,請考慮減小這個值。如果長期不活動的空閒連接出現次數較多,而丟失接收方的情況出現較少,您可能會要提高該值以減少開銷。預設情況下,如果空閒連接7200000毫秒(2小時)內冇有活動,windows就發送保持活動的訊息。通常,1800000毫秒是首選值,從而一半的已關閉連接會在30分鐘內被檢測到。keepaliveinterval值定義瞭如果未從接收方收到保持活動訊息的響應,tcpip重複發送保持活動信號的頻率。當連續發送保持活動信號、但未收到響應的次數超出tcpmaxdataretransmissions的值時,會放棄該連接。如果期望較長的響應時間,您可能需要提高該值以減少開銷。如果需要減少花在驗證接收方是否已丟失上的時間,請考慮減小該值或tcpmaxdataretransmissions值。預設情況下,在未收到響應而重新發送保持活動的訊息之前,windows會等待1000毫秒(1秒)。keepalivetime根據你的需要設置就行,比如10分鐘,注意要轉換成ms。xxx代表這個間隔值得大小。
2.date頭域
date頭域表示訊息發送的時間,時間的描述格式由rfc822定義。例如,date:n,31dec200104:25:57gmt。date描述的時間表示世界標準時,換算成本地時間,需要知道用戶所在的時區。
3.pragma頭域
pragma頭域用來包含實現特定的指令,最常用的是pragma:no-cache。在http1.1協議中,它的含義和cache-control:no-cache相同。
請求訊息
請求訊息的第一行為下麵的格式:
methodsprequest-urisphttp-versioncrlfmethod表示對於request-uri完成的方法,這個欄位是大小寫敏感的,包括options、get、head、post、put、delete、trace。方法get和head應該被所有的通用web服務器支援,其他所有方法的實現是可選的。get方法取回由request-uri標識的資訊。head方法也是取回由request-uri標識的資訊,隻是可以在響應時,不返回訊息體。post方法可以請求服務器接收包含在請求中的實體資訊,可以用於提交表單,向新聞組、bbs、郵件群組和數據庫發送訊息。
sp表示空格。request-uri遵循uri格式,在此欄位為星號(*)時,說明請求並不用於某個特定的資源地址,而是用於服務器本身。http-version表示支援的http版本,例如為http1.1。crlf表示換行回車符。請
http架構
求頭域允許客戶端向服務器傳遞關於請求或者關於客戶機的附加信
http架構息。請求頭
域可能包含下列欄位aept、aept-charset、aept-encoding、aept-language、authorization、from、host、if-dified-since、if-match、if-none-match、if-range、if-range、if-undified-since、max-forwards、proxy-authorization、range、referer、user-agent。對請求頭域的擴展要求通訊雙方都支援,如果存在不支援的請求頭域,一般將會作為實體頭域處理。
典型的請求訊息:
host:download.*******.de
aept:**
pragma:no-cache
cache-control:no-cache
user-agent:zilla4.04[en](win95;i;nav)
range:bytes=554554-
上例第一行表示http客戶端(可能是瀏覽器、下載程式)通過get方法獲得指定url下的檔案。棕色的部分表示請求頭域的資訊,綠色的部分表示通用頭部分。
1.host頭域
host頭域指定請求資源的inte主機和號,必須表示請求url的原始服務器或網關的位置。http1.1請求必須包含主機頭域,否則係統會以400狀態碼返回。
2.referer頭域
referer頭域允許客戶端指定請求uri的源資源地址,這可以允許服務器生成回退鏈表,可用來登陸、優化cache等。他也允許廢除的或錯誤的連接由於維護的目的被追蹤。如果請求的uri冇有自己的uri地址,referer不能被髮送。如果指定的是部分uri地址,則此地址應該是一個相對地址。
3.range頭域
range頭域可以請求實體的一個或者多個子範圍。例如,
表示頭500個字節:bytes=0-499
表示第二個500字節:bytes=500-999
表示最後500個字節:bytes=-500
表示500字節以後的範圍:bytes=500-
第一個和最後一個字節:bytes=0-0,-1
同時指定幾個範圍:bytes=500-600,601-999
但是服務器可以忽略此請求頭,如果無條件get包含range請求頭,響應會以狀態碼206(partialcontent)返回而不是以200(ok)。
4.user-agent頭域
user-agent頭域的內容包含發出請求的用戶資訊。
響應訊息
響應訊息的第一行為下麵的格式:
http-versionspstatus-codespreason-phrasecrlf
http-version表示支援的http版本,例如為http1.1。status-code是一個三個數字的結果代碼。reason-phrase給status-code提供一個簡單的文字描述。status-code主要用於機器自動識彆,reason-phrase主要用於幫助用戶理解。status-code的第一個數字定義響應的類彆,後兩個數字冇有分類的作用。第一個數字可能取5個不同的值:
1xx:資訊響應類,表示接收到請求並且繼續處理
2xx:處理成功響應類,表示動作被成功接收、理解和接受
3xx:重定向響應類,為了完成指定的動作,必須接受進一步處理
4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執行
5xx:服務端錯誤,服務器不能正確執行一個正確的請求
響應頭域允許服務器傳遞不能放在狀態行的附加資訊,這些域主要描述服務器的資訊和request-uri進一步的資訊。響應頭域包含age、location、proxy-authenticate、public、retry-after、server、vary、warning、上,http通訊通常發生在tcpip連接之上。預設是tcp80,但其它的也是可用的。但這並不預示著http協議在inter或其它網絡的其它協議之上才能完成。http隻預示著一個可靠的傳輸。
這個過程就好像我們打電話訂貨一樣,我們可以打電話給商家,告訴他我們需要什麼規格的商品,然後商家再告訴我們什麼商品有貨,什麼商品缺貨。這些,我們是通過電話線用電話聯絡(http是通過tcpip),當然我們也可以通過傳真,隻要商家那邊也有傳真。
超文字傳輸協議已經演化出了很多版本,它們中的大部分都是向下相容的。在rfc2145中描述了http
配置http通行證版本
號的用法。客戶端在請求的開始告訴服務器它采用的協議版本號,而後者則在響應中采用相同或者更早的協議版本。
0.9已過時。隻接受get一種請求方法,冇有在通訊中指定版本號,且不支援請求頭。由於該版本不支援post方法,所以客戶端無法向服務器傳遞太多資訊。
http1.0這是第一個在通訊中指定版本號的http協議版本,至今仍被廣泛采用,特彆是在代理服務器中。
http1.1當前版本。持久連接被默認采用,並能很好地配合代理服務器工作。還支援以管道方式同時發送多個請求,以便降低線路負載,提高傳輸速度。
http1.1相較於http1.0協議的區彆主要體現在:
1緩存處理
2帶寬優化及網絡連接的使用
3錯誤通知的管理
4訊息在網絡中的發送
5互聯網地址的維護
6安全性及完整性
天網maze是北京大學網絡實驗室開發的一款資源和功能非常強大的pic(personalinformationcenter個人資訊中心)檔案係統。截至到2005年10月,天網maze已有註冊用戶220萬,同時最高在線用戶數超過10萬。
天網maze的特點
天網互聯公司首先推出這個pic概念,目的是為了和其他p2p軟件區彆開(詳情請參看天網maze與其它bt軟件的異同)。相比其他p2p軟件,天網maze更加註重的是以人為本,誠信交流的原則。具體體現在:機製方麵,我們有積分原則和排隊策略,用以鼓勵天網maze用戶儘可能地與他人共享其資源,而處罰規則,用以對流傳在天網maze上的各類非法資源進行處理,擁護國家對中國互聯網上的有關法律規章,維護互聯網上的合法、正常的次序,即在推崇個性化的同時,規範其個性化在天網maze上的發展;技術方麵,我們努力在天網maze上實現檔案的“所見即所得”,讓更多精彩的、熱門的檔案以最快的速度呈獻在廣大天網maze用戶麵前;資源方麵:在天網maze裡麵,有數以億計的影視,音樂,小說等娛樂資源。不僅如此,因為在天網maze的共享資源裡麵具有極其多的學術檔案,論文可供查詢和下載,這也是天網maze在教育網內的風行的原因,天網maze還是個交友和社區化的平台,能把您周圍和您有共同愛好的天網maze用戶聚集到一起來;功能方麵:天網maze集檔案的共享、查詢、下載為一身,既是網上資源搜尋的強力引擎,也是資源下載的利器,您不僅可以通過天網maze的共享功能直接下載,還可以像其它bt軟件一樣通過“種子”的釋出達到資源共享及下載的目的。
maze是北京大學深圳研究生院幾位碩士研究生在2003年暑假的開發成果,目的是解決當前ftp服務器的缺陷以及它所導致的在ftp搜尋引擎內找到資源卻無法有效下載的問題,為廣大網友提供一種檔案共享的新方法、檔案下載的新途徑。-