社区
Web 开发
帖子详情
面试的一个问题:session和cookie有什么区别?session运行在服务器端还是客户端?
wangyuqin
2006-01-10 12:28:45
面试的一个问题:session和cookie有什么区别?session运行在服务器端还是客户端?谢谢
...全文
2046
7
打赏
收藏
面试的一个问题:session和cookie有什么区别?session运行在服务器端还是客户端?
面试的一个问题:session和cookie有什么区别?session运行在服务器端还是客户端?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kingofhawks
2006-01-11
打赏
举报
回复
Cookie也是在服务器端生成并返回给browser保存在客户端的,下次请求的时候连同cookie一起发送给服务器端。
funcreal
2006-01-11
打赏
举报
回复
csdn为什么能够选择“两周内不用再登录”?因为它把cookie写到了你的计算机里。
你把cookie清空试试。
cissy7800
2006-01-10
打赏
举报
回复
关注中楼下的继续
xiongbing528
2006-01-10
打赏
举报
回复
SESSION是可以存储针对与某一个用户的IE以及通过其当
前窗口打开的任何窗口具有针对性的用户信息存储机制。为什么要这样说。看下边
先研究SESSION是如何启动的,当打开IE以后浏览网站后会发出一个指令请求SESSIONID以
及对各个类型数据的下载许可,如图片,声音以及FLASH。
数据实际传输内容:IE到服务器
GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Accept-Language0: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: www.jh521.com
Connection: Keep-Alive
服务器会返回一个没有被使用的SESSIONID让IE使用,当时IE就对返回SESSIONID做存储
并同时返回相关页面的下载数据,如下:服务器到IE
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Sun, 30 Nov 2003 16:41:51 GMT
Content-Length: 21174..Content-Type: text/html
Set-Cookie: ASPSESSIONIDCACBBBRT=IBOMFONAOJFEEBHBPIENJFFC; path=/
Cache-control: private
然后就是页面HTML代码
此时这个IE程序(不是客户机)的SESSIONID就为IBOMFONAOJFEEBHBPIENJFFC
而当IE在访问任何这个站点的ASP程序的时候,就会把IBOMFONAOJFEEBHBPIENJFFC发送
给服务器,服务器就会知道IBOMFONAOJFEEBHBPIENJFFC是表示你
而在服务器上设置SESSION("name")="name"
完全可以看成是
SESSION("IBOMFONAOJFEEBHBPIENJFFC")("name")="name"
或者
SESSION(SESSIONID)("name")="name"
这样,SESSION就区分开用户了。
而当服务器反馈这个ID的时候会看这个ID有没有被使用。如果有在换一个
反正不会让你重复,如果想模拟某人的SESSION的ID来进行欺骗是可以的。不过要获取到
对方IE传输信号,并且在保证当时这个SESSIONID没有被取消的情况下才可能实施。
不过要是我有那时间直接通过POST信号找他NAME和PASS了。我可不费这个劲
想必一些人明白了了SESSIONID到底是如何工作的
那么就在看看COOKIE,有人说SESSIONID就是COOKIE,按照技术上来讲他们不属于同类
但是属于一种工作模式,用户和服务器传输私有数据
当我设置COOKIE的时候,服务器会反馈给IE一个指令。IE通过这个网络指令生成COOKIE并
存放,在特定的时候会取得这个这个信息如在访问这个站点并且COOKID有效的时候。
那么为什么要用COOKIE而不用SESSION呢
看下区别
有效时间以及存储方式 传输内容
COOKIE 可设置并在本地保留 明码信息
SESSION 在IE不关闭并服务器不超时 只有SESSIONID
当如果想让用户下次登入网站不需要输入用户名或者密码的时候就只能用COOKIE,
因为他可以保留相当长的时间(在COOKIE记录被删除或者失效日期之前)
而SESSION就不可以,他不会保留太长时间,而且IE在关闭后就自动清除了SESSIONID记录
在下次登入的时候会请求新的SESSIONID
而服务器想通过用户个人变量校验用户的状态的时候,就不能用COOKIE
如果用设置用户权限是USER。而IE访问的时候就把USER的明码传输到服务器。
那么如果我通过一定手段,比如直接修改COOKIE记录,把USER修改成ADMIN呢~~
就麻烦了。
但存储用户名和密码或者网站的配色方案这样的信息,用COOKIE是最好的
Request.ServerVariables("HTTP_REFERER")
我想有一些人通过这个Request.ServerVariables("HTTP_REFERER")
来进行一些关键性限制,特别是对付远程提交以及非法侵入。
那么我就要提醒下服务器取得的HTTP_REFERER信息完全是IE传输给服务器的,可以模拟
而且难度不大,用不到半个小时就可以用VB做出一个针对HTTP_REFERER入侵程序。
(可惜我原先那他没干正经事情,做WEB游戏挂机程序来的)
两者均用于保存用户私有信息
session
存储于服务器端,可被服务器端脚本修改。数据不在网络上传递。
cookie
存储于客户端,可被客户端脚本修改。数据将在网络上传递。
--------------------------------------------------------------------------------
session会给服务器带来开销。
cookie不会给服务器增加过多的开销。
对两者进行加密传输,所以在网络上传递将会比现在安全多了。
--------------------------------------------------------------------------------
二者都是保存数据的机制,其他的变量都会因页面的更换而丢失,所以更换页面时保持上页的一些数据成为了一种需要.
既然HTTP协议中没有考虑保存数据,那就只好另想方案了,经过思考,保存数据出现两种方案,一种是把数据保存在客户端,那就是Cookie,一种是把数据保存在服务器端,那就是Session.目的都是保持数据,
常遇道
2006-01-10
打赏
举报
回复
为什么会有cookie呢,大家都知道,http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现网上商店中的购物车呢,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过 SessionID来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为 JSESSIONID的输出cookie,我们叫做session cookie,以区别persistent cookies,也就是我们通常所说的cookie,注意session cookie是存储于浏览器内存中的,并不是写到硬盘上的,这也就是我们刚才看到的JSESSIONID,我们通常情是看不到JSESSIONID的,但是当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到sessionid= KWJHUG6JJM65HS2K6之类的字符串。
明白了原理,我们就可以很容易的分辨出persistent cookies和session cookie的区别了,网上那些关于两者安全性的讨论也就一目了然了,session cookie针对某一次会话而言,会话结束session cookie也就随着消失了,而persistent cookie只是存在于客户端硬盘上的一段文本(通常是加密的),而且可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,自然不如 session cookie安全了。
通常session cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的sessionid,这样我们信息共享的目的就达不到了,此时我们可以先把sessionid保存在persistent cookie中,然后在新窗口中读出来,就可以得到上一个窗口SessionID了,这样通过session cookie和persistent cookie的结合我们就实现了跨窗口的session tracking(会话跟踪)。
在一些web开发的书中,往往只是简单的把Session和cookie作为两种并列的http传送信息的方式,session cookies位于服务器端,persistent cookie位于客户端,可是session又是以cookie为基础的,明白的两者之间的联系和区别,我们就不难选择合适的技术来开发web service了。
青盟日志
2006-01-10
打赏
举报
回复
1、cookie数据存放在客户的浏览器上,
session数据放在服务器上
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE
4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
5、300个的限制我没听说
dragonfly001
2006-01-10
打赏
举报
回复
session 服务器端
cookie 客户端
浅谈
COOKIE
和
SESSION
区别
在PHP
面试
中经常碰到请阐述
session
与
cookie
的
区别
与联系,以及如何修改两者的有效时间。具体来说
cookie
机制采用的是在
客户端
保持状态的方案,而
session
机制采用的是在
服务器端
保持状态的方案。
什么是
cookie
?什么是
session
?
session
和
cookie
有什么
区别
?
在技术
面试
中,经常被问到“说说
Cookie
和
Session
的
区别
”,大家都知道,
Session
是存储在
服务器端
的,
Cookie
是存储在
客户端
的,然而如果让你更详细地说明,你能说出几点?今天个推君就和大家谈谈“
Cookie
和
Session
”...
假定载
客户端
禁止
cookie
下
session
如何使用?
session
与
cookie
的
区别
是什么?
session
将数据存储在
服务器端
,使用
cookie
的方式传递
一个
标识符,而
cookie
则将数据存储在
客户端
,通过浏览器将数据传递到
服务器端
。如果
客户端
禁止使用
cookie
,
session
可以使用 URL 重写来传递会话标识符...
Cookie
和
Session
的
区别
(
面试
必备)
简单的说,当你登陆
一个
网站的时候,如果web
服务器端
使用的是
session
,那么所有的数据都保存在服务器上,
客户端
每次请求服务器的时候会发送当前会话
session
id,服务器根据当前
session
id判断相应的用户数据标志,...
什么是
Cookie
和
Session
?——
Cookie
和
Session
的
区别
?—— 一文教你理解清楚什么是
Cookie
和
Session
,以及常见的开发
面试
问题
?
Cookie
s1.3.2、参数1.4、
cookie
的设置2、
session
2.1、定义2.2、相关参数和函数2.3、使用2.4、
session
的实现(服务器如何设计的存储和查找结构)2.5、不同场景下的
session
(判断是否是相同的
session
)3、常见
面试
...
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章