點擊查看:全國計算機(jī)二級考試Web程序復(fù)習(xí)重點匯總
Web應(yīng)用程序狀態(tài)管理方式:
隱藏字段、Cookie、HttpSession、URL重寫
為什么需要狀態(tài)管理?
根本原因是由于Http協(xié)議是無狀態(tài)的造成的
什么是Cookie?原理?如何使用?
Cookie原理:
ession是一種保存上下文信息的機(jī)制,它是針對每一個用戶的,變量的值保存在服務(wù)器端,通過SessionID來區(qū)分不同的客戶,session是以Cookie或URL重寫為基礎(chǔ)。默認(rèn)使用Cookie來實現(xiàn),系統(tǒng)會創(chuàng)造一個名為JSESSIONID的輸出Cookie,或稱為SessionCookie,以區(qū)別PersistentCookies(通常所說的Cookie).SessionCookie是存儲在瀏覽器中,并不是寫在硬盤上的,但是把瀏覽器的Cookie禁止后,使用response對象的encodeURL或encodeRedirectURL方法編碼URL,WEB服務(wù)器會采URL重寫的方式傳遞Sessionid,用戶就可以在地址欄看到j(luò)sessionid=A09JHGHKHU68624309UTY84932之類的字符串。
通常SessionCookie是不能跨窗口使用,當(dāng)用戶新開了一個瀏覽器進(jìn)入相同的頁面時,系統(tǒng)會賦予用戶一個新的SessionID,這樣信息共享的目的就達(dá)不到,此時可以把SessionID保存在PersistentCookie中,然后再新的窗口中讀出來,就可以得到上一個窗口的SessionID了,這樣通過SessionCookie和PersistentCookie的結(jié)合,實現(xiàn)了跨窗口的會話跟蹤。
Cookie和會話狀態(tài)
什么是Cookie?
Cookie是一小段文本信息,伴隨著用戶請求和頁面在Web服務(wù)器和瀏覽器之間傳遞。用戶每次訪問站點時,Web應(yīng)用程序都可以讀取Cookie包含的信息。Cookie的基本工作原理如果用戶再次訪問站點上的頁面,當(dāng)該用戶輸入URLwww.*****.com時,瀏覽器就會在本地硬盤上查找與該URL相關(guān)聯(lián)的Cookie。如果該Cookie存在,瀏覽器就將它與頁面請求一起發(fā)送到您的站點。
Cookie有哪些用途?
最根本的用途是:Cookie能夠幫助Web站點保存有關(guān)訪問者的信息。更概括地說,Cookie是一種保持Web應(yīng)用程序連續(xù)性(即執(zhí)行“狀態(tài)管理”)的方法.使Web站點記住您.
什么是會話Session?
當(dāng)用戶訪問您的站點時,服務(wù)器會為該用戶創(chuàng)建唯一的會話,會話將一直延續(xù)到用戶訪問結(jié)束。
session的工作原理
就session的實現(xiàn)而言,好像是這樣的:
(1)當(dāng)有Session啟動時,服務(wù)器生成一個唯一值,稱為SessionID(好像是通過取進(jìn)程ID的方式取得的)。
(2)然后,服務(wù)器開辟一塊內(nèi)存,對應(yīng)于該SessionID。
(3)服務(wù)器再將該SessionID寫入瀏覽器的cookie(一些在網(wǎng)頁的源代碼中有所體現(xiàn))。
(4)服務(wù)器內(nèi)有一進(jìn)程,監(jiān)視所有Session的活動狀況,如果有Session超時或是主動關(guān)閉,服務(wù)器就釋放該內(nèi)存塊。
(5)當(dāng)瀏覽器連入IIS(服務(wù)器)時并請求的ASP(腳本語言)內(nèi)用到Session時,IIS(服務(wù)器)就讀瀏覽器Cookie中的SessionID。
(6)然后,服務(wù)檢查該SessionID所對應(yīng)的內(nèi)存是否有效。
(7)如果有效,就讀出內(nèi)存中的值。
(8)如果無效,就建立新的Session。
注意:
(1)在大瀏覽量的網(wǎng)站,Session并不保險,我們過去的網(wǎng)站就經(jīng)常碰到存在Session中得值不正確(可能出現(xiàn)重復(fù)的SessionID)。
(2)SessionID不能從硬盤上的Cookie文件獲得,如果想在客戶端獲知自己的SessionID,只能通過Javascrīpt來讀取。
會話失效的三種情況(服務(wù)器重啟/關(guān)閉、會話超時(-1永不失效)、invalidate())
設(shè)置鍵值對setAttribute(key,value);Objectobj=getAttribute(key);
為什么需要URL重寫?Stringstr=HttpServletResponse.encodeURL(Stringurl);url;jsessionid=sessionid
對于搜索引擎而言,在主觀上對靜態(tài)頁面和動態(tài)頁面并沒有特殊的好惡,只是很多動態(tài)頁面的參數(shù)機(jī)制不利于搜索引擎收錄,而靜態(tài)頁面更容易收錄而已。此外,頁面靜態(tài)化在一定程度上也提高了頁面訪問速度和系統(tǒng)性能及穩(wěn)定性—-這使得在搜索引擎優(yōu)化上面,為使得效果更加明顯,問題簡單快速解決,大家對站點的靜態(tài)化非常的看重。
URL應(yīng)當(dāng)是用戶友好的;
URL應(yīng)當(dāng)是可讀的;
URL應(yīng)當(dāng)是可預(yù)測的;
URL應(yīng)當(dāng)是統(tǒng)一的;
URL面向搜索引擎是友好的;
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2018計算機(jī)等級考試報名時間|各地報名入口|報名條件
2018年全國計算機(jī)等級考試時間|教材目錄(2018年版)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |