作者gpmm (银色)
看板Ajax
标题Re: [问题] 靠AJAX就不用使用SESSION或COOKIE?
时间Tue May 15 23:01:39 2012
※ 引述《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)
1F:→ TonyQ:基本上看起来 php 是个特例,以 JavaEE 而言就很有差了 :P 05/15 23:05
2F:→ TonyQ:有些语言进/出 session 时是不作 serialize/deserialize 的 05/15 23:06
3F:→ TonyQ:所以是不同语言对 session 操作上的认知不同,因为我太习惯 05/15 23:07
4F:→ TonyQ:session 是存在 memory 的,所以对 php 这个特性反而是误判 05/15 23:08
5F:→ gpmm:每个习惯了自己常用语言的人都会觉得别人家是特例 XDD 05/15 23:13
6F:→ gpmm:我也没想过别的语言会是预设塞在 memory 里 05/15 23:13
7F:→ gpmm:查了一下,ROR 预设是加密後塞在 cookie 里 :Q 05/15 23:16
8F:→ gpmm:nodejs 预设是存在记忆体 05/15 23:16
9F:→ TonyQ:cookie 塞的下 ? 我是有查到 rails 有in memory的实作,也没 05/15 23:17
10F:→ TonyQ:有 serialize . 05/15 23:17
11F:→ TonyQ: 当他是用 in memory 的时候 05/15 23:18
12F:→ gpmm:我是都找预设的啦 XD 以实做而言那就什麽都有可能了 05/15 23:18
13F:→ TonyQ:无所谓啦,特例不过是个词, asp 也是 in memory 05/15 23:18
14F:→ gpmm:asp.net 预设也是塞记忆体 05/15 23:18
15F:→ gpmm:你不知道 phper 天生对「特例」这一类的词很敏感(炸) XDDD 05/15 23:19
16F:→ TonyQ:我是真的不知道,why? XDDD 05/15 23:20
17F:→ TonyQ:Sorry, 因为我认知中碰过得语言大多是 in memory 居多。~_~a 05/15 23:20
18F:→ superpai:php的存在本身就是一个特例...(远目) 05/15 23:35
19F:→ superpai:然後CI还蛮奇怪的 你有db的话session就放db 05/15 23:37
20F:→ superpai:没有db的话就没加密塞在cookie里 05/15 23:38
21F:→ superpai:不知道为什麽不想用php的session 05/15 23:38
22F:推 mrbigmouth:加密後塞cookie里这种作法实在好神秘.... 05/16 03:28
23F:→ mrbigmouth:等等 没加密塞在cookie里也太神了吧!!! 这样登入资讯 05/16 03:28
24F:→ mrbigmouth:用session真的没问题!? 05/16 03:28
25F:→ mrbigmouth:普遍上的认知不就是session放伺服器cookie不安全吗!? 05/16 03:29
26F:→ mrbigmouth:加密塞cookie我都很没安全感了.... 05/16 03:30
27F:→ fillano:node.js本身没session机制的,应该是connect的预设作法 05/16 15:42
28F:→ gpmm:喔喔喔喔是费公 05/16 15:53
29F:推 hellolucky:Rails预设是cookie没错 但也有db和in memory 05/16 21:36
30F:→ hellolucky:改个config就可以轻松处理好 05/16 21:38
31F:→ hellolucky:不过in memory不是最快的吗?配合memcached或redis 05/16 21:39
32F:→ hellolucky:还可以设定时间expire 05/16 21:39
33F:→ weiyucsie:除了一些persistent connections 05/20 01:10
34F:→ weiyucsie:好像php网页内的变数,大部分都是在单次request存活 05/20 01:11
35F:→ weiyucsie:不知道这和php的session要serialize有没有关系 05/20 01:11
36F:→ weiyucsie:(像是cgi一个process处理一个request的感觉) 05/20 01:15
37F:推 EROS4:1 06/05 19:14