cookie與session

来源:http://www.cnblogs.com/mapingchuan/archive/2017/10/10/7643973.html
-Advertisement-
Play Games

cookie與session都是保存會話數據的技術 cookie存放在用戶端的磁碟中,瀏覽器一般只允許存放300個cookie,且每一個站點最多存放20個cookie,每個cookie的大小限製為4kb;當用戶需要記住自己的用戶名與密碼的時候,事件發生在用戶本地瀏覽器,所以使用cookie技術。co ...


  cookie與session都是保存會話數據的技術

  cookie存放在用戶端的磁碟中,瀏覽器一般只允許存放300個cookie,且每一個站點最多存放20個cookie,每個cookie的大小限製為4kb;當用戶需要記住自己的用戶名與密碼的時候(實際應用中,安全考慮儘量不要將密碼保存在cookie中),事件發生在用戶本地瀏覽器,所以使用cookie技術。cookie雖然發生在瀏覽器本地,但是常常是由web伺服器對其操作,並非用本地的js(可以直接在瀏覽器上設置一個cookie)或者其他靜態代碼實現,瀏覽器向伺服器發送login請求後,伺服器根據用戶的選擇是否保存用戶名或密碼的用戶瀏覽器,它首先創建相應cookie對象,寫入相關數據,然後設置cookie的生命周期(如果一個cookie沒有設置生命周期,當瀏覽器關閉之後cookie將銷毀),並把這個cookie添加的response請求寫回用戶瀏覽器。

  session在伺服器的記憶體中保存,所以當session數據存放過多時伺服器的性能明顯下降,當用戶需要在一段時間里持續保存某些數據時且這些數據來源於伺服器,使用session技術可以解決,如用戶的購物車或網站每一個網頁顯示用戶的一些個人數據等,這樣可以避免頻繁的資料庫操作,session與cookie一樣有生命周期,且預設的生命周期取決與web伺服器的配置文件,但不同於cookie生命周期的是,session生命周期是指無操作時間,在給定的時間里用戶沒有再次訪問該session即失效,如果中間有訪問,生命周期將重置,生命周期結束後銷毀session。

  每一個用戶之所以能夠找到自己在伺服器對應的session信息是因為每一個session在創建的時候便有了唯一的sessionid,並寫回了瀏覽器的cookie當中,當瀏覽器訪問該站點時就帶上本地cookie信息中的sessionid而訪問伺服器中對應的session,所以當瀏覽器禁用cookie時,不僅cookie信息不能使用,連伺服器端的session也不能使用。知道session之所以能訪問是因為瀏覽器發送了sessionid之後,當用戶禁用cookie時要做到仍能訪問session就需要手動在瀏覽器發送的請求中帶上相對應sessionid,而httpresponse提供了url地址重寫的方法智能的判斷瀏覽器是否禁用cookie,如果禁用則在url地址後面添加sessionid參數,否則不做操作。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • namespace MyLamdba{ class Program { static void Main(string[] args) { LamDbaShow.Show(); Console.ReadKey(); } }} namespace MyLamdba{ public delegate v ...
  • Asp.net Core 由於依賴註入的廣泛使用,配置數據遷移,與Asp.net大不相同,本篇介紹一下Asp.net Core添加數據遷移的過程 添加Nuget包 首先新建一個 Model 類 User: public class User { //用戶編號(自增長主鍵) [Key] public ...
  • 基本結構 規則 1、try語句至少要有一個對應的catch或finally,不允許單獨一個try語句 2、如果到了調用棧頂部,仍然沒有找到匹配的catch語句,就會發生未處理異常 3、找到匹配的catch塊後,會先執行內層的所有finally語句,就是從拋出異常的try語句開始,到匹配異常的catc ...
  • (原文)CNTK v2.2.0提供C#API來建立、訓練和評估CNTK模型。 本節概要介紹了CNTK C#API。 在CNTK github respository中可以找到C#訓練示例。 使用C#/ .NET管理API構建深層神經網路 CNTK C#API 通過CNTKLib命名空間提供基本操作。 ...
  • 預設情況下,每一個MVC請求的HTTP Header中都會包含著當前伺服器的一些信息,出於安全還是性能還是處女座的強迫症等等,都想把這些信息移除掉,增加一些應用程式的神秘感,如下,預設情況下Chrome中截獲的HTTP Header信息: Cache-Control:private, s-maxag... ...
  • AI聖經 深度學習領域奠基性的經典暢銷書!長期位居美國亞馬遜AI和機器學習類圖書榜首!所有數據科學家和機器學習從業者的必讀圖書!特斯拉CEO埃隆·馬斯克等國內外眾多專家推薦! 深度學習是機器學習的一個分支,它能夠使電腦通過層次概念來學習經驗和理解世界。因為電腦能夠從經驗中獲取知識,所以不需要人類 ...
  • 作業1: 需求:輸出一個由 * 符號所組成的矩形,要求每行有50個 * ,一共需要有60行。使用雙重for迴圈完成。 作業2: 需求:輸出一個由 * 符號所組成的三角形,要求第一行一個 * ,第二行 兩個 * 第三行 三個 * 依次類推,最後一行10個 *。使用雙重for迴圈完成。 作業3: 需求: ...
  • A Magic Lamp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4694 Accepted Submission(s): 1947 Pr ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...