第103講-超文本傳輸協(xié)議HTTP_第1頁
第103講-超文本傳輸協(xié)議HTTP_第2頁
第103講-超文本傳輸協(xié)議HTTP_第3頁
第103講-超文本傳輸協(xié)議HTTP_第4頁
第103講-超文本傳輸協(xié)議HTTP_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

110.3超文本傳輸協(xié)議HTTP要求1.理解WWW的基本原理2.了解URL3.了解HTML語言4.掌握HTTP協(xié)議的原理和基本過程5.理解基于Web應(yīng)用的基本原理和過程6.了解信息檢索2WWW要解決的問題●兩個問題1、能否不按照物理地址,而是根據(jù)內(nèi)容進(jìn)行查詢2、能否用統(tǒng)一的方式對聲圖文等各類資源進(jìn)行標(biāo)注●兩個概念:1、超文本Hypertext:不是順序關(guān)系而是鏈接關(guān)系2、統(tǒng)一資源定位符URL:對各種資源統(tǒng)一定位●兩項(xiàng)實(shí)現(xiàn)技術(shù):1、超文本傳輸協(xié)議HTTP2、超文本標(biāo)記語言HTML:如何鏈接、是哪種資源HTTP:WWW的超文本傳輸協(xié)議31.89年3月,歐洲粒子物理實(shí)驗(yàn)室CERN物理學(xué)家TimBerners-Lee提出WWW計(jì)劃

2.18個月后,第一個基于文本的原型運(yùn)行

3.91年12月,在德克薩斯州的SanAntonion91超文本會議上第一次公開演示

4.93年2月,美國NSCA(NationalCenterforSupercomputingApplication)的MarcAndressen,第一個圖形界面的瀏覽器Mosaic5.94年,Andressen離開NSCA創(chuàng)建了Netscape公司,推出Navigator1WWW的歷史4

6.94年,CERN和麻省理工學(xué)院簽定協(xié)議建立萬維網(wǎng)集團(tuán),致力于進(jìn)一步發(fā)展信息網(wǎng),標(biāo)準(zhǔn)化協(xié)議并鼓勵站點(diǎn)間的互操作性,主頁

7.目前已經(jīng)成為Internet上使用最為廣泛的應(yīng)用,也成了推動互連網(wǎng)飛速發(fā)展的動力TimBerners-Lee:“萬維網(wǎng)之父”1WWW的歷史52WWW的組成部分1.Web組成:一個大規(guī)模的、聯(lián)機(jī)式的信息網(wǎng)由大量Web頁面組成。每個Web頁面被歸類為一個超媒體(hypermedia)文檔hyper:文檔可包含指向其它相關(guān)文檔的鏈接media:文檔可包含文本+圖形+音頻+視頻2.使用Web:B/S模式,革命性的突破Web瀏覽器:用戶訪問和顯示W(wǎng)eb頁的應(yīng)用程序Web服務(wù)器:包含多個Web頁,供用戶訪問6B/S模式隨著Internet和WWW的流行,以往的主機(jī)/終端和C/S都無法滿足當(dāng)前的全球網(wǎng)絡(luò)開放、互連、信息隨處可見和信息共享的新要求,于是就出現(xiàn)了B/S型模式,即瀏覽器/服務(wù)器結(jié)構(gòu)。B/S模式最大特點(diǎn)是:用戶可以通過WWW瀏覽器去訪問Internet上的文本、數(shù)據(jù)、圖像、動畫、視頻點(diǎn)播和聲音信息,這些信息都是由許許多多的Web服務(wù)器產(chǎn)生的,而每一個Web服務(wù)器又可以通過各種方式與數(shù)據(jù)庫服務(wù)器連接,大量的數(shù)據(jù)實(shí)際存放在數(shù)據(jù)庫服務(wù)器中。7B/S模式客戶端除了WWW瀏覽器,一般無須任何用戶程序,只需從Web服務(wù)器上下載程序到本地來執(zhí)行,在下載過程中若遇到與數(shù)據(jù)庫有關(guān)的指令,由Web服務(wù)器交給數(shù)據(jù)庫服務(wù)器來解釋執(zhí)行,并返回給Web服務(wù)器,Web服務(wù)器又返回給用戶。在這種結(jié)構(gòu)中,將許許多多的網(wǎng)連接到一塊,形成一個巨大的網(wǎng),即全球網(wǎng)。而各個企業(yè)可以在此結(jié)構(gòu)的基礎(chǔ)上建立自己的Internet。8B/S模式的優(yōu)點(diǎn)具有分布性特點(diǎn),可以隨時隨地進(jìn)行查詢、瀏覽等業(yè)務(wù)處理業(yè)務(wù)擴(kuò)展簡單方便,通過增加網(wǎng)頁即可增加服務(wù)器功能維護(hù)簡單方便,只需要改變網(wǎng)頁,即可實(shí)現(xiàn)所有用戶的同步更新開發(fā)簡單,共享性強(qiáng)9B/S模式的缺點(diǎn)個性化特點(diǎn)明顯降低,無法實(shí)現(xiàn)具有個性化的功能要求操作是以鼠標(biāo)為最基本的操作方式,無法滿足快速操作的要求頁面動態(tài)刷新,響應(yīng)速度明顯降低無法實(shí)現(xiàn)分頁顯示,給數(shù)據(jù)庫訪問造成較大的壓力103.Web頁表示方式—HTML頁面組成:頭部+主體頁面標(biāo)識:<HTML>和</HTML>頭部標(biāo)識:<HEAD>和</HEAD>主體標(biāo)識:<BODY>和</BODY>Web頁示例<html><head><title>這是一個測試頭</title></head><body>

