最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解PHP中cookie和session的區(qū)別及cookie和session用法小結(jié)

 更新時間:2016年06月12日 11:00:27   作者:CarreySong  
這篇文章主要介紹了PHP中cookie和session的區(qū)別及cookie和session用法小結(jié)的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下

具體來說 cookie 是保存在“客戶端”的,而session是保存在“服務端”的

cookie 是通過擴展http協(xié)議實現(xiàn)的

cookie 主要包括 :名字,值,過期時間,路徑和域;

如果cookie不設(shè)置生命周期,則以瀏覽器關(guān)閉而關(guān)閉,這種cookie一般存儲在內(nèi)存而不是硬盤上.若設(shè)置了生命周期則相反,不隨瀏覽器的關(guān)閉而消失,這些cookie仍然有效直到超過設(shè)定的過 期 時間。

session 一種類似散列表的形式保存信息,

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

(稱為session id),如果已包含則說明以前已經(jīng)為此客戶端創(chuàng)建過session,服務器就按照session id把這個session檢索出來使用(檢索不到,會新建一個),如果客戶端請求不包含session id,則為此客戶端創(chuàng)建一個session并且生成一個與此session相關(guān)聯(lián)的session id,session id的值應該是一個既不會重復,又不容易被找到規(guī)律以仿造的字符串,這個session id將被在本次響應中返回給客戶端保存。保存這個session id的方式可以采用cookie,這樣在交互過程中瀏覽器可以自動的按照規(guī)則把這個標識發(fā)送給服務器。一般這個cookie的名字都是類似于SEEESIONID。但cookie可以被人為的禁止,則必須有其他機制以便在cookie被禁止時仍然能夠把session id傳遞回服務器。

優(yōu)缺點:

1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務器上。

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

3、session會在一定時間內(nèi)保存在服務器上。當訪問增多,會比較占用你服務器的性能

考慮到減輕服務器性能方面,應當使用COOKIE。

4、單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。

5、所以個人建議:

將登陸信息等重要信息存放為SESSION

其他信息如果需要保留,可以放在COOKIE中

Session和Cookie的使用總結(jié):

Session和cookie都是asp.Net中的內(nèi)置對象,至于他們有什么區(qū)別,在這里就不在多說,現(xiàn)在來說說一些比較實用點的東西:

我們知道網(wǎng)站都有一個后臺管理系統(tǒng),其中有登錄和退出兩個功能,在登錄的時候我們往往會把用戶的信息保存到session或者cookie中,以便后面使用,那么在登錄的時候我們要注意哪些呢?

1、把一些敏感的東西存到session中,不太敏感的東西可以存在session或者Cookie中,比如用戶名就是不太敏感,但是介于有些瀏覽器不支持cookie的使用,所以我們會把它存到session中,但是session有的時候在服務器中容易丟失,所以我們可以結(jié)合cookie一起使用,就是說當session的丟失的時候,如果cookie還在我們設(shè)定的有效期內(nèi),就可以再一次從Cookie中取出值放進session里,所以我們最好同時用session和cookie保存用戶名等信息或者在配置文件里

復制代碼 代碼如下:

<sessionState timeout="2" mode="StateServer" />

來解決session丟失的問題也可以

2、我們希望后臺管理在多長時間沒有操作的情況下,讓session失效,重新登錄,可以使用session.timeout=5,以分鐘為單位,表示5分鐘之內(nèi)沒有其他操作,就失效,或者在配置文件中配置<sessionState timeout="5" mode="InProc" />也可以

3、cookie有效期的設(shè)置

httpCookie.Expires = DateTime.Now.AddMinutes(2);

cookie的有效期為2分鐘

4、頁面中判斷是否有權(quán)限訪問該網(wǎng)頁的時候,可以如下判斷:

if (Request.Cookies["httpCookie"] != null)
{
Session["admin"] = Request.Cookies["httpCookie"].Values["admin"].ToString();
}
if (Session["admin"] == null)
{
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('請重新登 錄');location.href='logins.aspx'</script>");
}

下面在來說說退出的時候該怎么做比較好

1、 退出的時候session和Cookie的值都要清空,現(xiàn)在來簡單說說session的幾個方法的區(qū)別:

Session.clear():表示將會話中所有的session的鍵值都清空,但是session還是依然存在,同等于Session.RemoveAll()

Session[“admin”]=null:表示將制定的鍵的值清空,并釋放掉,和session[“admin”]=””不一樣,它清空了,但是session不釋放,同等于session.Remove(“name”);

Session.Abandon()就是把當前Session對象刪除了,下一次就是新的Session了。

主要的不同之處在于當使用Session.Abandon時,會調(diào)用Session_End方法(InProc模式下)。當下一個請求到來時將激發(fā)Session_Start方法。而Session.Clear只是清除Session中的所有數(shù)據(jù)并不會中止該

Session,因此也不會調(diào)用那些方法,Abandon方法用于主動結(jié)束會話,若沒有調(diào)用該方法,當會話超時后,也會自動結(jié)束當前會話。

2、 下面在來看看如何清除cookie

