客戶端與服務器端通信_第1頁
客戶端與服務器端通信_第2頁
客戶端與服務器端通信_第3頁
客戶端與服務器端通信_第4頁
客戶端與服務器端通信_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、客戶端及服務器端通信 cookieCookie是網景公司開發,便于服務器端程序通過它可以存儲和檢索客戶端 機器上信息,一個Cookie就是一些簡單變量,用于存儲客戶端機器上web 頁面所需要信息。Cookie以Cookie文件形式將一些簡單記錄存儲在用戶機器上,這些 Cookie文件可以由CGI或客戶端Javascript創建,然后將被保存直到過 期,它是由服務器端程序發送,用于相應瀏覽器URL請求信息組成。 當瀏覽器向web服務器發出一個URL請求時,首先檢查請求URL是否可以 和本地Cookie匹配,那么瀏覽港將這個Cookie作為HTTP請求URL 一部分 發送給web服務器。如果用戶是

2、第一次訪問網站,CGI程序(或其他服務 器端程序)將通過HTTP響應創建并向瀏覽器發送Cookie,當服務器端程 序向瀏覽器發送Cookie以響應URL請求并時,客戶端機器上Cookie將被 更新,這樣,當服務器端程序被調用時候就實現了客戶端機器狀態信息更 新。使用Cookie,網站可以識別該客戶端是第一次訪問,還是多次訪問,還可 以得到客戶端訪問信息。Cookie還可以為瀏覽器提供方便服務,例如在安全性要求不高場合避免重 復輸入賬號和密碼,針對性地投放廣告等。但是由于Cookie可以記錄客戶端信息,一些惡意代碼可以收集客戶端信 息,例如芯片類型等,還可以隨意修改客戶段系統設置,發送廣告或者垃

3、 圾郵件等。javascript主要在兩個方面使用Cookie第一個是記錄訪客信息,例如上次登陸用戶名和密碼,光臨網站次數等。 第二個是在頁面間傳遞變量。如果需要在頁面間傳遞信息,方法之一就是 將變量用Cookie形式保存下來,需要獲取變量頁面通過讀取Cookie來獲 得變量值。(1) name : Cookie 唯一標志。(2) value:保存在Cookie中值,在存入之前要進行編碼。(3) empires:是時間類型,單位是毫秒。記錄Cookie在客戶端保留時 間。當系統時間大于Empires屬性時,Cookie將被刪除。(4) path:用來確定Cookie對象傳送位置。(5) dom

4、ain:指定關聯web服務器或域,值是域名。(6) secure: Cookie安全性標志,取值范圍為true/false。如果這個屬 性被設置為true, Cookie會在一個安全方式“SSL連接”下發送到客戶 端。通過JavaScript可以設置Cookie、讀取Cookie及刪除Cookie,但由于接 口函數比較少,在JavaScript中操作Cookie比較麻煩。利用document. Cookie屬性可以獲得計算機中存儲Cookie名字和值。 document. Cookie屬性顯小方法是: =Cookie 值;對document. Cookie賦值可以創建一個Cookie,并且不會

