session與cookie的不同點是什么?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)是專業(yè)的宿州網(wǎng)站建設(shè)公司,宿州接單;提供網(wǎng)站制作、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行宿州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!session和cookie是網(wǎng)站瀏覽中較為常見的兩個概念,也是比較難以辨析的兩個概念,但它們在點擊流及基于用戶瀏覽行為的網(wǎng)站分析中卻相當關(guān)鍵。基于網(wǎng)上一些文章和資料的參閱,及作者個人的應用體會,對這兩個概念做一個簡單的闡述和辨析,希望能與大家共同探討下。
session和cookie的較大區(qū)別在于session是保存在服務端的內(nèi)存里面,而cookie保存于瀏覽器或客戶端文件里面;session是基于訪問的進程,記錄了一個訪問的開始到結(jié)束,當瀏覽器或進程關(guān)閉之后,session也就“消失”了,而cookie更多地被用于標識用戶,它可以是長久的,用于用戶跟蹤和識別用戶(Unique Visitor)。
關(guān)于session
session被用于表示一個持續(xù)的連接狀態(tài),在網(wǎng)站訪問中一般指代客戶端瀏覽器的進程從開啟到結(jié)束的過程。session其實就是網(wǎng)站分析的訪問(visits)度量,表示一個訪問的過程。
session的常見實現(xiàn)形式是會話cookie(session cookie),即未設(shè)置過期時間的cookie,這個cookie的默認生命周期為瀏覽器會話期間,只要關(guān)閉瀏覽器窗口,cookie就消失了。實現(xiàn)機制是當用戶發(fā)起一個請求的時候,服務器會檢查該請求中是否包含sessionid,如果未包含,則系統(tǒng)會創(chuàng)造一個名為JSESSIONID的輸出 cookie返回給瀏覽器(只放入內(nèi)存,并不存在硬盤中),并將其以HashTable的形式寫到服務器的內(nèi)存里面;當已經(jīng)包含sessionid是,服務端會檢查找到與該session相匹配的信息,如果存在則直接使用該sessionid,若不存在則重新生成新的 session。這里需要注意的是session始終是有服務端創(chuàng)建的,并非瀏覽器自己生成的。
但是瀏覽器的cookie被禁止后session就需要用get方法的URL重寫的機制或使用POST方法提交隱藏表單的形式來實現(xiàn)。
這里有一個很關(guān)鍵性的注意點,即session失效時間的設(shè)置,這里要分兩方面來看:瀏覽器端和服務端。對于瀏覽器端而言,session與訪問進程直接相關(guān),當瀏覽器被關(guān)閉時,session也隨之消失;而服務器端的session失效時間一般是人為設(shè)置的,目的是能定期地釋放內(nèi)存空間,減小服務器壓力,一般的設(shè)置為當會話處于非活動狀態(tài)達20或30分鐘時清除該 session,所以瀏覽器端和服務端的session并非同時消失的,session的中斷也并不一定意味著用戶一定離開了該網(wǎng)站。目前Google Analytics和Omniture都定義當間隔30分鐘沒有動作時,算作一次訪問結(jié)束,所以上圖中session的最后一步不只是離開,也有可能是靜止、休眠或者發(fā)呆的狀態(tài)。
還有一點需要注意,就是現(xiàn)在的瀏覽器好像趨向于多進程的session共享,即通過多個標簽或頁面打開多個進程訪問同一網(wǎng)站時共享一個 session cookie,只有當瀏覽器被關(guān)閉時才會被清除,也就是你有可能在標簽中關(guān)閉了該網(wǎng)站,但只要瀏覽器未被關(guān)閉并且在服務器端的session未失效前重新開啟該網(wǎng)站,那么就還是使用原session進行瀏覽;而某些瀏覽器在打開多頁面時也可能建立獨立的session,IE8、Chrome默認都是共享 session的,在IE8中可以通過菜單欄中的文件->新建會話來建立獨立session的瀏覽頁面。
關(guān)于cookie
cookie 是一小段文本信息,伴隨著用戶請求和頁面在Web服務器和瀏覽器之間傳遞。用戶每次訪問站點時,Web應用程序都可以讀取cookie包含的信息。
session的實現(xiàn)機制里面已經(jīng)介紹了常見的方法是使用會話cookie(session cookie)的方式,而平常所說的cookie主要指的是另一類cookie——持久cookie(persistent cookies)。持久cookie是指存放于客戶端硬盤中的 cookie信息(設(shè)置了一定的有效期限),當用戶訪問某網(wǎng)站時,瀏覽器就會在本地硬盤上查找與該網(wǎng)站相關(guān)聯(lián)的cookie。如果該cookie 存在,瀏覽器就將它與頁面請求一起通過HTTP報頭信息發(fā)送到您的站點,然后在系統(tǒng)會比對cookie中各屬性和值是否與存放在服務器端的信息一致,并根據(jù)比對結(jié)果確定用戶為“初訪者”或者“老客戶”。
持久cookie一般會保存用戶的用戶ID,該信息在用戶注冊或第一次登錄的時候由服務器生成包含域名及相關(guān)信息的cookie發(fā)送并存放到客戶端的硬盤文件上,并設(shè)置cookie的過期時間,以便于實現(xiàn)用戶的自動登錄和網(wǎng)站內(nèi)容自定義。
Apache自帶的mod_usertrack模塊可以在用戶首次來到當前網(wǎng)站的時候給用戶種下一個的cookie(較長時間過期),這個 cookie是用戶首次來當前網(wǎng)站的IP地址加上一個隨機字符串組成的。同時在自定義WEB日志中在最后增加%{cookie}n字段可以實現(xiàn) cookie在apache日志中的輸出,用于數(shù)據(jù)統(tǒng)計與用戶跟蹤。
關(guān)于session與cookie的不同點是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
網(wǎng)頁題目:session與cookie的不同點是什么-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://muchs.cn/article30/doohso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站收錄、用戶體驗、動態(tài)網(wǎng)站、小程序開發(fā)、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容