thisisatestpage!

<AHREF="10/test.html">連接到另一個網(wǎng)頁</A></body></html>11124.Web頁的名稱—URL(統(tǒng)一資源定位符)功能:為每個頁面命名,唯一地標(biāo)識該頁形式:http://hostname[:port]/path[;parameters][?query]組成:協(xié)議:http,指明使用的協(xié)議類型服務(wù)器地址[端口]:hostname[:port],指明服務(wù)器的地址和端口,此處端口可選,且不一定是80頁面路徑:標(biāo)識頁面在服務(wù)器上的位置可選項(xiàng):parameters指定由用戶提供的可選參數(shù);query用于給動態(tài)網(wǎng)頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術(shù)制作的網(wǎng)頁)傳遞參數(shù),可有多個參數(shù),用“&”符號隔開,每個參數(shù)的名和值用“=”符號隔開示例:/c/2010-07-01/10553126043.shtml3什么是HTTP3.1HTTP的定義HTTP的全稱是HyperTextTransferProtocol,即超文本傳輸協(xié)議。作為一種應(yīng)用層協(xié)議,HTTP在可靠的網(wǎng)絡(luò)層協(xié)議(例如TCP/IP)的基礎(chǔ)上提供了在Web服務(wù)器和客戶之間傳輸信息的一種機(jī)制,并規(guī)定了客戶與服務(wù)器之間交互的各種消息。IETF(InternetEngineeringTaskForce):IETF是一個官方組織,它的任務(wù)是制定Internet上公用的通信協(xié)議、數(shù)據(jù)格式等規(guī)范。W3C(WorldWideWebConsortium):它的主要任務(wù)是制定和實(shí)現(xiàn)各種規(guī)范、指南、軟件,從而充分的發(fā)揮Web潛能。HTTP是IETF(InternetEngineeringTaskForce)制定的國際化標(biāo)準(zhǔn)。在HTTP標(biāo)準(zhǔn)制定和實(shí)現(xiàn)的過程中,W3C積極參與了其中的工作,并發(fā)揮了重要作用。133什么是HTTP3.2HTTP的功能(1)Web上的文件傳輸通過使用HTTP協(xié)議,客戶可從Web服務(wù)器上下載幾乎所有類型的文件,包括HTML文件/圖像/視頻/音頻等多媒體文件,JavaApplet等對象,甚至應(yīng)用程序等。同樣,客戶也可以向Web服務(wù)器上傳幾乎所有類型的文件。示例:使用IE瀏覽Web頁面143什么是HTTP(2)基于Web的動態(tài)、交互應(yīng)用通過使用HTTP協(xié)議,可將用戶在客戶端輸入的各種信息(例如,購物時需要的姓名、年齡、性別、愛好、信用卡號等)提交給Web服務(wù)器,從而實(shí)現(xiàn)基于Web的動態(tài)、交互式應(yīng)用。示例:使用IE來訪問WebMail系統(tǒng),例如:

