关于session和request 到底用谁?
今天和一个同学讨论如题的问题,他说request安全,资源消耗低,可以把request一直转发,就能起到不用session的作用。
我也知道这么做不合理,显的request很臃肿而且容易出问题,但是一时又想不出会出如何的问题,请大家帮忙分析下~ 学习了。
[解决办法]
session 一直可以得到的原理是在每次request 的时候,都会带一个session ID。然后根据此ID 在server 端内存中找到此用户Session 中内容。这种方法问题是,服务器保存状态,当此服务器Down 后,该服务器上所有Session 丢失。
request 上存状态不可取,首先request 的URL 是有长度限制的,最长似乎是4086 个字节(不确定,忘了),这就限制了Session 存放内容的空间。另外如果不用https 加密,那么你每次请求的内容都可以被任何人sniffer 到,非常不安全。
当然,现在有很多网站,包括一些大型网站,其实是把Session 的内容加密放到Cookies 中的,这是一种方式,但仍然有大小限制。不过采用这种Session 方式,在服务器端的部署就简单很多,这就是传说中的SNA(shared nothing architecture)的一种实现方式。具体如何存放,自己选择吧
[解决办法]