session cookie 原理

转载 2015年11月19日 15:12:45

常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户 身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie, 什么时候不能用Session。

1.1  Cookie机制
在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。
而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了。要跟踪该会话,必须引入一种机制。
Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话。
1.1.1  什么是Cookie
Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

1.2  Session机制
除了使用Cookie,Web应用程序中还经常使用Session来记录客户端状态。Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。
1.2.1  什么是Session
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。


多台web服务器如何共享session?

一、利用数据库同步session 

二、利用cookie同步session 

三、利用memcache同步session 

第一种方法,最影响系统速度的那种,不推荐使用; 
第二种方法,效果不错,不过安全隐患一样的存在; 
第三种方法,个人觉得第三种方法是最好的,推荐大家使用


Cookie和Session的作用和工作原理

一、Cookie详解 (1)简介 因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒...
  • guoweimelon
  • guoweimelon
  • 2016年03月14日 16:18
  • 6261

描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理

Session用于保存每个用户的专用信息. 每个客户端用户访问时,服务器都为每个用户分配一个唯一的会话ID(Session ID) . 她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右)...
  • yanghaitao_1990
  • yanghaitao_1990
  • 2016年06月20日 20:08
  • 3283

cookie(会话cookie和持久化cookie) 和 session 以及 在爬虫登录抓取的理解

1、第一次访问服务器,会生成一个session 2、response  会返回一个sessionId,存在会话cookie 3、Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP...
  • Fupengyao
  • Fupengyao
  • 2017年04月25日 10:54
  • 1658

浅谈Session与Cookie的区别与联系

一、Session的概念Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识...
  • duan1078774504
  • duan1078774504
  • 2016年07月14日 21:02
  • 23608

asp.net中cookie和session的区别和相关使用

彻底研究了下cookie和session的原理,发现了很多有趣的东西,原来我的很多想法和制定协议的那些大神们也有相同之处! cookie是存放于用户的本地的机器上的小文件,由浏览器创建和读写这个...
  • wangyh_128
  • wangyh_128
  • 2014年08月14日 11:21
  • 777

描述Cookie和Session的作用,区别和各自的应用范围,cookie、Session工作原理

一、cookie机制和session机制的区别   具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。   同时我们也看到,由于在服务器...
  • lizhi0524
  • lizhi0524
  • 2017年04月28日 15:14
  • 214

Cookie和Session的作用,区别和各自的应用范围,cookie、Session工作原理

一、cookie机制和session机制的区别   具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。   同时我们也看到,由于在服务器端保...
  • wplblog
  • wplblog
  • 2016年07月18日 07:37
  • 3254

Cookie与Session的区别与联系及生命周期

原文:http://blog.csdn.net/tanyunlong_nice/article/details/47188659#comments 前几天面试问了一个问题,当时记不太清了,上...
  • caisini_vc
  • caisini_vc
  • 2017年05月08日 11:55
  • 251

[面试]cookie和session常见面试题

1、cookie和session原理及区别    cookie采用的是客户端的会话状态的一种储存机制。它是服务器在本地机器上存储的小段文本或者是内存中的一段数据,并随每一个请求发送至同一个服务器。 ...
  • wuhuagu_wuhuaguo
  • wuhuagu_wuhuaguo
  • 2017年11月16日 16:23
  • 226

Flask系列教程(11)——cookie和session

cookie和sessioncookie和session介绍 cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个...
  • huangyong1314
  • huangyong1314
  • 2017年07月07日 12:32
  • 1090
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:session cookie 原理
举报原因:
原因补充:

(最多只允许输入30个字)