<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        帶你了解session和cookie作用原理區別和用法

        來源:懂視網 責編:小采 時間:2020-11-27 22:32:46
        文檔

        帶你了解session和cookie作用原理區別和用法

        帶你了解session和cookie作用原理區別和用法:Cookie概念 在瀏覽某些 網站時,這些網站會把一些數據存在客戶端,用于使用網站等跟蹤用戶,實現用戶自定義功能. 是否設置過期時間: 如果不設置 過期時間,則表示這個 Cookie生命周期為 瀏覽器會話期間 , 只要關閉瀏覽器,cookie就消失了. 這個生命期為瀏覽
        推薦度:
        導讀帶你了解session和cookie作用原理區別和用法:Cookie概念 在瀏覽某些 網站時,這些網站會把一些數據存在客戶端,用于使用網站等跟蹤用戶,實現用戶自定義功能. 是否設置過期時間: 如果不設置 過期時間,則表示這個 Cookie生命周期為 瀏覽器會話期間 , 只要關閉瀏覽器,cookie就消失了. 這個生命期為瀏覽

        Cookie概念

              在瀏覽某些 網站時,這些網站會把一些數據存在客戶端,用于使用網站等跟蹤用戶,實現用戶自定義功能.

        是否設置過期時間:

              如果不設置 過期時間,則表示這個 Cookie生命周期為 瀏覽器會話期間 , 只要關閉瀏覽器,cookie就消失了.
              這個生命期為瀏覽會話期的cookie,就是會話Cookie;

        存儲:   
              一般保存在內存,不在硬盤;
              如果設置了過期時間, 瀏覽器會把cookie保存在硬盤上,關閉再打開瀏覽器, 這些cookie依然有效直到超過的設置過期時間;
              存儲在硬盤上的Cookie可以在不同的瀏覽器進程間共享,比如兩個IE窗口。
              而對于保存 在內存的Cookie,不同的瀏覽器有不同的處理方式。

        原理:

             如果瀏覽器使用的是 cookie,那么所有的數據都保存在瀏覽器端,
             比如你登錄以后,服務器設置了 cookie用戶名(username),那么,當你再次請求服務器的時候,瀏覽器會將username一塊發送給服務器,這些變量有一定的特殊標記。
             服務器會解釋為 cookie變量。
             所以只要不關閉瀏覽器,那么 cookie變量便一直是有效的,所以能夠保證長時間不掉線。
             如果你能夠截獲某個用戶的 cookie變量,然后偽造一個數據包發送過去,那么服務器還是認為你是合法的。所以使用 cookie被攻擊的可能性比較大。
             如果設置了的有效時間,那么它會將 cookie保存在客戶端的硬盤上,下次再訪問該網站的時候,瀏覽器先檢查有沒有 cookie,如果有的話,就讀取該 cookie,然后發送給服務器。
             如果你在機器上面保存了某個論壇 cookie,有效期是一年,如果有人入侵你的機器,將你的 cookie拷走,然后放在他的瀏覽器的目錄下面,那么他登錄該網站的時候就是用你的的身份登錄的。
             所以 cookie是可以偽造的。
             當然,偽造的時候需要主意,直接copy cookie文件到 cookie目錄,瀏覽器是不認的,
             他有一個index.dat文件,存儲了 cookie文件的建立時間,以及是否有修改,所以你必須先要有該網站的 cookie文件,并且要從保證時間上騙過瀏覽器,
             曾經在學校的vbb論壇上面做過試驗,copy別人的 cookie登錄,冒用了別人的名義發帖子,完全沒有問題。
         
        cookie 用法:

         setcookie("user","zy",time()+3600); 設置user為zy,一小時之后失效;
         $_COOKIE['user']; 取回user值(名字)
         setcookie("user","",time()-3600); 刪除cookie,第二個參數為空,第三個時間設置為小于系統的當前時間即可.

          或在瀏覽器設置

              在使用Cookie時,Cookie自動生成一個文本文件存儲在IE瀏覽器的Cookie臨時文件夾中,應用瀏覽器刪除Cookie文件的具體操作步驟為
              >選擇IE瀏覽器中的工具/internet選項命令,打開Internet選項對話框,
              >在常規選項卡中單擊刪除Cookie按鈕,在彈出的對話框中單擊確定按鈕,即可成功刪除全部Cookie文件.
         
        Session的概念

              Session 是存放在服務器端的類似于HashTable結構(每一種web開發技術的實現可能不一樣,下文直接稱之為HashTable)來存放用戶數據;

        作用:

              實現網頁之間數據傳遞,是一個存儲在服務器端的對象集合。

        原理:

              當用戶請求一個Asp.net頁面時,系統將自動創建一個Session;退出應用程序或關閉服務器時,該Session撤銷。系統在創建Session時將為其分配一個長長的字符串標識,以實現對Session進行管理與跟蹤。
              session機制是一種服務器端的機制,服務器使用一種類似于散列表的結構(也可能就是使用散列表)來保存信息。
              
        保存:

              存儲在Server段的內存進程中的,而這個進程相當不穩定,經常會重啟,這樣重啟的話,就會造成Session失效,用戶就必須要重新登錄,用戶體驗相當差,比如用戶在填寫資料,快要結束的時候Session失效,直接跳到登錄頁面;

        是否已經創建過session:

              當程序需要為某個客戶端的請求創建一個session時,服務器首先檢查這個客戶端的請求里是否已包含了一個session標識(稱為session id),

              如果已包含則說明以前已經為此客戶端創建過session,服務器就按照session id把這個session檢索出來....使用(檢索不到,會新建一個),
         
              如果客戶端請求不包含session id,則為此客戶端創建一個session并且生成一個與此session相關聯的session id,

              session id的值應該是一個既不會重復,又不容易被找到規律以仿造的字符串,這個session id將被在本次響應中返回給客戶端保存。

             (總結: 創建一個session時,服務器看這個客戶端 是否包含session標識, 是的話按照session id把session檢索出來,否則就得 新建一個.)

         Session的客戶端實現形式(即Session ID的保存方法):

             一般瀏覽器提供了兩種方式來保存,還有一種是程序員使用html隱藏域的方式自定義實現:

             [1] 使用Cookie來保存,這是最常見的方法,本文“記住我的登錄狀態”功能的實現正式基于這種方式的。

             服務器通過設置Cookie的方式將Session ID發送到瀏覽器。
         
             如果我們不設置這個過期時間,那么這個Cookie將不存放在硬盤上,當瀏覽器關閉的時候,Cookie就消失了,這個Session ID就丟失了。

             如果我們設置這個時間為若干天之后,那么這個Cookie會保存在客戶端硬盤中,即使瀏覽器關閉,這個值仍然存在,下次訪問相應網站時,同 樣會發送到服務器上。


             [2] 使用URL附加信息的方式,也就是像我們經常看到JSP網站會有aaa.jsp?JSESSIONID=*一樣的。這種方式和第一種方式里面不設置Cookie過期時間是一樣的。(URL重寫,就是把session id直接附加在URL路徑的后面。)


             [3] 第三種方式是在頁面表單里面增加隱藏域,這種方式實際上和第二種方式一樣,只不過前者通過GET方式發送數據,后者使用POST方式發送數據。但是明顯后者比較麻煩。
             表單隱藏字段就是服務器會自動修改表單,添加一個隱藏字段,以便在表單提交時能夠把session id傳遞回服務器。比如:
              <form name="testform" action="/xxx">
                 <input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764">
                 <input type="text">
               </form>
              實際上這種技術可以簡單的用對action應用URL重寫來代替。

        session 用法:
                用戶信息保存到session前,先啟動;
                 session_start();                     啟動session
                 $_SESSION['user']="zy";      設置用戶名
                 unset($_SESSION['user']);    銷毀用戶名
                 session_destory();                失去已經存儲的session的數據

        cookie 和session 的區別:

               1、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上.

               簡單的說,當你登錄一個網站的時候,如果web服務器端使用的是session,那么所有的數據都保存在服務器上面,
               客戶端每次請求服務器的時候會發送 當前會話的session_id,服務器根據當前session_id判斷相應的用戶數據標志,以確定用戶是否登錄,或具有某種權限。
               由于數據是存儲在服務器 上面,所以你不能偽造,但是如果你能夠獲取某個登錄用戶的session_id,用特殊的瀏覽器偽造該用戶的請求也是能夠成功的。
               session_id是服務 器和客戶端鏈接時候隨機分配的,一般來說是不會有重復,但如果有大量的并發請求,也不是沒有重復的可能性,我曾經就遇到過一次。
               登錄某個網站,開始顯示的 是自己的信息,等一段時間超時了,一刷新,居然顯示了別人的信息。

               Session是由應用服務器維持的一個服務器端的存儲空間,用戶在連接服務器時,會由服務器生成一個唯一的SessionID,用該SessionID 為標識符來存取服務器端的Session存儲空間。而SessionID這一數據則是保存到客戶端,用Cookie保存的,用戶提交頁面時,會將這一 SessionID提交到服務器端,來存取Session數據。這一過程,是不用開發人員干預的。所以一旦客戶端禁用Cookie,那么Session也會失效。

               2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙考慮到安全應當使用session。

               3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能考慮到減輕服務器性能方面,應當使用COOKIE。

               4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。(Session對象沒有對存儲的數據量的限制,其中可以保存更為復雜的數據類型)

        注意:

              session很容易失效,用戶體驗很差;

              雖然cookie不安全,但是可以加密 ;

              cookie也分為永久 和暫時 存在的;

              瀏覽器 有禁止cookie功能 ,但一般用戶都不會設置;

             一定要設置失效時間,要不然瀏覽器關閉就消失了;

         例如:

              記住密碼功能就是使用永久cookie寫在客戶端電腦,下次登錄時,自動將cookie信息附加發送給服務端。

              application是全局性信息,是所有用戶共享的信息,如可以記錄有多少用戶現在登錄過本網站,并把該信息展示個所有用戶。

        兩者最大的區別在于生存周期,一個是IE啟動到IE關閉.(瀏覽器頁面一關 ,session就消失了)
        一個是預先設置的生存周期,或永久的保存于本地的文件。(cookie)

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        帶你了解session和cookie作用原理區別和用法

        帶你了解session和cookie作用原理區別和用法:Cookie概念 在瀏覽某些 網站時,這些網站會把一些數據存在客戶端,用于使用網站等跟蹤用戶,實現用戶自定義功能. 是否設置過期時間: 如果不設置 過期時間,則表示這個 Cookie生命周期為 瀏覽器會話期間 , 只要關閉瀏覽器,cookie就消失了. 這個生命期為瀏覽
        推薦度:
        標簽: 使用 區別 作用
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品无码久久久久牙蜜区| 久久国产成人精品国产成人亚洲| 亚洲啪啪AV无码片| 国产成人亚洲综合a∨| 成人免费午夜在线观看| 综合自拍亚洲综合图不卡区| 中文字幕免费在线看电影大全 | 亚洲丝袜中文字幕| 午夜精品射精入后重之免费观看| 亚洲中文字幕无码一区二区三区 | 猫咪社区免费资源在线观看 | 亚洲精品无码久久毛片波多野吉衣 | 九九精品免费视频| 91嫩草私人成人亚洲影院| 日本人成在线视频免费播放| 亚洲精品无码久久一线| 永久在线观看免费视频| 亚洲精品国产精品乱码在线观看| 国产精品免费久久久久久久久| 中文字幕亚洲不卡在线亚瑟| 国产免费内射又粗又爽密桃视频| 亚洲精品人成无码中文毛片| 国产免费人成视频在线播放播| 国产亚洲精品一品区99热| 免费看黄的成人APP| 久久综合亚洲色HEZYO社区| 免费看男女下面日出水来| 精品亚洲456在线播放| 四虎影视在线永久免费看黄| 午夜在线亚洲男人午在线| 亚洲一区二区视频在线观看| 最近2019中文免费字幕在线观看| 亚洲最新视频在线观看| 成年女人午夜毛片免费看| 国产区图片区小说区亚洲区| 中文字幕亚洲激情| 91福利免费视频| 亚洲av无码专区国产不乱码 | 黄页网址大全免费观看12网站| 国产亚洲人成网站在线观看| 在线看片免费人成视频福利|