• 浅谈cookie,session等几大存储机制


    在早期的互联网中,由于HTTP协议时无状态的,所谓无状态是指在不同的请求,不同的操作时相互独立的,不存在任何的关系,HTTP不会为你存储任何的请求信息。虽然可以通过隐藏域来实现,但是非常的麻烦,而且它只仅限于同一张网页。互联网的先驱Netscape(网景)为HTTP协议增加了一个简单又非常有用的特征--小甜饼(cookie)。

    那什么是cookie呢?当客户端向服务端发送请求后,服务端对客户端发送过来的信息进行处理时,就会产生cookie,这是里面服务端就会有两段信息,一部分是客户端传过来的信息,还有一段是服务器处理过的信息,cookie会将其中的一段保存起来。然后通过包头返回客户端保存在客户端PC机器上。这就是cookie的生成。

    在提到cookie的同时大家必然会想到session,session与cookie其实目的是一样的,不过在不同的场合选择也是不一样的,它们各有自己的优缺点。
    session将客户的信息保存在内存中,保存格式,就像一张字典表,它有sessionID,而sessionID会存在客户端就像cookie一样,如果下次客户登陆,http会将sessionID与服务器内存中的sessionID进行匹配,来判断用户是否存在。sessions因为存在了内存中所以说相对cookie安全了些,因为cookie是将客户信息保存在了客户端,不过如果一旦要求存储相对多的用户信息,那它将大大增加服务器的压力,可能会导致服务器的崩溃,后果不堪设想。而cookie虽然说安全性低了一点,但是它减轻服务器的压力,再说一般人也不会通过cookie来盗取别人的什么用户,密码什么的。所以现在90%的网站是在使用cookie技术。
    那有人想我就是要让客户的信息相对的安全,我就是要使用session,其实着也是能够实现的。因为session不仅仅只能存在内存中,它还可以存在数据库中,你的剩余硬盘空间有多大就可以存多少。cookie保存默认30分钟,可以根据情况自定,最长可存50年吧,好像。
    当然除了cookie,会话状态session,还有一些其他的状态管理,Application还有像cache都可以实现出差不多的功能,不过这两个都是全局的。比如说cache最好是用来保存一定时间内相对稳定的数据,一般是公共信息,因为会覆盖,所以说一般如果是需要登录访问,我就觉得没有必要用它们。

    上述综合几位老师所述,本人总结,仅供菜鸟参考,不保对哦,呵呵。

  • 相关阅读:
    java IO
    免费的编程中文书籍索引-转
    js两种定义函数、继承方式及区别
    为什么这样写js:(function ($) { })(jQuery);
    Cannot open connection 解决办法
    dos下mysql登陆
    spring-AOP-1
    el表达式
    设计模式——"simple Factory"
    软件生产性控制
  • 原文地址:https://www.cnblogs.com/alvin_xp/p/1874112.html
Copyright © 2020-2023  润新知