Re: [問題] 靠AJAX就不用使用SESSION或COOKIE?

看板Ajax作者 (銀色)時間14年前 (2012/05/15 23:01), 編輯推噓3(3034)
留言37則, 8人參與, 最新討論串6/6 (看更多)
※ 引述《TonyQ (自立而後立人。)》之銘言: : 因為你原文是寫 session 需要的話可以放到 memory , : 但根據我的經驗是反過來, : session 一般是放 memory ,需要時才轉 io 或 db。 : 這也有可能是語言或平台的差異啦, : 但是據我所知,asp/php/javaee/asp.net 應該都是預設放記憶體才對。 我只能肯定 php 預設是丟 file XDD 而且 php session 搭配 memory 的最佳解也是 mmc 而非直接食用記憶體。 : 基本上各 container 的 default session 實作,應該都是 in memory 的吧, : 除了像 php 的 CI 之類的 framework 層有自己想法自己包 db session。 : 還有一個特例是 cluster 環境下,實作時也會特別把 session 弄成可以 IO。 : 預設會是 in memory 是有理由的, : 你要能 IO 的東西勢必要是能 serializable (可序列化)的。 : 可序列化意味著可以進行 IO 操作,寫入檔案裡面跟還原回來。 : 也就是說,如果是你放的是 string/int ..etc 這類基本型態就算了, : 基本型態通常都會是可序列化的。 : 但如果今天你放的是 custom class 的 instance , : 他存進去後還能不能安全照你想的方式撈回來,那就是另一回事了。 : 當然有些語言「可能」不用煩惱這些問題,(語言特性或限制就處理掉了) : 但是在很多地方,這些還是討厭的事情。 不懂 XDD session 的儲存「怎麼實做」跟「儲存在哪裡」應該沒有直接的關聯吧? 以 PHP 而言無論是丟 file 或 memory 都同樣是做 serialize, 所以資源能否放進 session 其實是關乎那樣東西自身的 serialize 能力, 例如 string / array / object 等等。 當然如果是自己寫 session handler 就跟這沒關係了 XD : 另外,這個問題要看你把多少東西塞 session , : 我前公司的產品在 session 每個人就可以到幾 mb ,(有特別需求) : 就不見得一定能這樣玩了。XD : 我只是在說明「預設」跟「常見」的狀況啦, : 當然每個專案還會因為每個專案的需求調配跟調整囉。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.108.101 ※ 編輯: gpmm 來自: 175.181.108.101 (05/15 23:01)

05/15 23:05, , 1F
基本上看起來 php 是個特例,以 JavaEE 而言就很有差了 :P
05/15 23:05, 1F

05/15 23:06, , 2F
有些語言進/出 session 時是不作 serialize/deserialize 的
05/15 23:06, 2F

05/15 23:07, , 3F
所以是不同語言對 session 操作上的認知不同,因為我太習慣
05/15 23:07, 3F

05/15 23:08, , 4F
session 是存在 memory 的,所以對 php 這個特性反而是誤判
05/15 23:08, 4F

05/15 23:13, , 5F
每個習慣了自己常用語言的人都會覺得別人家是特例 XDD
05/15 23:13, 5F

05/15 23:13, , 6F
我也沒想過別的語言會是預設塞在 memory 裡
05/15 23:13, 6F

05/15 23:16, , 7F
查了一下,ROR 預設是加密後塞在 cookie 裡 :Q
05/15 23:16, 7F

05/15 23:16, , 8F
nodejs 預設是存在記憶體
05/15 23:16, 8F

05/15 23:17, , 9F
cookie 塞的下 ? 我是有查到 rails 有in memory的實作,也沒
05/15 23:17, 9F

05/15 23:17, , 10F
有 serialize .
05/15 23:17, 10F

05/15 23:18, , 11F
當他是用 in memory 的時候
05/15 23:18, 11F

05/15 23:18, , 12F
我是都找預設的啦 XD 以實做而言那就什麼都有可能了
05/15 23:18, 12F

05/15 23:18, , 13F
無所謂啦,特例不過是個詞, asp 也是 in memory
05/15 23:18, 13F

05/15 23:18, , 14F
asp.net 預設也是塞記憶體
05/15 23:18, 14F

05/15 23:19, , 15F
你不知道 phper 天生對「特例」這一類的詞很敏感(炸) XDDD
05/15 23:19, 15F

05/15 23:20, , 16F
我是真的不知道,why? XDDD
05/15 23:20, 16F

05/15 23:20, , 17F
Sorry, 因為我認知中碰過得語言大多是 in memory 居多。~_~a
05/15 23:20, 17F

05/15 23:35, , 18F
php的存在本身就是一個特例...(遠目)
05/15 23:35, 18F

05/15 23:37, , 19F
然後CI還蠻奇怪的 你有db的話session就放db
05/15 23:37, 19F

05/15 23:38, , 20F
沒有db的話就沒加密塞在cookie裡
05/15 23:38, 20F

05/15 23:38, , 21F
不知道為什麼不想用php的session
05/15 23:38, 21F

05/16 03:28, , 22F
加密後塞cookie裡這種作法實在好神祕....
05/16 03:28, 22F

05/16 03:28, , 23F
等等 沒加密塞在cookie裡也太神了吧!!! 這樣登入資訊
05/16 03:28, 23F

05/16 03:28, , 24F
用session真的沒問題!?
05/16 03:28, 24F

05/16 03:29, , 25F
普遍上的認知不就是session放伺服器cookie不安全嗎!?
05/16 03:29, 25F

05/16 03:30, , 26F
加密塞cookie我都很沒安全感了....
05/16 03:30, 26F

05/16 15:42, , 27F
node.js本身沒session機制的,應該是connect的預設作法
05/16 15:42, 27F

05/16 15:53, , 28F
喔喔喔喔是費公
05/16 15:53, 28F

05/16 21:36, , 29F
Rails預設是cookie沒錯 但也有db和in memory
05/16 21:36, 29F

05/16 21:38, , 30F
改個config就可以輕鬆處理好
05/16 21:38, 30F

05/16 21:39, , 31F
不過in memory不是最快的嗎?配合memcached或redis
05/16 21:39, 31F

05/16 21:39, , 32F
還可以設定時間expire
05/16 21:39, 32F

05/20 01:10, , 33F
除了一些persistent connections
05/20 01:10, 33F

05/20 01:11, , 34F
好像php網頁內的變數,大部分都是在單次request存活
05/20 01:11, 34F

05/20 01:11, , 35F
不知道這和php的session要serialize有沒有關係
05/20 01:11, 35F

05/20 01:15, , 36F
(像是cgi一個process處理一個request的感覺)
05/20 01:15, 36F

06/05 19:14, , 37F
1
06/05 19:14, 37F
文章代碼(AID): #1Fic_MQO (Ajax)
文章代碼(AID): #1Fic_MQO (Ajax)