Cookie数据大小超过4K - 但它的'仅'1100字节加密

时间:2012-02-29 23:00:15

标签: ruby session cookies sinatra rack

我有一个使用Rack :: Session :: Cookie

的Sinatra应用程序
use Rack::Session::Cookie, :key => 'my.key',
                           :path => '/',
                           :expire_after => 3600, # In seconds
                           :secret => 'something'

我在设置数据的会话中有一个位置,我在会话中转储,在erb调用之前大约600个字节

  puts "session is #{session.inspect}" ==> 400 bytes of text

然后我得到

Warning! Rack::Session::Cookie data size exceeds 4K.
Warning! Rack::Session::Cookie failed to save session. Content dropped.

有趣的是,这一切似乎都在起作用,因为我在会话中设置的所有内容都会在下一次打击时回复给我。 Safari开发窗口中报告的会话大小为1195字节,并且看起来都是加密的等等。

关于如何发生这种情况的任何想法?看来这条消息是假的,但看着Rack:Session代码 - 似乎有东西被抛弃......

1 个答案:

答案 0 :(得分:2)

弗雷德是对的。 session.inspect不会向您显示cookie字符串长度的确切大小。你可以使用tcpdump来更好地了解它的大小;

tcpdump -s 1500 -A主机和端口

然后发出请求并查看cookie数据的实际ascii转储。

lal00可能是真正的潜在问题