php之session

來源:互聯網
上載者:User
session是一種會話技術,它基於cookie,相比cookie具有更高的安全性。

1.session原理

,session會給用戶端發送一個session id,同時在服務端建立一個session資料區,用戶端在請求的時候提交session id,服務端通過這個session id在session資料區尋找。用戶端僅存了一個session id ,它具有一定的時效性,重要的資訊還是儲存在服務端的,所以session會比較安全。

2. session的操作

session_set.php

 

來看看session儲存資料的檔案:

session資料區的內容都是通過序列化後的字串儲存的,讀取的時候再執行還原序列化,session 支援多種資料類型儲存,而cookie只支援string.

3.seesion中用戶端cookie屬性設定

session的使用是基於cookie的,必須在用戶端儲存一個session id的cookie,那麼服務端可以設定這個cookie的屬性來告訴瀏覽器如何產生這個cookie:

 

注意: session_set_cookie_params 必須要在 session_start()前設定。

4.session資料區記憶體回收設定

session資料區的資料隨著使用者對伺服器的訪問會產生越來越多的垃圾資料,所以有必須進行垃圾掃描和垃圾清理。當然伺服器不可能時時去掃描哪些資料是到期了,那樣伺服器損耗很大,所以呢必須一定幾率去觸發,判斷到是垃圾的就清理掉。

 

下面兩個參數是設定觸發垃圾掃描的機率
ini_set(‘session.gc_probability’, ‘1’);
ini_set(‘session.gc_divisor’, ‘3’);
設定多長時間後就是垃圾,可以被回收
ini_set(‘session.gc_maxlifetime’, ‘10’);

5.禁用cookie如何使用session

 

show.html

                    Insert title here                forbidden cookie            

session_get_no_cookie.php

    

6.session如何持久化

通常來說session不提倡持久化。
如果非要持久化,如下設定:

session_set_cookie_params(PHP_INT_MAX);ini_set('session.gc_maxlifetime', PHP_INT_MAX);#注意一定要在session_start前設定!!

7.session和cookie區別和聯絡

聯絡:
Session基於COOKIE,session-id儲存於cookie中,cookie資料存放在用戶端瀏覽器上,session主要資料放在伺服器上。

區別:

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.