国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

session和cookie實(shí)用手記

endiat / 1178人閱讀

摘要:那么,怎么才能讓服務(wù)器識別瀏覽器身份,認(rèn)為是同一用戶的多次請求,從而達(dá)到數(shù)據(jù)共享呢這就要用到會話技術(shù)了,本質(zhì)上就是數(shù)據(jù)持久化存儲。

由來

    瀏覽器和服務(wù)器間的數(shù)據(jù)交互,就是會話。
    
    但是呢,http協(xié)議是無狀態(tài)無記憶的,就會導(dǎo)致業(yè)務(wù)的不連續(xù)性。
    [不連續(xù)性的說明]譬如你在xxx網(wǎng)站A界面登錄成功,當(dāng)你點(diǎn)擊跳轉(zhuǎn)到B界面時,又會提示請登錄。
    
    那么,怎么才能讓服務(wù)器識別瀏覽器身份,認(rèn)為是同一用戶的多次請求,從而達(dá)到數(shù)據(jù)共享呢?
    
    這就要用到[會話技術(shù)]了,本質(zhì)上就是數(shù)據(jù)持久化存儲。
    
    會話技術(shù),就是來解決http協(xié)議缺陷而導(dǎo)致的業(yè)務(wù)不連續(xù)問題。
    相關(guān)補(bǔ)充:cookie在瀏覽器端的存儲,是有數(shù)據(jù)量限制的,一般是4k;
    而前端本地存儲技術(shù)可彌補(bǔ),譬如:
    localStorage  (20M)   本地存儲    只要用戶不手動刪除,就一直存在   應(yīng)用場景:記住皮膚;瀏覽歷史搜索;回到上一次離開的位置等
    sessionStorage (5M) 會話存儲    瀏覽器關(guān)閉就沒了                應(yīng)用場景: 單頁面應(yīng)用間數(shù)據(jù)的傳遞
    可能存儲在瀏覽器或硬盤上。
    
    會話技術(shù),從保存位置上有所區(qū)分:
    持久化存儲在服務(wù)端,是session
    持久化存儲在客戶端,是cookie

cookie過程分析

   瀏覽器請求XXX網(wǎng)站服務(wù)器后,服務(wù)器把數(shù)據(jù)存儲在瀏覽器的cookie中;
   后來的每次請求,瀏覽器都會攜帶該網(wǎng)站內(nèi)所有的cookie作為身份,由服務(wù)端腳本來識別處理。
   當(dāng)然,這一過程是基于瀏覽器執(zhí)行的。同一網(wǎng)站在不同的瀏覽器間存儲的cookie是不能共享的。

   cookie默認(rèn)是會話周期,即從瀏覽器打開,請求服務(wù)器資源,到關(guān)閉瀏覽器這一過程。
   cookie因存儲在客戶端而有安全性的問題,且每次請求都會攜帶所有的cookie內(nèi)容。

使用

    /*cookie*/
    //存儲的數(shù)據(jù)類型,一般是字符串

    //格式說明(未展示所有參數(shù),有興趣的可查手冊)
    setcookie("數(shù)據(jù)名","數(shù)據(jù)值","有效期","有效路徑","有效域名");    
    // 特例:
    // PHP_INT_MAX    永久有效
    // /              默認(rèn)是當(dāng)前目錄及子目錄有效,我這里改成了整站有效
    // .6758591.com   默認(rèn)是當(dāng)前域名,我這里改成了跨子域
    setcookie("age",18,PHP_INT_MAX,"/",".6758591.com");
    
    // 增
    setcookie("name","Lin");
    // 刪
    setcookie("name","",0);
    setcookie("name","",time()-1);
    // 改
    setcookie("name","Bin");
    // 查
    echo $_COOKIE["name"];

查看(方式很多,擇其一)

session過程分析

    瀏覽器,首次請求xxx網(wǎng)站服務(wù)器后,服務(wù)端因session_start()而立即創(chuàng)建新的session文件;
    
    文件名默認(rèn)格式,示例: sess_0l4jphu0c88lm1ka6242po5763    sess_是前綴,后面的字符串是特殊算法生成的具有“唯一隨機(jī)性”的串兒;
    
    后通過http協(xié)議的響應(yīng)頭,setcookie去回傳PHPSESSID=0l4jphu0c88lm1ka6242po5763;
    
    瀏覽器收到響應(yīng)內(nèi)容后,將PHPSESSID作為身份信息,保存在cookie,默認(rèn)是會話周期.
    
    后來的每次請求都會,攜帶所有的cookie信息(包括身份信息)提交給服務(wù)器腳本;
    
    服務(wù)端收到請求后,比對查找是否有對應(yīng)的session文件;
    
    如果有的話,則讀取到超全局變量$_SESSION中;
    
    否則會新建session文件,以進(jìn)行$_SESSION操作.
    
    備注:session文件也不是一直存在于服務(wù)端的,默認(rèn)存活時間是24min。
    默認(rèn)以文件形式存儲,也可存儲在DB中.但讀取操作還是要消耗服務(wù)器資源的。
    由php.ini中可的相關(guān)參數(shù)決定存活時間、啟動gc的幾率、session_name命名及存儲位置等。