5、刪除原有 Cookieo function writeCookie(name, value, day) ( expire =;expire = new Date(new Date(). getTime() + (day * 24*60*60*1000); expire = ;expires= + expire. toGMTString();document, cookie = name + “= + escape(value) + expire; “escape。將字符串按照URL編碼方式進行編碼 ) function readCookie(name) ( if (document, cook

6、ie. length0) ( begin=document. cookie. indexOf(name+=); if(begin!=-l) ( begin二begin+name. length+1;end=document, cookie. indexOf(;, begin); if (end=-l) end=document, cookie, length;return unescape(document, cookie, substring(begin, end) ) return null;) return null;)function delcookie(name)var exp=ne

7、w Date ();exp. setTime (exp. getTime ()-1);if (readcookie(name)!=null) (document, cookie=name+=”+;expires=+exp. toGMTString();)xmlhttp多數瀏覽支持在JavaScript中直接建立HTTP請求,實現向服務器發送數據 及接收從服務器返回數據等操作,達到客戶端和服務器商通信目,實現這些 功能核心技術就是微軟所建立XMLHttp對象。在JavaScript腳本中,通過XMLHttp對象可以方便建立客戶及服務器端通 信,完成所需要數據交互,最主要交互方式為GET和post

8、方法。XMLHttp對象實質是一組API函數集,可以被腳本語言或編程語言調用, 通過HTTP請求在瀏覽器和服務器之間收發XML或其他數據。要使用XMLHttp對象,首先要創建XMLHttp對象實例。不同瀏覽器創建和 使用方法稍有不同。在IE中,微軟通過ActiveX控件方式獲得XMLHttp對象實例:var XMLHttpRquest=new ActiveXObject( MSXML2. XMLHTTP )var XMLHttpRquest=new ActiveXObject ( MSXML. XMLHTTP )使用哪種方法創建,取決于客戶端所安裝MSXML版本,參數可以是 “MSXML2.

9、XMLHTTP. 5. 0、MSXML2. XMLHTTP. 4. 0、MSXML2. XMLHTTP. 3. 0、MSXML2. XMLHTTP 和 Microsoft. XMLHttp為方便開發者找到客戶端最新MSXML版本,可以利用函數創建XMLHttp對 象實例 function createXMLHTTP () var arrVersions=“MSXML2. XMLHTTP. 5. 0,“MSXML2. XMLHTTP. 4. 0” MSXML2. XMLHTTP. 3. 0, MSXML2. XMLHTTP,” Microsoft. XMLHttp”;for (var i=0;i

10、0) sParams+= & ; returnsParams+encodeURIComponent(sName)=enencodeURIComponent(sValu e) ; post請求HTTP頭部比GET請求HTTP頭部復雜XMLHttpRequest. setRequestHeader( Content-Type” , “ application/x- );var XMLHttpRequest=createXMLHTTP();var sParams= ” ;sParams =addURLParamPost (sParams, “ name , yournamev ;sParams =a

11、ddURLParamGet(sParams, “ sex , “ maleM ;XMLHttpRequest. open( post , search, aspn , false);XMLHttpRequest. setRequestHeader( Content-Type” , “ application/x- );XMLHttpRequest. send (sParams);Ajax對web應用來說,有很多不適合其發揮特長應用領域,如對實時要求比較 高電話系統、銀行系統等。此外由于網速、硬件配置等原因,在一些web應用本應發揮特長領域也表 現得不盡如意,如瀏覽網頁在頁面跳轉時等待較長時間,

12、局部頁面數據提 交造成整個頁面刷新等。傳統WEB應用模型采用同步交互模式,如圖所示:browser clientuser irtterfaccI 1HTTP requesthttf (s) trans)ortHTML4css data uIweb server4processing, legacy systems.server-side systemsAjax WEB應用模式,如圖所示:browser clientidct interfaceJavaScript call4 HTML-iCSS dataAjax engitncI 八HTTP requesthttp(5)trans ort| X

13、ML data iwrt and/or XML servwdatastores, backend processing, legacy systemsserver-side systemsclient收 f aetjtr血Mtr必timesystem prrceisirgU6f Activitysystem processingserverAjax米用異步交互模式,可以僅向服務器發送并取回必需數據,并在客戶端米用JavaScript處理來自服務器響應。使用Ajax Web應用模式優勢: 無刷新更新頁面,減少用戶等待時間減輕服務器負擔帶來更好用戶體驗Ajax可以把以前一些服務港負擔工作轉給客戶端

14、,利用客戶端能力來處理, 減輕服務器和帶寬負擔Ajax可以調用外部數據,增加了 Ajax靈活性基于標準化并被廣泛支持技術促進頁面呈現和數據分離Ajax出現揭開了無刷新更新頁面序幕,并有代替傳統web開發中采用表單 遞交方式來更新web頁面趨勢。Ajax最早認為是異步JavaScript和XML縮寫,更深理解是Ajax為一種結 合了 Java、XML及JavaScript等編程技術創建交互式網頁應用web開發 技術。Ajax是使用客戶端腳本及web服務器異步交換數據web應用開發方法。使 用Ajax,可以在不中斷交互流程情況下,重新加載web頁面,從而實現動 態更新;使用Ajax,可以創建接近本

15、地桌面應用、直接、易用、更豐富、 更動態web用戶接口界面。Ajax不是一種新技術,而幾種技術組合,這些技術主要包含:XHTML和CSS:使用XHTML和CSS標準化呈現;D0M:使用D0M實現動態顯示和交互;XML和XSLT:使用XML和XSLT進行數據交換和處理;XMLHttpRequest:使用XMLHttpRequest進行異步數據讀取client browser UIuser acxiYty OB Ajax enginedient-slcie pcckcssoqR 32 serverdot.尋serve r-sewcdpwoer-sweserver-sideJavaScript:使用

16、JavaScript綁定和處理所有數據JavaScript:編寫Ajax引擎腳本語言,同時負責綁定和處理所有數據,起到 紐帶作用.XMLHttpRequest:主要通信代理,實現客戶端和服務器端異步數 據交互.D0M:對已載入頁面進行動態更新,實現動態顯示和交互.XML:數據交互格式,隨著XML滸其將成為Ajax 一部分隨著Ajax技術流行,越來越多商業網站使用Ajax技術來改進其用戶體驗, 并獲得了很好效果,受到廣大用戶歡迎。成功案例:Google主頁、Google Maps等Ajax特點在于異步通信、按需讀取數據、動態地更新Web頁面,適用于頻 繁交互、頻繁讀取數據、需要動態更新Web應用

17、。主要應用場景有:數據驗證按需讀取數據自動實時更新頁面使用GET()方法異步取得本地文件dl2. txt,則要用onreadystatechange 來附加判斷readyState屬性是否達到4 (完成狀態)。var XMLHttpRequest=createXMLHTTP();XMLHttpRequest, open(get”, dl2. txt,true);XMLHttpRequest. onreadstatechange=function() if (XMLHttpRequest. readyState=4) alert (服務器返回數據為:+XMLHttpRequest. responseText) ;)XMLHttpRequest. send (null);if(XMLHttpRequest. status=200)alert (服務器返回數據為:+XMLHttpRequest. responseText);elsealert (錯誤代碼:+XMLHttpRequest. status+錯誤描述:+XMLHttpRequest. statusText);高級形式$ (ttresText). load (,zget2. asp,username : $ (*usernanie). val (),content : $(#content)val() , functio

溫馨提示

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

評論

0/150

提交評論