目錄
HTTP簡介:
URL的格式:
HTTP協(xié)議的特點:
HTTP/1.0協(xié)議:
HTTP/1.1協(xié)議:
HTTP/2:
HTTP代理服務(wù)器:
HTTP的報文結(jié)構(gòu):
請求報文的特點:
響應(yīng)報文的特點:
Cookie:?
Cookie的工作原理:
萬維網(wǎng)的文檔:
靜態(tài)文檔:
超文本標(biāo)記語言HTML
可擴展標(biāo)記語言XML
可擴展超文本標(biāo)記語言 XHTML
層疊樣式表CSS
動態(tài)文檔:
活動萬維網(wǎng)文檔:
搜索引擎:
垂直搜索引擎:
元搜索引擎:
HTTP簡介:
HTTP 是面向事務(wù)的(transaction-oriented)應(yīng)用層協(xié)議,它是萬維網(wǎng)上能夠可靠地交換文件(包括文音、圖像等各種多媒體文件)的重要基礎(chǔ)。
注:協(xié)議 HTTP 不僅傳送完成超文本跳轉(zhuǎn)所必需的信息,而且也傳送任何可從互聯(lián)網(wǎng)上得到的信息,如文本、超文本、聲音和圖像等。
超媒體與超文本的區(qū)別:文檔內(nèi)容不同。
超文本文檔僅包含文本信息。
超媒體文檔還包含其他信息,如圖形、圖像、聲音、動畫,甚至活動視頻圖像等。
?
每個萬維網(wǎng)網(wǎng)點都有一個服務(wù)器進程,它不斷地監(jiān)聽 TCP 的端口 80,以便發(fā)現(xiàn)是否有瀏覽器(即萬維網(wǎng)客戶。請注意,瀏覽器和萬維網(wǎng)客戶是同義詞) 向它發(fā)出連接建立請求。一旦監(jiān)聽到連接建立請求并建立了TCP連接之后,瀏覽器就向萬維網(wǎng)服務(wù)器發(fā)出瀏覽某個頁面的請求,服務(wù)器接著就返回所請求的頁面作為響應(yīng)。服務(wù)器在完成任務(wù)后,TCP 連接就被釋放了。在瀏覽器和服務(wù)器之間的請求和響應(yīng)的交互,必須按照規(guī)定的格式和遵循一定的規(guī)則。這些格式和規(guī)則就是超文本傳送協(xié)議 HTTP。
URL的格式:
http(s)://<host>:<port>/<path>?<query>#<frag>
(1)協(xié)議名:http 或 https 協(xié)議;
(2)<host>:主機名。一個 URL 中,既可以使用域名也可以使用 IP 表示主機地址;
(3)<port>:端口。主機名和端口之間使用冒號分隔。端口是可選的,如果省略將采用默認(rèn)端口,http 默認(rèn)端口是 80,https 默認(rèn)端口 443;
(4)<path>:資源路徑。資源在網(wǎng)絡(luò)主機上的路徑,路徑也是可選的,缺省訪問默認(rèn)資源;
(5)<query>:查詢參數(shù)。格式為 key=value,多個參數(shù)使用 & 分隔;參數(shù)也是可選的;
(6)<frag>:片段。從 # 開始到最后,一般用于定位到資源內(nèi)的一個片段,比如文檔的一個章節(jié);片段也是可選的。
示例:
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
(1)http 為協(xié)議;
(2)www.aspxfans.com 為主機域名;
(3)8080 為端口號;
(4)news/index.asp 為資源路徑;
(5)boardID=5&ID=24618&page=1 為查詢參數(shù);
(6)name 為資源內(nèi)的一個片段。
HTTP協(xié)議的特點:
1.協(xié)議 HTTP 本身是無連接的。雖然HTTP使用了TCP連接,但通信的雙方在交換HTTP 報文之前不需要先建立HTTP連接。
2.協(xié)議 HTTP是無狀態(tài)的(stateless)。同一個客戶第二次訪問同一個服務(wù)器上的頁面時,服務(wù)器的響應(yīng)與第一次被訪問時的相同(假定現(xiàn)在服務(wù)器還沒有把該頁面更新),因為服務(wù)器并不記得曾經(jīng)訪問過的這個客戶,也不記得為該客戶曾經(jīng)服務(wù)過多少次。HTTP的無狀態(tài)特性簡化了服務(wù)器的設(shè)計,使服務(wù)器更容易支持大量并發(fā)的HTTP 請求
HTTP/1.0協(xié)議:
1.每請求一個文檔就要有兩倍 RTT 的開銷。
2.客戶和服務(wù)器每一次建立新的 TCP 連接都要分配緩存和變量。
HTTP/1.1協(xié)議:
HTTP/1.1使用了持續(xù)連接的方式,就是萬維網(wǎng)服務(wù)器在發(fā)送響應(yīng)后仍然在一段時同內(nèi)保持這條連接,使同一個客戶(瀏覽器)和該服務(wù)器可以繼續(xù)在這條連接上傳送后續(xù)的 HTTP 請求報文和響應(yīng)報文。這種協(xié)議的持續(xù)連接有兩種工作方式:非流水方式和流水線方式。
非流水線:
客戶在收到前一個響應(yīng)后才能發(fā)出下一個請求。因此,在TCP連接建立后,客戶每訪問一次對象都要用去一個往返時間 RTT。這比非持續(xù)連接要用去兩倍RTT的開銷,節(jié)省了建立TCP連接所需的一個RTT 時間。但是因為服務(wù)器在發(fā)送完一個對象后,其TCP連接就處于空閑狀態(tài),浪費了服務(wù)器資源。
流水線:
客戶在收到 HTTP 的響應(yīng)報文之前就能夠接著發(fā)送新的請求報文。于是一個接一個的請求報文到達服務(wù)器后,服務(wù)器就可連續(xù)發(fā)回響應(yīng)報文。使用流水線方式時,客戶訪問所有的對象只需花費一個RTT 時間。流水線工作方式使TCP連中的空閑時間減少,提高了下載文檔效率。
HTTP/2:
(1) HTTP/1.1具有流水線的工作方式。這就是在 TCP連接建立后,客戶可以連續(xù)向服務(wù)器發(fā)出許多個請求,而不必等到收到一個響應(yīng)后再發(fā)送下一個請求。但服務(wù)器發(fā)回響應(yīng)時必須按先后順序排隊,逐個地發(fā)送給客戶。有時遇到某個響應(yīng)遲遲不能發(fā)回,那么排在后面的一些響應(yīng)就必須等待很長的時間。HTTP/2把服務(wù)器發(fā)回的響應(yīng)變成可以并行地發(fā)回(使用同一個TCP連接),這就大大縮短了服務(wù)器的響應(yīng)時間。
(2)使用HTTP/1.1時,當(dāng)客戶收到服務(wù)器發(fā)回的響應(yīng)后,原來建立的TCP連接就釋放了。如果客戶還要繼續(xù)向該服務(wù)器發(fā)送新的請求,就必須重新建立TCP連接。HTTP/2允許客戶復(fù)用TCP連接進行多個請求,這樣就節(jié)省了TCP連續(xù)多次建立和釋放連接所花費的時間。
(3)HTTP/1.1的請求和響應(yīng)報文是面向文本的(text-oriented)。當(dāng)客戶連續(xù)發(fā)送請求并受到響應(yīng)時,在 TCP連接上傳送的 HTTP 報文首部成為不小的開銷。在這些首部中有很多段是重復(fù)的。為此,HTTP/2 把所有的報文都劃分為許多較小的二進制編碼的幀,并采用新的壓縮算法,不發(fā)送重復(fù)的首部字段,大大減小了首部的開銷,提高了傳輸效率。
注:HTTP/2是向后兼容的。當(dāng)使用HTTP/2的客戶向服務(wù)器發(fā)出請求時,如果服務(wù)器仍然使用 HTTP/1.1,那么服務(wù)器仍然可以收到請求報文。在發(fā)回響應(yīng)后,客戶就改用HTTP/1.1與服務(wù)器進行交互。
HTTP代理服務(wù)器:
代理服務(wù)器 (proxy server) 又稱為萬維網(wǎng)高速緩存 (Web cache),它代表瀏覽器發(fā)出 HTTP 請求。使用高速緩存可減少訪問互聯(lián)網(wǎng)服務(wù)器的時延。代理服務(wù)器把最近的一些請求和響應(yīng)暫存在本地磁盤中。當(dāng)新請求到達時,若代理服務(wù)器發(fā)現(xiàn)這個請求與暫時存放的請求相同,就返回暫存的響應(yīng),而不需要按 URL 的地址再次去互聯(lián)網(wǎng)訪問該資源。代理服務(wù)器可在客戶端或服務(wù)器端工作,也可在中間系統(tǒng)上工作。下面我們用例子說明它的作用。
如圖是校園網(wǎng)不使用代理服務(wù)器的情況。這時,校園網(wǎng)中所有的計算機都通過2Mbit/s 專線鏈路(R1-R2)與互聯(lián)網(wǎng)上的源點服務(wù)器建立 TCP連接。因而校網(wǎng)各計算機訪問互聯(lián)網(wǎng)的通信量往往會使這條2Mbit/s 的鏈路過載,使得時延大大增加。
若校園網(wǎng)使用代理服務(wù)器的情況,訪問互聯(lián)網(wǎng)的過程是這樣:
(1)校園網(wǎng)的計算機中的瀏覽器向互聯(lián)網(wǎng)的服務(wù)器請求服務(wù)時,就先和校園網(wǎng)的代理服務(wù)器建立TCP連接,并向代理服務(wù)器發(fā)出HTTP請求報文。
(2)若代理服務(wù)器已經(jīng)存放了所請求的對象,代理服務(wù)器就把這個對象放入 HTTP 響應(yīng)報文中返回給計算機的瀏覽器。
(3)否則,代理服務(wù)器就代表發(fā)出請求的用戶瀏覽器,與互聯(lián)網(wǎng)上的源點服務(wù)器(originserver)建立TCP連接如圖所示,并發(fā)送HTTP 請求報文。
(4)源點服務(wù)器把所請求的對象放在HTTP 響應(yīng)報文中返回給校園網(wǎng)的代理服務(wù)器。
(5)代理服務(wù)器收到這個對象后,先復(fù)制在自己的本地存儲器中(留待以后用)。然后再把這個對象放在 HTTP 響應(yīng)報文中,通過已建立的TCP連接,返回給請求該對象的瀏覽器。
注:代理服務(wù)器有時是作為服務(wù)器(當(dāng)接受瀏覽器的 HTTP 請求時),但有時卻作為客戶(當(dāng)向互聯(lián)網(wǎng)上的源點服務(wù)器發(fā)送HTTP 請求時)。
在使用代理服務(wù)器的情況下,由于有相當(dāng)大一部分通信量局限在校園網(wǎng)的內(nèi)部,因此2Mbit/s 專線鏈路(R1-R2)上的通信量大大減少,因而減小了訪問互聯(lián)網(wǎng)的時延。
?
HTTP的報文結(jié)構(gòu):
HTTP有兩類報文:
(1)請求報文-從客戶向服務(wù)器發(fā)送請求報文
(2)響應(yīng)報文-從服務(wù)器到客戶的回答
由于 HTTP 是面向文本的,因此在報文中的每一個字段都是一些 ASCII 碼,因而個字段的長度都是不確定的。
HTTP 請求報文和響應(yīng)報文都是由三個部分組成的??梢钥闯?,這兩種報文格式的區(qū)別就是開始行不同。
(1)開始行(請求行/狀態(tài)行),用于區(qū)分是請求報文還是響應(yīng)報文。在請求報文中的開始行叫作請求行(Request-Line),而在響應(yīng)報文中的開始行叫作狀態(tài)行(Status-Line)。在開始行的三個字段之間都以空格分隔開,最后的“CR”和“LF”分別代表“回車”和“換行”。
(2)首部行,用來說明瀏覽器、服務(wù)器或報文主體的一些信息。首部可以有好幾行,但也可以不使用。在每一個首部行中都有首部字段名和它的值,每一行在結(jié)束的地方都要有“回車”和“換行”。整個首部行結(jié)束時,還有一空行將首部行和后面的實體主體分開。
(3)實體主體(entity body),在請求報文中一般都不用這個字段,而在響應(yīng)報文中也可能沒有這個字段。
請求報文的特點:
請求報文的第一行“請求行”只有三個內(nèi)容,即方法,請求資源的URL,以及HTTP的版本。
一些常用的方法如下圖所示:
下面是HTTP請求報文的開始行,在GET后面有一個空格,接著是某個完整的URL,其后面又有一個空格,最后是HTTP/1.1
GET http://www.xyz.edu.cn/dir/index.htm HTTP/1.1
?完整的HTTP請求報文:
在請求行使用了相對 URL(即省略了主機的域名)是因為下面的首部行(第2行)給出了主機的域名。第3行是告訴服務(wù)器不使用持續(xù)連接,表示瀏覽器希望服務(wù)器在傳送完所請求的對象后即關(guān)閉 TCP 連接。這個請求報文沒有實體主體。
響應(yīng)報文的特點:
每一個請求報文發(fā)出后,都能收到一個響應(yīng)報文。響應(yīng)報文的第一行就是狀態(tài)行。
狀態(tài)行包括三項內(nèi)容,即HTTP 的版本、狀態(tài)碼,以及解釋狀態(tài)碼的簡單短語。
狀態(tài)碼(Status-Code)都是三位數(shù)字的,分為5大類,原先有33種[RFC 2616],后來又增加了幾種[RFC6585,建議標(biāo)準(zhǔn)]。這5大類的狀態(tài)碼都是以不同的數(shù)字開頭的:
1xx表示通知信息,如請求收到了或正在進行處理。
2xx表示成功,如接受或知道了。
3xx表示重定向,如要完成請求還必須采取進一步的行動。4xx表示客戶的差錯,如請求中有錯誤的語法或不能完成。
5xx表示服務(wù)器的差錯,如服務(wù)器失效無法完成請求。
下面三種狀態(tài)行在響應(yīng)報文中是經(jīng)常見到的:
HTTP/1.1 202 Accepted????????{接受}
HTTP/1.1 400 Bad Request????????{錯誤的請求}
HTTP/1.1 404 Not Found????????{找不到}
若請求的網(wǎng)頁從 http://www.ee.xyz.edu/index.html轉(zhuǎn)移到了一個新的地址,則響應(yīng)報文的狀態(tài)行和一個首部行就是下面的形式:
Cookie:?
Cookie的工作原理:
當(dāng)用戶A 瀏覽某個使用Cookie 的網(wǎng)站時,該網(wǎng)站的服務(wù)器就為A產(chǎn)生一個唯一的識別碼,并以此作為索引在服務(wù)器的后端數(shù)據(jù)庫中產(chǎn)生一個項目。接著在給A的HTTP響應(yīng)報文中添加一個叫作 Set-cookie 的首部行。這里的“首部字段名”就是“Set-cookie”,而后面的“值”就是賦予該用戶的“識別碼”。例如這個首部行是這樣的:
Set-cookie:31d4d96e407aad42
當(dāng)A收到這個響應(yīng)時,其瀏覽器就在它管理的特定 Cookie 文件中添加一行,其中包括這個服務(wù)器的主機名和Set-cookie 后面給出的識別碼。當(dāng)A繼續(xù)瀏覽這個網(wǎng)站時,每發(fā)送一個HTTP請求報文,其瀏覽器就會從其Cookie文件中取出這個網(wǎng)站的識別碼,并放到HTTP請求報文的Cookie首部行中:
Cookie:31d4d96e407aad42
于是,這個網(wǎng)站就能夠跟蹤用戶31dd96e407aad42(用戶A)在該網(wǎng)站的活動。需要注意的是,服務(wù)器并不需要知道這個用戶的真實姓名以及其他的信息。但服務(wù)器能夠知道用戶31d4d96e407aad42 在什么時間訪問了哪些頁面,以及訪問這些頁面的順序。如果A是在網(wǎng)上購物,那么這個服務(wù)器可以為 A 維護一個所購物品的列表,使 A 在結(jié)束這次購物時可以一起付費。
如果A在幾天后再次訪問這個網(wǎng)站,那么他的瀏覽器會在其 HTTP 請求報文中繼續(xù)使用首部行 Cookie:31d4d96e407aad42,而這個網(wǎng)站服務(wù)器根據(jù) A 過去的訪問記錄可以向他推薦商品。如果A 已經(jīng)在該網(wǎng)站登記過和使用過信用卡付費,那么這個網(wǎng)站就已經(jīng)保存了A的姓名、電子郵件地址、信用卡號碼等信息。這樣,當(dāng) A 繼續(xù)在該網(wǎng)站購物時,只要還使用同一個計算機上網(wǎng),由于瀏覽器產(chǎn)生的 HTTP 請求報文中都攜帶了同樣的 Cookie 首部行,服務(wù)器就可利用 Cookie 來驗證出這是用戶 A,因此以后A 在這個網(wǎng)站購物時就不"重新在鍵盤上輸入姓名、信用卡號碼等信息。這對顧客顯然是很方便的。
盡管Cookie 能夠簡化用戶網(wǎng)上購物的過程,但 Cookie 的使用一直引起很多爭議。有人以為Cookie 會把計算機病毒帶到用戶的計算機中。其實這是對 Cookie 的誤解。Cookie 只是一個小小的文本文件,不是計算機的可執(zhí)行程序,因此不可能傳播計算機病毒,也不可能用夾獲取用戶計算機硬盤中的信息。對于 Cookie 的另一個爭議,是關(guān)于用戶隱私的保護問題。例如,網(wǎng)站服務(wù)器知道了 A 的一些信息,就有可能把這些信息出賣給第三方。Cookie 還可用來收集用戶在萬維網(wǎng)網(wǎng)站上的行為。這些都屬于用戶個人的隱私。有些網(wǎng)站為了使顧客放心,就公開聲明他們會保護顧客的隱私,絕對不會把顧客的識別碼或個人信息出售或轉(zhuǎn)移給其他廠商。
例如在Microsoft Edge瀏覽器中可以設(shè)置cookie,并且查看cookie。
萬維網(wǎng)的文檔:
靜態(tài)文檔:
靜態(tài)文檔在文檔創(chuàng)作后,就存放在萬維網(wǎng)的服務(wù)器中,在被用戶瀏覽的過程中,內(nèi)容不會被改變,用戶每次讀取的內(nèi)容都是相同的。
超文本標(biāo)記語言HTML
HTML語言是一種制作萬維網(wǎng)頁面的標(biāo)準(zhǔn)語言,他消除了不同計算機之間信息交流的障礙,但是HTML 不是應(yīng)用層的協(xié)議,它只是萬維網(wǎng)瀏覽器使用的一種語言。
?HTML 定義了許多用于排版的命令(即標(biāo)簽)。它把各種標(biāo)簽嵌入到萬維網(wǎng)的頁面中,構(gòu)成了所謂的 HTML 文檔,例如:
?HTML 文檔是一種可以用任何文本編輯器創(chuàng)建的 ASCII 碼文件。
?HTML 文檔的后綴:.html 或 .htm。
可擴展標(biāo)記語言XML
它和 HTML 很相似,但XML的設(shè)計宗旨是傳輸數(shù)據(jù),而不是顯示數(shù)據(jù)(HTML 是為了在瀏覽器上顯示數(shù)據(jù))。
XML用于標(biāo)記電子文件,使其具有結(jié)構(gòu)性的標(biāo)記語言,可用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型。是一種允許用戶對自己的標(biāo)記語言進行定義的源語言。XML 是一種簡單、與平臺無關(guān)并被一泛采用的標(biāo)準(zhǔn)。XML相對于HTML 的優(yōu)點是它將用戶界面與結(jié)構(gòu)化數(shù)據(jù)分隔開來。這種數(shù)據(jù)與顯示的分離使得集成來自不同源的數(shù)據(jù)成為可能??蛻粜畔?、訂單、研究結(jié)果、賬單付款、病歷、目錄數(shù)據(jù)及其他信息都可以轉(zhuǎn)換為 XML。XML 不是要替換 HTML、而是對HTML的補充。XML 標(biāo)記由文檔的作者定義,并且是無限制的。HTML 標(biāo)記則是預(yù)定義的:HTML作者只能使用當(dāng)前 HTML 標(biāo)準(zhǔn)所支持的標(biāo)記。
可擴展超文本標(biāo)記語言 XHTML
XHTML是更為嚴(yán)格的HTML,是作為一種XML應(yīng)用被重新定義的HTML,但是在實際開發(fā)中,由于xHTML語法比較復(fù)雜,需要花費更多時間和精力去書寫和調(diào)試,因此在一些小型項目或者對標(biāo)準(zhǔn)要求不高的項目中,還是會選擇HTML。
層疊樣式表CSS
CSS是一種樣式表語言,用于為 HTML 文檔定義布局。CSS和HTML的區(qū)別在于,HTML用于結(jié)構(gòu)化內(nèi)容,而CSS用于格式化結(jié)構(gòu)化的內(nèi)容。例如:精確規(guī)定在瀏覽器上顯示的字體、顏色、邊距、高度、寬度、背景圖像等。
動態(tài)文檔:
動態(tài)文檔(dynamicdocument)是指文檔的內(nèi)容是在瀏覽器訪問萬維網(wǎng)服務(wù)器時才由應(yīng)用程序動態(tài)創(chuàng)建的。當(dāng)瀏覽器請求到達時,萬維網(wǎng)服務(wù)器要運行另一個應(yīng)用程序,并把控制轉(zhuǎn)移到此應(yīng)用程序。接著,該應(yīng)用程序?qū)g覽器發(fā)來的數(shù)據(jù)進行處理,并輸出HTML格式的文檔,萬維網(wǎng)服務(wù)器把應(yīng)用程序的輸出作為對瀏覽器的響應(yīng)。由于瀏覽器每次請求的響應(yīng)都是臨時生成的,因此用戶通過動態(tài)文檔所看到的內(nèi)容是不斷變化的,動態(tài)文檔的主要優(yōu)具有報告當(dāng)前最新信息的能力。
例如,動態(tài)文檔可用來報告股市行情、天氣預(yù)報或民航情況等內(nèi)容。但動態(tài)文檔的創(chuàng)建難度比靜態(tài)文檔的高,因為動態(tài)文檔的開發(fā)不是直接編寫檔本身,而是編寫用于生成文檔的應(yīng)用程序,這就要求動態(tài)文檔的開發(fā)人員必須會編程所編寫的程序還要通過大范圍的測試,以保證輸入的有效性。
動態(tài)文檔與靜態(tài)文檔的區(qū)別:
動態(tài)文檔和靜態(tài)文檔之間的主要差別體現(xiàn)在服務(wù)器一端。這主要是文檔內(nèi)容的生成法不同。而從瀏覽器的角度看,這兩種文檔并沒有區(qū)別。動態(tài)文檔和靜態(tài)文檔的內(nèi)容都遵循 HTML 所規(guī)定的格式,瀏覽器僅根據(jù)在屏幕上看到的內(nèi)容無法判定服務(wù)器送來的是哪一種文檔,只有文檔的開發(fā)者才知道。
要實現(xiàn)動態(tài)文檔就必須在以下兩個方面對萬維網(wǎng)服務(wù)器的功能進行擴充:
(1)應(yīng)增加另一個應(yīng)用程序,用來處理瀏覽器發(fā)來的數(shù)據(jù),并創(chuàng)建動態(tài)文檔。
(2)應(yīng)增加一個機制,用來使萬維網(wǎng)服務(wù)器將瀏覽器發(fā)來的數(shù)據(jù)傳送給這個應(yīng)用程序,然后萬維網(wǎng)服務(wù)器能夠解釋這個應(yīng)用程序的輸出,并向瀏覽器返回HTML文檔。
下圖是擴充了功能的萬維網(wǎng)服務(wù)器。這里增加了一個機制,叫作通用網(wǎng)關(guān)接口CGI(Common Gateway Interface)。CGI是一種標(biāo)準(zhǔn),它定義了動態(tài)文檔應(yīng)如何創(chuàng)建,輸入數(shù)據(jù)應(yīng)如何提供給應(yīng)用程序,以及輸出結(jié)果應(yīng)如何使用。
想更加詳細的了解,可看:
活動萬維網(wǎng)文檔:
動態(tài)文檔一旦建立,它所包含的信息內(nèi)容也就固定下來而無法及時刷新屏幕。另外,像動畫之類的顯示效果,動態(tài)文檔也無法提供。
有兩種技術(shù)可用于瀏覽器屏幕顯示的連續(xù)更新:
一種技術(shù)稱為服務(wù)器推送(server push),這種技術(shù)是將所有的工作都交給服務(wù)器。服務(wù)器不斷地運行與動態(tài)文檔相關(guān)聯(lián)的應(yīng)用程序。定期更新信息,并發(fā)送更新過的文檔。
盡管從用戶的角度看,這樣做可達到連續(xù)更新的目的,但這也有很大的缺點。首先,為了滿足很多客戶的請求,服務(wù)器就要運行很多服務(wù)器推送程序。這將造成過多的服務(wù)器開銷。其次,服務(wù)器推送技術(shù)要求服務(wù)器為每一個瀏覽器客戶維持一個不釋放的 TCP連接隨著TCP連接的數(shù)目增加,每一個連接所能分配到的網(wǎng)絡(luò)帶寬就下降,這就導(dǎo)致網(wǎng)絡(luò)傳輸時延的增大。
另一種提供屏幕連續(xù)更新的技術(shù)是活動文檔(active document)。這種技術(shù)是把所有的工作都轉(zhuǎn)移給瀏覽器端。每當(dāng)瀏覽器請求一個活動文檔時,服務(wù)器就返回一段活動文檔程序副本,使該程序副本在瀏覽器端運行。這時,活動文檔程序可與用戶直接交互,并可連續(xù)地改變屏幕的顯示。只要用戶運行活動文檔程序,活動文檔的內(nèi)容就可以連續(xù)地改變。由于活動文檔技術(shù)不需要服務(wù)器的連續(xù)更新傳送,對網(wǎng)絡(luò)帶寬的要求也不會太高。
從傳送的角度看,瀏覽器和服務(wù)器都把活動文檔看成是靜態(tài)文檔。在服務(wù)器上的活動文檔的內(nèi)容是不變的,這點和動態(tài)文檔是不同的。瀏覽器可在本地緩存一份活動文檔的副本?;顒游臋n還可處理成壓縮形式,以便于存儲和傳送。另一點要注意的是,活動文檔本身并不包括其運行所需的全部軟件,大部分的支持軟件是事先存放在瀏覽器中的。
搜索引擎:
垂直搜索引擎:
針對某一特定領(lǐng)域、特定人群或某一特定需求提供搜索服務(wù)。也是提供關(guān)鍵字來進行搜索,但被放到一個行業(yè)知識的上下文中,返回的結(jié)果更傾向于信息、消息、條目等,目前熱門的垂直搜索行業(yè)有: 購物、旅游、汽車、求職、房產(chǎn)等。文章來源:http://www.zghlxwxcb.cn/news/detail-828199.html
元搜索引擎:
把用戶提交的檢索請求發(fā)送到多個獨立的搜索引擎上去搜索,并把檢索結(jié)果集中統(tǒng)一處理,以統(tǒng)一的格式提供給用戶,因此是搜索引擎之上的搜索引擎。主要精力放在提高搜索速度、智能化處理搜索結(jié)果、個性化搜索功能的設(shè)置和用戶檢索界面的友好性上。其查全率和查準(zhǔn)率都比較高。文章來源地址http://www.zghlxwxcb.cn/news/detail-828199.html
到了這里,關(guān)于超文本傳送協(xié)議HTTP的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!