使用

    /*session*/
    //存儲的數(shù)據(jù)類型,幾乎支持php的所有數(shù)據(jù)類型

    //當(dāng)前頁面開啟session會話機(jī)制.(只要用到的頁面,就一定要首先開啟.)
    session_start();
    //增/改
    $_SESSION["name"] = "Lin";
    //刪
    unset($_SESSION["name"]);     //刪除單個session數(shù)據(jù)
    $_SESSION = [];               //刪除全部session數(shù)據(jù)
    session_destroy();            //連session文件都銷毀了
    // 查
    echo $_SESSION["name"];

查看(windows下本地服務(wù)器,且未修改php.ini中相關(guān)配置參數(shù)時)

如果禁用了cookie,那么session如何使用

   cookie和session本質(zhì)上都能以數(shù)據(jù)持久化存儲的方式解決身份識別問題,那么cookie被禁掉后,本地就沒有瀏覽器身份信息隨著請求發(fā)到服務(wù)器了,服務(wù)器自然就不能識別,從而不斷的生成新的session文件。這是不可取的。
   解決的關(guān)鍵是,要確保對同一個session文件的操作。那么在sesion_start()前就得指定session_id();

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25907.html

相關(guān)文章

  • 2017-09-23 前端日報(bào)

    摘要:知乎專欄前端給不了解前端的同學(xué)講前端掘金前端夠得到安全跨站請求偽造掘金前端面試問題持續(xù)更新掘金向核心貢獻(xiàn)代碼的六個步驟基于的仿音樂移動端個人文章用構(gòu)建組件網(wǎng)易嚴(yán)選感受開發(fā)已完結(jié)掘金英文 2017-09-23 前端日報(bào) 精選 [譯] 網(wǎng)絡(luò)現(xiàn)狀:性能提升指南前端夠得到Web安全3--點(diǎn)擊劫持/UI-覆蓋攻擊React, Jest, Flow, Immutable.js將改用MIT開源協(xié)議N...

    BingqiChen 評論0 收藏0
  • SAE的Tornado開發(fā)經(jīng)驗(yàn)

    摘要:對,并不是非阻塞的快,而且開發(fā)的快,極適合做前后端分離以傳遞數(shù)據(jù)的模式。的選擇既不簡潔又缺乏一致性,但建表重連包裝連接池這些總得有人做。縮短重連時間因?yàn)槌瑫r時間比的通用配置要短,所以的重連時間也必須同步,否則會報(bào)的數(shù)據(jù)庫錯誤。 對程序員來說,新浪云SAE無疑是國內(nèi)最好的PaaS平臺,實(shí)名認(rèn)證和綁定移動端得到的免費(fèi)云豆,可以讓你在做出一款能抬起頭的應(yīng)用之前不愁吃喝。 所以這一年里做過的網(wǎng)...

    stackfing 評論0 收藏0
  • NGINX宏觀手記

    摘要:如果請求中有參數(shù),值為,否則為空字符串。獲取代理訪問服務(wù)器的客戶端的端口,如果是直接訪問該值為空字符串。文件處理結(jié)束后,此文件需刪除。 showImg(https://segmentfault.com/img/bVbeCcY?w=352&h=72); 前言 任何一個工具都有它的靈魂所在,作為一個PHP程序員,我們可能僅僅使用了它的一小部分,這篇文章讓你更加了解Nginx,本章大多都是總...

    AlphaGooo 評論0 收藏0
  • NGINX宏觀手記

    摘要:如果請求中有參數(shù),值為,否則為空字符串。獲取代理訪問服務(wù)器的客戶端的端口,如果是直接訪問該值為空字符串。文件處理結(jié)束后,此文件需刪除。 showImg(https://segmentfault.com/img/bVbeCcY?w=352&h=72); 前言 任何一個工具都有它的靈魂所在,作為一個PHP程序員,我們可能僅僅使用了它的一小部分,這篇文章讓你更加了解Nginx,本章大多都是總...

    GitChat 評論0 收藏0
  • node博客項(xiàng)目開發(fā)手記

    摘要:所以呢解決這個問題也很簡單,就是對提交的內(nèi)容進(jìn)行或者其他形式的編碼,在服務(wù)器端進(jìn)行解碼,即可解決。項(xiàng)目地址完結(jié)撒花 NodeJs開發(fā)個人博客項(xiàng)目 預(yù)覽地址:http://baijiawei.top GitHub地址:https://github.com/bjw1234/blog 需要安裝的模塊 body-parser 解析post請求 cookies 讀寫cookie express...

    Jiavan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<