A、tpCookie cookie = System.Web.HttpContext.Current.Request.Cookies.Get("tuser");

cookie.Expires = DateTime.Now.AddDays(-1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);

B、tpCookie httpCookie = Request.Cookies["httpCookie"];

httpCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(httpCookie);

AB兩種方法都可以

3、 所以session清除當前的值就可以了即Session[“admin']=null就可以了,Cookie按照以上方法清除即可

建議和意見:

1、 在退出的時候我們可以在創(chuàng)建一個logout的頁面來寫時間,這樣比較好一些

2、 無論在進行什么操作的時候,能用If判斷是否為空的情況下就盡量的判斷,防止出現(xiàn)了空指針異常

以上所述是小編給大家介紹的詳解PHP中cookie和session的區(qū)別及cookie和session用法小結(jié)的相關(guān)知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Laravel框架實現(xiàn)簡單的學生信息管理平臺案例【附源碼下載】

    Laravel框架實現(xiàn)簡單的學生信息管理平臺案例【附源碼下載】

    這篇文章主要介紹了Laravel框架實現(xiàn)簡單的學生信息管理平臺,結(jié)合具體案例形式較為詳細的分析了基于Laravel框架的學生信息管理平臺路由與控制器相關(guān)操作技巧,并附帶完整源碼供讀者下載參考,需要的朋友可以參考下
    2019-05-05
  • Yii框架獲取當前controlle和action對應id的方法

    Yii框架獲取當前controlle和action對應id的方法

    這篇文章主要介紹了Yii框架獲取當前controlle和action對應id的方法,可實現(xiàn)獲取當前controlle或action對應id的功能,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • yii2 commands模式以及配置crontab定時任務的方法

    yii2 commands模式以及配置crontab定時任務的方法

    下面小編就為大家?guī)硪黄獃ii2 commands模式以及配置crontab定時任務的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Laravel框架表單驗證操作實例分析

    Laravel框架表單驗證操作實例分析

    這篇文章主要介紹了Laravel框架表單驗證操作,結(jié)合實例形式分析了Laravel框架表單驗證相關(guān)的表單數(shù)據(jù)提交、驗證、錯誤信息提示等相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • thinkphp中的url跳轉(zhuǎn)用法分析

    thinkphp中的url跳轉(zhuǎn)用法分析

    這篇文章主要介紹了thinkphp中的url跳轉(zhuǎn)用法,結(jié)合實例形式對比分析了幾種常用的URL跳轉(zhuǎn)技巧,需要的朋友可以參考下
    2016-07-07
  • Thinkphp搜索時首頁分頁和搜索頁保持條件分頁的方法

    Thinkphp搜索時首頁分頁和搜索頁保持條件分頁的方法

    這篇文章主要介紹了Thinkphp搜索時首頁分頁和搜索頁保持條件分頁的方法,以兩種不同的方式詳細分析了實現(xiàn)搜索時分頁情況下保持搜索條件的方法,是非常具有實用價值的技巧,需要的朋友可以參考下
    2014-12-12
  • Laravel框架自定義分頁樣式操作示例

    Laravel框架自定義分頁樣式操作示例

    這篇文章主要介紹了Laravel框架自定義分頁樣式操作,結(jié)合實例形式詳細分析了laravel框架自定義分頁樣式的具體操作步驟、實現(xiàn)方法及相關(guān)注意事項,需要的朋友可以參考下
    2020-01-01
  • Laravel框架使用Seeder實現(xiàn)自動填充數(shù)據(jù)功能

    Laravel框架使用Seeder實現(xiàn)自動填充數(shù)據(jù)功能

    這篇文章主要介紹了Laravel框架使用Seeder實現(xiàn)自動填充數(shù)據(jù)功能,結(jié)合實例形式分析了Laravel基于Seeder類實現(xiàn)自動填充數(shù)據(jù)的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-06-06
  • thinkphp實現(xiàn)面包屑導航(當前位置)例子分享

    thinkphp實現(xiàn)面包屑導航(當前位置)例子分享

    今天把博客一些細節(jié)完善了一下,其中修改了一下欄目頁和文章頁中的“當前位置”。
    2014-05-05
  • PHP中的表達式簡述

    PHP中的表達式簡述

    表達式是 PHP 最重要的基石。在 PHP 中,幾乎所寫的任何東西都是一個表達式。簡單但卻最精確的定義一個表達式的方式就是“任何有值的東西”。這篇文章主要介紹了PHP中的表達式簡述的相關(guān)資料,需要的朋友可以參考下
    2016-05-05

最新評論

江山市| 鄂温| 洮南市| 正镶白旗| 华池县| 兰西县| 沙田区| 秦皇岛市| 吉林省| 望城县| 安岳县| 康定县| 南城县| 泰宁县| 报价| 江口县| 万载县| 五大连池市| 比如县| 清丰县| 涿州市| 万源市| 临江市| 邻水| 蛟河市| 富顺县| 吉林市| 惠来县| 永和县| 民县| 临沧市| 淳安县| 洪雅县| 广平县| 婺源县| 鹤庆县| 新闻| 萍乡市| 南宁市| 夏河县| 南京市|