153什么是HTTP(3)HTTP功能小結(jié)在上述兩種功能中,文件傳輸是HTTP的最基本也是最重要的功能,它滿足了用戶在早期對Web在信息出版、共享和瀏覽上的需求;隨著Web逐漸成為Internet應(yīng)用開發(fā)的平臺,HTTP在開發(fā)基于Web的動態(tài)、交互應(yīng)用中也得到越來越多的運(yùn)用。163什么是HTTP3.3HTTP的特點(diǎn)(1)客戶/服務(wù)器模式HTTP是為開發(fā)Web上的客戶/服務(wù)器應(yīng)用而設(shè)計(jì)的,每次客戶/服務(wù)器的交互都開始于客戶提出的一個請求,并以服務(wù)器給出響應(yīng)而結(jié)束。173什么是HTTP3.3HTTP的特點(diǎn)(2)簡單快速在Web出現(xiàn)之前,在Internet上傳輸文件的傳統(tǒng)方法是使用FTP協(xié)議。與HTTP協(xié)議相比,F(xiàn)TP協(xié)議傳輸文件的機(jī)制更為復(fù)雜,額外的開銷也大。FTP協(xié)議在工作時需要建立兩條連接,HTTP使用單個的連接來發(fā)送請求和傳輸文件。每個客戶的請求指出了請求的方法以及該方法所作用的資源的地址或路徑。由于HTTP協(xié)議簡單,使得HTTP通信的速度較快。183什么是HTTP3.3HTTP的特點(diǎn)(3)內(nèi)容協(xié)商大多數(shù)的HTTP響應(yīng)中都包含了用戶所需要的資源,HTTP協(xié)議中使用了“內(nèi)容協(xié)商”機(jī)制以盡可能地返回對用戶而言是“最合適”(在“媒體類型”、“語言”等方面)的資源實(shí)體。193什么是HTTP3.3HTTP的特點(diǎn)(3)內(nèi)容協(xié)商所謂的“內(nèi)容協(xié)商”是指當(dāng)資源存在多種表現(xiàn)形式時,從中選擇出一種最好形式的過程。該過程有兩種實(shí)現(xiàn)途徑:一種是“服務(wù)器驅(qū)動的”(Server-driven),即用戶給出自己的首選項(xiàng),而最終的選擇由服務(wù)器作出;另一種是“客戶驅(qū)動的”(Client-driven),即服務(wù)器給出自己所能夠提供的選項(xiàng),而最終的選擇由客戶作出。203什么是HTTP3.3HTTP的特點(diǎn)(4)可擴(kuò)充性HTTP協(xié)議中允許客戶與服務(wù)器之間可以傳輸任意類型的數(shù)據(jù)對象,正在傳輸?shù)念愋陀蒀ontent-Type等頭字段加以標(biāo)記。這樣,基于HTTP協(xié)議的系統(tǒng)的構(gòu)建與該系統(tǒng)中要傳輸?shù)臄?shù)據(jù)無關(guān)。213什么是HTTP3.3HTTP的特點(diǎn)(4)可擴(kuò)充性另一方面,HTTP協(xié)議中的method和header等集合又是可擴(kuò)充的。因此,HTTP不僅僅可以用于Web這樣的分布式超媒體系統(tǒng),它還可以作為一種通用的協(xié)議用于名字服務(wù)器、分布式對象管理等系統(tǒng)。223什么是HTTP3.3HTTP的特點(diǎn)(5)無持久性連接HTTP1.0協(xié)議在每次連接時只處理一個請求,服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時間。233什么是HTTP3.3HTTP的特點(diǎn)(5)無持久性連接在使用IE瀏覽一個網(wǎng)頁時,客戶端至少要和服務(wù)器建立一次連接,用于傳輸該網(wǎng)頁;此外,當(dāng)網(wǎng)頁中包含若干個內(nèi)嵌的多媒體或者應(yīng)用程序(例如:圖像、Applet等)對象時,客戶端還要再次和服務(wù)器端建立相應(yīng)數(shù)目的連接來下載對應(yīng)的文件。需要說明的是,在HTTP1.1中引入了持久連接,即每次連接可以處理多個請求。243什么是HTTP3.3HTTP的特點(diǎn)(6)無狀態(tài)HTTP協(xié)議是無狀態(tài)協(xié)議,無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。對于文件傳輸功能而言,服務(wù)器不需要記錄先前信息,因此無狀態(tài)不影響該功能的實(shí)現(xiàn),同時能夠保證較快的應(yīng)答速度。253什么是HTTP3.3HTTP的特點(diǎn)(6)無狀態(tài)但是,對于開發(fā)基于Web的動態(tài)、交互應(yīng)用而言,HTTP協(xié)議的無狀態(tài)性則帶來了不便。這些應(yīng)用往往需要保留客戶的狀態(tài)。此時,應(yīng)用程序的開發(fā)人員必須使用一些特別的方法來克服這一困難。例如,每次用戶提交請求時重傳前面的信息,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。264HTTP的歷史HTTP從1989年被用于WorldWideWeb開始,已經(jīng)有了二十多年的歷史,經(jīng)過三個版本的發(fā)展,HTTP也日趨完善。274HTTP的歷史(1)HTTP/0.9HTTP的第一個實(shí)現(xiàn)版本為HTTP/0.9,這是一個用于在Internet上傳送HTML文本文件的簡單協(xié)議??蛻舳藘H支持Get方法。服務(wù)器端通過將文檔返回給客戶來響應(yīng)客戶的請求,而不加上任何的附加信息。經(jīng)過幾年的發(fā)展后,HTTP/0.9由于過于簡單而逐漸被淘汰。284HTTP的歷史(2)HTTP/1.0HTTP/1.0是在1992年到1996年期間開發(fā)的,并在1996年5月成為正式的官方標(biāo)準(zhǔn)-RFC1945。開發(fā)HTTP/1.0的主要需求是傳送除簡單的文本文件以外的其它格式更為豐富的文件。294HTTP的歷史(2)HTTP/1.0與HTTP/0.9相比,HTTP/1.0在許多方面作了改進(jìn):支持MIME格式的消息,其中包含了有關(guān)被傳送數(shù)據(jù)的元數(shù)據(jù)以及對請求和響應(yīng)語義的限定符;除了支持Get方法以外,可以使用Post、Head等方法。304HTTP的歷史(3)HTTP/1.1它與HTTP/1.0比較相似。但是,它在以下幾個方面作了改進(jìn):緩存(Caching):對于Web這種分布式信息系統(tǒng)而言,可以通過使用緩存來提高其性能。HTTP/1.1中包含了一系列元素以實(shí)現(xiàn)緩存功能,盡可能地減少請求和響應(yīng)的發(fā)送,從而減少網(wǎng)絡(luò)帶寬的占用、加快傳送速度。314HTTP的歷史(3)HTTP/1.1支持持久連接(persistentconnection)在HTTP/1.0中,每傳送一個URL文件,均需要建立一個連接,因此,在HTML文件中使用內(nèi)嵌的圖像等對象將使得客戶對服務(wù)器在較短的時間內(nèi)向服務(wù)器提出多個請求,從而加重來服務(wù)器的負(fù)擔(dān),引起網(wǎng)絡(luò)的堵塞。在HTTP/1.1中,每個連接在缺省情況下均為持久連接,通過該連接客戶可以提出多個請求,直到客戶或者服務(wù)器顯示地將該連接關(guān)閉。324HTTP的歷史(3)HTTP/1.1增加了三個新的方法:PUT、DELETE和TRACE。PUT和DELETE可以對遠(yuǎn)程服務(wù)器上的資源進(jìn)行創(chuàng)建、替換和刪除等操作。TRACE使原請求通過傳輸路徑再傳送回發(fā)送者,這有助于發(fā)現(xiàn)客戶服務(wù)器鏈接上處理請求的中間代理造成的錯誤。334HTTP的歷史(3)HTTP/1.1增加了新的頭字段在HTTP協(xié)議中,頭字段為請求消息和響應(yīng)消息提供了重要的輔助信息。通過使用請求頭字段,可以使得客戶的請求語義進(jìn)一步細(xì)化。例如:采用“Range”、“If-Range”、“Content-Range”等頭字段,客戶可以從服務(wù)器上獲取指定資源的某個特定部分,而不是整個的資源。345HTTP中的有關(guān)術(shù)語連接(Connection):兩個程序之間出于通信的目的而建立的傳輸層虛擬電路消息(Message):HTTP通信中的基本單元。消息通過連接來傳送,它由結(jié)構(gòu)化的比特流組成,這些比特流必須符合HTTP規(guī)范中的語法規(guī)定。請求(Request):HTTP請求消息。響應(yīng)(Response):HTTP響應(yīng)消息。355HTTP中的有關(guān)術(shù)語資源(Resource):可以用URI進(jìn)行標(biāo)識的網(wǎng)絡(luò)數(shù)據(jù)對象或者服務(wù)。資源可以由多種表示形式(例如:多種語種、多種數(shù)據(jù)格式、分辨率等)。實(shí)體(Entity):作為請求或者響應(yīng)的有效載荷而傳輸?shù)男畔ⅰ?shí)體由元信息和內(nèi)容組成,元信息包含在頭字段(entity-headerfields)中,而內(nèi)容包含在正文(entity-body)中(對于響應(yīng)而言,其實(shí)體往往是用戶需要下載的資源)。365HTTP中的有關(guān)術(shù)語客戶(Client):為發(fā)送請求而建立連接的應(yīng)用程序。用戶代理(Useragent):發(fā)起請求的客戶。常見的用戶代理通常包括瀏覽器、編輯器、遍歷Web的robot或其它終端用戶工具。375HTTP中的有關(guān)術(shù)語服務(wù)器(Server):接受連接并通過返回響應(yīng)而為客戶請求提供服務(wù)的應(yīng)用程序。源服務(wù)器(Originserver):資源所駐留的服務(wù)器。緩存(Cache):在應(yīng)用程序中,用于暫存服務(wù)器響應(yīng)消息的本地存儲空間以及對暫存消息的存儲、檢索和刪除進(jìn)行控制的子系統(tǒng)。緩存用于存儲可緩存的響應(yīng)消息,以便在將來出現(xiàn)相同的客戶請求時減少響應(yīng)時間并降低網(wǎng)絡(luò)帶寬的占用。通常,每個客戶和服務(wù)器都會包含一個緩存。385HTTP中的有關(guān)術(shù)語代理(Proxy):一個中間程序,它既充當(dāng)一個服務(wù)器,也充當(dāng)一個客戶,其目的是代表其它客戶提出請求。因此HTTP代理必須要同時實(shí)現(xiàn)HTTP協(xié)議對客戶和服務(wù)器的要求。代理可以在其內(nèi)部為請求提供服務(wù),也可以將請求向其它服務(wù)器傳送(可能會對請求作適當(dāng)?shù)霓D(zhuǎn)換)?!巴该鞔怼保╰ransparentproxy)通常不對客戶的請求作任何改動;“非透明代理”(non-transparentproxy)對客戶的請求進(jìn)行修改從而為客戶提供額外的服務(wù),例如:媒體類型轉(zhuǎn)換等。395HTTP中的有關(guān)術(shù)語網(wǎng)關(guān)(Gateway):一個為其它服務(wù)器充當(dāng)中間媒介的服務(wù)器。與代理不同的是,網(wǎng)關(guān)接受請求就好象它是源服務(wù)器,發(fā)出請求的客戶并沒有意識到它在同網(wǎng)關(guān)打交道。說明:為了能夠讓Intranet上的這些計(jì)算機(jī)能夠訪問Internet上的資源,Intranet上可以設(shè)置若干個Proxy或者Gateway,作為Intranet到Internet的通道。40416超文本傳輸協(xié)議—HTTP

