網頁資料儲存方式 CookieSession

 

    在網頁有很多的資料儲存方式,其中最常用的資料儲存方式為Session、Cookie,不同的資料須要使用不同的資料儲存方式。

Cookie的概念就好像去辦事或是買東西要抽取號碼牌,等到輪到你時只認這張號碼牌,然後你再講說今天要辦理甚麼,點甚麼餐點。Cookie的特性是沒有詳細資料,因此店員在輪到你之前不會知道你要做甚麼,也只認號碼牌而已。

Session的概念就像是會員卡,有一天商店的號碼機升級了,抽號碼牌時改成插會員卡或是輸入身分證字號,等到輪到你時店員就已經知道你的會員資料,也有你的消費紀錄,如果是在餐廳消費就能根據顧客的消費習慣,問客人是不是點跟上次一樣的餐,或是有的店家會幫客人集點。

使用Session會核對Session ID,Session ID會儲存於Cookie,要先從Cookie取出Session ID,如果沒有的話則是產生一個新的Session ID,然後去核對有沒有這筆Session ID,取出Session的詳細資料。這個過程就好像核對會員的身分證字號,或者是核對病人的病歷號碼,然後取出會員資料或是病歷。

Cookie是把資料存放在Client端,等到要用再取出,這個資料會讓別人看到,但是使用Cookie可以減少server的負擔,而因為資料會被看到,因此不建議存放機敏資料,Cookie的使用期限短,需要注意。

Cookie資料儲存的每一筆會有一個key和他對應到的value。當使用者輸入資料,不小心把網頁關了,然後使用者再打開時資料都還在,就是使用Cookie,在網路上有很多網頁要輸入資料的地方,在你下次再到訪時都幫你先輸入好,這些都是使用了Cookie來儲存的。

Cookie的使用並非沒有限制大小和數量,大多數的瀏覽器會對於Cookie有所限制,而基於RFC2965的規範,定義了瀏覽器對於Cookie的最低儲存量,現在的瀏覽器大部分都已經是符合了RFC規範,RFC規範中對Cookie的限制如下:每個Cookie的大小限制至少有4096bytes,每個網站至少可存放20個Cookie,瀏覽器至少可以存放300個Cookie。`

對於RFC2965的規範原文請大家參考這篇文章RFC-2965 HTTP State Management Mechanism

Session是把資料存放在server端,等需要使用時再拿出來,別人無法看到這個資料,會比較安全,但是由於Session常常會用來存放機敏資料,所以容易被攻擊。Session就好像打電話,從電話接通一直到掛斷的這段過程,所以Session中文翻譯為會期,這個意思就很接近,這這段期間Session資料都會在,除非server通知刪除Session否則不會消失,Session很常會用在跨頁傳送機敏資料。

在網頁設計中,資料儲存方式中最重要最常使用的就是Cookie和Session,其他還有很多資料儲存方式像是Cache、ViewState、Application,但是在這些網頁資料儲存方式當中,這裡面最重要也是最基本的方法就是Cookie和Session,這是我過去的工作面試常遇到的考題,是身為一個程式設計師必須要學會的方法。

arrow
arrow
    文章標籤
    Cookie Session
    全站熱搜

    波羅、希夏普2020 發表在 痞客邦 留言(0) 人氣()