HTTP之session与cookie

session
  • .由于http协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用有种机制来识别具体的用户,这个机制就是session。
    1.典型的场景比如购物车,当你点击下单按钮时,由于http协议无状态,它并不知道是哪一个用户操作的,所以服务端为特定的用户创建特定的session,用于标识这个用户,并且跟踪用户,这样才知道购物车里面的内容,这个session是保存在服务端的,有唯一的标识。
  • .在服务端保存的session的方法很多,内存、数据库、文件都可以,集群的时候也要考虑session的转移,在大型的网站,一般会有专门的session服务器集群,用来保存用户会话,这个时候的session信息都是放在内存的,使用一些缓存服务比如Memcached之类来放session。
    session创建于服务器端,保存于服务器,维护于服务器,每创建一个新的session,服务器端都会分配一个唯一ID,并且把这个ID保存到客户端的Cookie中,保存的形式是以JSESSIONID来保存的。
cookie

服务器端是如何识别特定的客户端呢?

  • .Cookie登场,每次http请求的时候,客户端都会发送相应的cookie信息到服务端。实际上大多数的应用都是用cookie来实现session的跟踪,第一次创建session的时候,服务端会在http协议中告诉客户端,需要在cookie里面记录一个session ID,以后每次请求都会把这个ID发送到服务器,此时就知道对方的身份
    有人问,如果客户端的浏览器禁用来cookie怎么办?一般这种情况下,会使用一种叫做URL重写的技术来进行回话更总,既每次http交互,URL后面都会被附加上一个诸如sid=xxxx这样的参数,服务端据此来识别用户
  • .cookie是浏览器保存信息的一种方式,可以理解为一个文件,保存在客户端,服务器可以通过响应浏览器的set-cookie的标头,设置cookie的信息,保存在客户端,你可以给这个文件设置一个期限,这个期限,不会因为浏览器的关闭而消失,其实大家应该对这个效果并不陌生,很多网购的网站都是这样做的,即使你没有买东西,它也会记住的喜好,会优先推荐你喜欢的东西
  • .cookie其实还可以在一些方便用户的场景下,设想你登录过一个网站,下次登陆的时候不想在输入帐号了,怎么办?这个信息可以写在cookie中,访问网站的时候,网站页面的脚本可以读取这个信息,自动帮你把用户名给填写,能够方便用户,这个也是cookie的由来,但也因此cookie存在一定的安全隐患
总结
  • .seesion是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中
  • .cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现session的一种方式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP cookie(也称为web cookie,网络cookie,浏览器cookie或者简称cookie)是网...
    留七七阅读 18,099评论 2 71
  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 2,382评论 1 17
  • 作者:晚晴幽草轩www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饥人谷_Dylan阅读 1,232评论 0 51
  • 从驰聘职场到转战厨房已近一年,从前偶尔去一次菜市场总是跐着牙、踮着脚尖走,如今每日早市买菜倒象是闲庭漫步。想...
    黑小跳阅读 469评论 4 15
  • 这段时间,我也面对了不少世俗烦心之事,所以也听下不少时间没有写这个文章,这个文章今天也是最后一篇了,这个系列就此结...
    释道生阅读 543评论 2 4