用途:瀏覽器和Web服務(wù)器之間的通信協(xié)議1.HTTP請求方法方法描述GET請求讀一Web網(wǎng)頁HEAD請求讀一Web頁的頭部PUT請求存儲一Web頁P(yáng)OST在某個Web頁中附加信息DELETE請求刪除Web網(wǎng)頁LINK鏈接兩個已有的頁面UNLINK斷開兩個已有頁面間的鏈接用于信息搜集和測試URL的有效性帶有URL,向服務(wù)器上載數(shù)據(jù),但是不替換現(xiàn)有的數(shù)據(jù),通常把新的數(shù)據(jù)附加在現(xiàn)有數(shù)據(jù)的后面42432.持久連接和長度①早期請求服務(wù)器數(shù)據(jù)的方法每個數(shù)據(jù)傳輸都使用新的TCP連接:客戶打開TCP連接,發(fā)送GET請求;服務(wù)器傳送完,關(guān)閉連接缺點(diǎn):開銷大②持久連接客戶打開和服務(wù)器的連接后一直存在③改進(jìn)措施流水線技術(shù)(pipelining:逐個連續(xù)發(fā)請求,不等響應(yīng))問題:如何劃分多次傳輸?shù)捻?xiàng)目?解決:先發(fā)送數(shù)據(jù)的長度,再發(fā)送具有該長度的數(shù)據(jù)項(xiàng)問題:若服務(wù)器事先不知道數(shù)據(jù)的長度怎么辦?解決:服務(wù)器通知瀏覽器,傳送完后關(guān)閉連接3.HTTP報(bào)文格式●

