Web 開發者除了必須了解 HTTP 協定, session 與 cookies 大概也是數一數二重要的概念了。最近不小心爬文爬到 2005 年 Cookieless ASP.NET 這篇文章, 覺得挺有趣, 這邊筆記一下重點。 概念 wiki 關於 HTTP session state 的解釋 HTTP is a stateless protocol. A stateless protocol does not require the HTTP server to retain information or status about each user for the duration of multiple requests. However, some web applications implement states or server side sessions using for instance HTTP cookies or hidden variables within web forms. HTTP 本身是一種無狀態的協定, 這是天生的。所以 session state 其實是一個人工的產物, 微軟在 1997 年推出 ASP 技術時提到這個概念。session state 可以讓應用程序保存 user 的部分資訊做為持續互動用途。每個 session 會有一個唯一的 ID (字符串), 瀏覽器若啟用 cookies 機制則 session ID 會存入 cookies 中 (或其他 hidden 欄位中), 客戶端每次發出 request 的封包內就會夾帶這個 session ID 供伺服器驗證並取回先前資料用。 Cookies 是有問題的東西 ? cookies 好像是個麻煩精 ? 他其實只是一堆文字形式的 key value 組合, 儲存於客戶端, 依據建立連線的 domain 為名的資料夾中, 本身並不是一隻程式, 所以不會有攻擊行為。但就是因為是一個單純的檔案以及文字, 任何安裝於客戶機器上的電腦, 都有機會取得內容, 有些敏感信息可能因此曝光, 更惡意的還可能竄改資料。 使用 Cookieless Sessions 如果因為瀏覽器被取消 cookie 功能或是要...
劍心 ~紀念軟體開發 10+ 年~ ~紀念寶寶 元 年~