①HTTP報(bào)文格式44HTTP:信里的文檔HTTP協(xié)議的形象理解:信封格式有嚴(yán)格標(biāo)準(zhǔn),不關(guān)心里面內(nèi)容。請求報(bào)文請求行GET/hello.htmlHTTP/1.1首部一個空行實(shí)體主體例如:表單內(nèi)容(只在某些報(bào)文中出現(xiàn))45請求行請求類型GET/POSTURLHTTP版本空格空格46請求類型請求報(bào)文中的請求類型字段定義了幾種不同方法的報(bào)文請求方法是客戶端向服務(wù)器發(fā)出的真正命令或請求47響應(yīng)報(bào)文狀態(tài)行首部一個空行實(shí)體主體(只在某些報(bào)文中出現(xiàn))48狀態(tài)行HTTP版本狀態(tài)碼狀態(tài)短語空格空格49首部請求行一個空行實(shí)體主體(只在某些報(bào)文中出現(xiàn))通用首部請求首部實(shí)體首部狀態(tài)行一個空行實(shí)體主體(只在某些報(bào)文中出現(xiàn))通用首部響應(yīng)首部實(shí)體首部50HTTP請求的結(jié)構(gòu)請求的結(jié)構(gòu)例子POST/TheStockExchange/Trading/GetStockPrice.aspHTTP/1.1Host:localhostContent-Type:application/x-www-form-urlencodedContent-Length:11Symbol=MSFT注意空行MethodURLVersionHeadersMessagebody注意空行51HTTP響應(yīng)的結(jié)構(gòu)響應(yīng)的結(jié)構(gòu)例子HTTP/1.1200OKContent-Type:text/xml;charset=utf-8Content-Length:75<?xmlversion="1.0"encoding="utf-8"?><stocksymbol="MSFT"Price="71.50"/>注意空行VersionStatus-CodeDescriptionHeadersMessagebody注意空行52HTTP的GET和POST方法HTTP-GETHTTP-POST例子例子GET/Trading/GetStockPrice.asp?Symbol=MSFTHTTP/1.1Host:localhostPOST/Trading/GetStockPrice.aspHTTP/1.1Host:localhostContent-Type:application/x-www-form-urlencodedContent-Length:11Symbol=MSFT53GET和POST方法的區(qū)別GET方法通常沒有實(shí)體主體GET方法支持最大1024個字節(jié)的查詢字符串,POST方法沒有限制POST方法把查詢字符串放在實(shí)體主體中傳輸,因此比GET方法支持更多的數(shù)據(jù)類型54HTTP請求方法(method):表示客戶端希望服務(wù)器如何處理該信封。有GET、POST、PUT、DELETE、HEAD等方法。路徑(path):請求鏈接里主機(jī)名后面部分,即信封上的地址。請求首部(requestheaders):一組起元數(shù)據(jù)作用的鍵值對,類似信封上貼的標(biāo)簽信息。HTTP除定義了一套標(biāo)準(zhǔn)首部外,程序也可以自己定義首部。實(shí)體主體(entity-body):也稱作文檔或表示,即信封里的文檔。一般情況下,請求實(shí)體主體可為空。55HTTP響應(yīng)響應(yīng)代碼(responsecode):通知客戶端請求成功或失敗,以及如何處理信封里的內(nèi)容。響應(yīng)首部(responseheader):類似請求首部。實(shí)體主體(entity-body):同樣是放在信封里的文檔,但絕大多數(shù)情況它不會為空。56HTTP常見首部Host、User-Agent、Accept、Allow、Accept-Charset、Accept-Encoding、Accept-Language、Range、If-Modified-Since、If-None-Match、AuthorizationContent-Type、Content-Length、Content-Range、Location、Content-MD5、Content-Location、Content-Encoding、Content-Language、Accept-Ranges、Expires、Last-Modified、ETag、WWW-AuthenticateDate、Cache-Control57請求首部舉例Accept:請求希望服務(wù)器能響應(yīng)何種表現(xiàn)格式。告訴Web服務(wù)器自己接受什么介質(zhì)類型:*/*表示任何類型;type/*表示該類型下的所有子類型;type/sub-type。如:image/gif,image/x-xbitmap,image/jpegAccept-Encoding:告訴服務(wù)器可以接收何種壓縮格式(如gzip和deflate)傳輸,以減少帶寬。Range:請求獲得一個資源的部分表示,常與If-Unmodified-Since一起用。If-Modified-Since:通過前一次響應(yīng)Last-Modified的時間值,當(dāng)條件不成立,請求成功返回。58請求首部舉例If-Match:通過前次響應(yīng)ETag值,當(dāng)條件不成立,請求成功返回。If-Range:通過前次響應(yīng)的ETag或Last-Modified值,若請求部分變化,服務(wù)器需返回新的范圍。Authorization:按特定認(rèn)證方案編碼的用戶名和密碼證書,服務(wù)器接收驗(yàn)證通過執(zhí)行請求。

59響應(yīng)首部舉例Accept-Ranges:表明支持部分Get請求,客戶端通過Head請求獲取該值,然后發(fā)送Range首部請求,獲取資源部分表示。Content-Encoding:對應(yīng)Accept-Encoding請求首部。Content-Language:實(shí)體主體采用的自然語言,對應(yīng)Accept-Language請求首部,可能多個值。Content-Length:給出實(shí)體主體大小,客戶端可據(jù)此做讀取準(zhǔn)備,也可通過Head請求來獲知。60響應(yīng)首部舉例Content-Location:把請求資源的規(guī)范URI告知客戶端,但并不要求其使用新URI。Content-MD5:實(shí)體主體MD5,可檢測錯誤損壞。Last-Modified:資源表示的最后修改時間。ETag:比Last-Modified更精確,能反映1秒內(nèi)變化。61Expires:客戶端可在一段時間內(nèi)緩存整個響應(yīng)(不光是實(shí)體主體),但服務(wù)器不保證該時間段內(nèi)一定不更新。Location:與3xx系列響應(yīng)密切相關(guān),可表示新資源創(chuàng)建后的URI,也可表示默認(rèn)URI,還可是補(bǔ)充建議URI。WWW-Authorization:配合401Unauthorized響應(yīng)代碼,可指定認(rèn)證方式WSSE等。響應(yīng)首部舉例62HTTP響應(yīng)代碼狀態(tài)碼(3位數(shù)字)分類1xx:通知——僅在與HTTP服務(wù)器溝通時使用100(“Continue”)2xx:成功——成功收到、理解和接受動作200(“OK”)、201(“Created”)、204(“NoContent”)3xx:重定向——為完成請求,必須進(jìn)一步采取措施301(“MovedPermanently”)、303(“SeeOther”)、304(“NotModified”)、307(“TemporaryRedirect”)63HTTP響應(yīng)代碼狀態(tài)碼(3位數(shù)字)分類4xx:客戶端錯誤——請求包含錯誤的語法或不能完成400(“BadRequest”)、401(“Unauthorized”)、403(“Forbidden”)、404(“NotFound”)、405(“MethodNotAllowed”)、406(“NotAcceptable”)、409(“Conflict”)、410(“Gone”)5xx:服務(wù)器端錯誤——服務(wù)器不能完成明顯合理的請求500(“InternalServerError”)、503(“ServiceUnavailable”)64響應(yīng)代碼含義舉例100Continue:請重發(fā)請求,并附上前一次未帶上的表示信息。200OK:一切正常;繼續(xù)執(zhí)行。202Accepted:服務(wù)已經(jīng)接受請求,并請客戶端對Location響應(yīng)首部里的URI進(jìn)行輪詢。303SeeOther:請跟另一個資源交互,應(yīng)該不會出錯。304NotModified:客戶端已有該數(shù)據(jù),沒必要重復(fù)發(fā)送。65400BadRequest:請求格式有問題,應(yīng)重新格式化提交。401Unauthorized:驗(yàn)證失敗,請重新提供認(rèn)證信息。404NotFound:服務(wù)因偷懶或保密沒有告知請求失敗的真實(shí)原因,但不管什么原因,請求錯誤。409Conflict:服務(wù)器拒絕更新資源狀態(tài)請求??蛻舳诵枰@取資源的當(dāng)前狀態(tài)(要么檢查響應(yīng)實(shí)體主體,要么做一次GET操作),然后再作打算。響應(yīng)代碼含義舉例66412PreconditionFailed:請求未被處理,因?yàn)镋tag、If-Match或類似的“哨兵(guard)”首部的值不滿足條件。客戶端需考慮下一步怎么走。417ExpectationFailed:幸虧核查一下,服務(wù)器不將接受該請求,所以別真正發(fā)送那個請求。500InternalServerError:最偷懶的響應(yīng)。服務(wù)器出錯了,而且什么原因都沒說。響應(yīng)代碼含義舉例67HTTP示例168HTTP示例2[root@workstationroot]#telnet1080Trying10...Connectedto10.Escapecharacteris'^]'.GET/index.htmlHTTP/1.1Host:1069HTTP/1.1200OKContent-Length:181Content-Type:text/htmlLast-Modified:Mon,26Nov200706:53:46GMTAccept-Ranges:bytesETag:"be639717f92fc81:222b"Server:Microsoft-IIS/6.0MicrosoftOfficeWebServer:5.0_PubX-Powered-By:ASP.NETDate:Mon,26Nov200708:21:59GMT

<html><head><title>這是一個測試頭</title></head><body>thisistestpage!<AHREF="10/test.html">連接到另一個網(wǎng)頁</A></body></html>首部空行數(shù)據(jù)70狀態(tài)行7172◆

協(xié)商機(jī)制協(xié)商內(nèi)容:有關(guān)連接、表示法、內(nèi)容以及控制等方面的各種能力協(xié)商方式1.服務(wù)器驅(qū)動

a.瀏覽器發(fā)出請求,指明數(shù)據(jù)項(xiàng)的URL和首選列表

b.服務(wù)器從可用的表示法中選出符合瀏覽器首選要求的一項(xiàng)。若有多項(xiàng)符合,服務(wù)器進(jìn)行“最好的猜測”2.瀏覽器驅(qū)動

第一步:瀏覽器向服務(wù)器發(fā)請求,詢問可用的內(nèi)容;

服務(wù)器返回可能的內(nèi)容列表第二步:瀏覽器選擇其中一個可能項(xiàng),發(fā)送第二個請求獲得該數(shù)據(jù)項(xiàng)②首部的作用73例如:瀏覽器使用HTTPAccept首部指定哪種媒體或表示法是可以接受的。首部列出格式的名稱以及分配給每個名稱的首選值A(chǔ)ccept:text/html,text/plain;q=0.5,text/x-dvi;q=0.8q=num:相當(dāng)于優(yōu)先級,默認(rèn)為‘1’,不接受為‘0’表示:

a.

瀏覽器希望接受text/html媒體類型

b.

若text/html類型不存在,則接受text/x-dvi

c.

若text/x-dvi不存在,則接受text/plain74◆

支持流水線機(jī)制發(fā)送長度信息:Content-Length◆

條件請求機(jī)制瀏覽器發(fā)送的請求首部中可以寫入需求,服務(wù)器把滿足需求的資源返回給瀏覽器,若不符合,則服務(wù)器不響應(yīng)。例如:If-Modified-Since:Mon,01Jan201005:00:01GMT

表示如果數(shù)據(jù)比2010.1.1早,則不進(jìn)行傳輸75◆

頁面緩存機(jī)制核心問題:緩存時間緩存的主體:瀏覽器和代理服務(wù)器都可以緩存控制方式服務(wù)器控制緩存的細(xì)節(jié),包括該頁能否全部緩存,代理服務(wù)器是否可以緩存該頁,哪些人可以共享緩存的頁面,緩存副本的到期時間瀏覽器控制,通過請求首部中設(shè)置最長的“壽命”(自從存儲Web頁副本以來的時間)不能大于0,強(qiáng)制刷新Web頁面。(因?yàn)楦北镜膲勖笥凇?’)5.安全的HTTP

HTTPS:HTTPover

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論