1. 如果在使用cookie时不设置cookie的过期时间会怎样
1. dateadd法 1)将期限设置为当前日期后的第N天的0时0分0秒 Response.Cookies(“LastView”).Expires=dateadd(“d”,N,date) 2)将期限设置为当前日期后的第N月的同一天的0时0分0秒 Response.Cookies(“LastView”).Expires=dateadd(“m”,N,date) 3)将期限设置到当前时间后的第N天的该时该分该秒 Response.Cookies(“LastView”).Expires=dateadd(“d”,N,now) 4)将期限设置到当前时间后的第N+M天的该时该分该秒 Response.Cookies(“LastView”).Expires=dateadd(“d”,N,now+M) 5)将期限设置到当前时间后的第N月的该时该分该秒 Response.Cookies(“LastView”).Expires=dateadd(“m”,N,now) 6)将期限设置到当前时间后的第N月的同一日后的第M天的该时该分该秒 Response.Cookies(“LastView”).Expires=dateadd(“m”,N,now+M) 2. 确定日期法 1)将期限设置到某一日的0时0分0秒失效 举例:到2003年1月29日0时0分0秒失效 Response.Cookies(“LastView”).Expires=# 1/29/2003 # 或 Response.Cookies(“LastView”).Expires=# 2003/1/29 # 或 Response.Cookies(“LastView”).Expires=“January 29,2003” 2)将期限设置到某一日的某一时刻失效 举例:到2003年1月29日21时0分0秒失效 Response.Cookies(“LastView”).Expires = #2003/1/29 21:00:00# 或 Response.Cookies(“LastView”).Expires = #1/29/2003 21:00:00# 或 Response.Cookies(“LastView”).Expires = #January 29,2003 21:00:00# 其实,在这种方法中,用““ ””和“# #”的效果是一样的。例如 Response.Cookies(“LastView”).Expires=“January 29,2003” 和 Response.Cookies(“LastView”).Expires=# January 29,2003 # 的效果就是相同的。 3. date+ \now+ 法 这种方法主要结构为Date+数学式或now +数学式。通过简单的四则运算的方法,将Cookie 的失效时间设置到当前时间后的某一段时间内。这里的加号都表示在当前时间的基础上加上预设时间。 1)date+法 如将期限设置为当前日期后的第N天的0时0分0秒,我们可以使用上述已谈到过的方法也可以使用如下格式: Response.Cookies(“LastView”).Expires=Date+N date+法是一种比较死的方法。它和上述方法差别不是很大,完全可以由上述几种方法代替。下面介绍now+法,这是一种比较灵活的方法,它可以将失效时间准确地定位到当前时间后的任意一年、一月、一天、一小时、一分、一秒。 2)now+法 先举一个例子: Response.Cookies(“LastView”).Expires = now+1 这条语句的功能是:把Cookie的失效时间限制到1天后的同一时刻。这里的1代表1天,即24小时。由于now代表当前Web服务器的系统时间,包括年、月、日、时、分、秒,则该语句所表达得Cookie 的失效日期在明天的同一时、分、秒上。若改成now+2则表示此Cookie 的失效日期在两天后的同一时、分、秒上;now+30表示此Cookie 的失效日期在一个月后的同一时、分、秒上;now+30*2表示此Cookie 的失效日期在两个月后的同一时、分、秒上;now+365则表示此Cookie 的失效日期在一年后的同一时、分、秒上…… 当把1分成24等份,即该语句变成: Response.Cookies(“LastView”).Expires = now+1/24则表示把Cookie的失效时间限制到一小时后。在此基础上,把1再分60等份,即把now+1/24改成 now+1/1440,则表示把Cookie的失效时间限制到一分钟后。这里的1440是由24*60得来。同理,要把Cookie的失效时间限制到十分钟后,则把程序变成Response.Cookies(“LastView”).Expires = now+10/1440;要把Cookie的失效时间限制到一秒钟后,则程序变成Response.Cookies(“LastView”).Expires = now+1/86400。当然,理论上把Cookie的失效时间限制到微秒级也是可以的。不过,那就没有什么实际意义了。另外,如果程序语句变成: Response.Cookies(“LastView”).Expires = now+1+1/1440则表示Cookie的失效时间为24小时零一分钟后。
2. cookie有过期时间吗
提示你“Cookie超时已过期,请重新登陆!” ,也就是上次cookie保留的时间已到期,须重新登陆保存。
其实Cookie中记载的资料相当有限,网站不可能通过Cookie获得你的Email地址或是其他私人资料。如果你想让浏览器拒绝网站存放Cookie到你的计算机,可按"工具→Internet选项",切换到"安全"标签,选择"自定义级别",找到Cookie部分,全都设为关闭,按下"确定"按钮后,再关闭浏览器即可。当你关闭Cookie之后,很多网站的个人化服务功能很可能也不能再使用了。
3. cookie设置过期时间无效
(1)cookie的有效期:
默认:会话周期结束(就是浏览器关闭),默认情况下,cookie会在浏览器关闭时失效,这种cookie是 临时cookie或者叫会话。
支持设置有效期,setcookie的第三个参数,可以对cookie的有效期进行设置,有效期采用一个时间戳来表示。(下面的这个就是设置了60秒,但是一分钟后不管浏览器是否关闭,这个cookie就失效)
4. 如何设置cookie的过期时间
Response.Cookies["user"].Expires=DateTime.Now.AddHours(-1); 这样就行重新设置ccokie的时间为已经过去的时间就过期了
5. 如果设置cookie时没有设置有效期
一、对保存到cookie里面的敏感信息必须加密
二、设置HttpOnly为true 该属性值的作用就是防止Cookie值被页面脚本读取。
三、设置Secure为true 给Cookie设置该属性时,只有在https协议下访问的时候,浏览器才会发送该Cookie。
四、给Cookie设置有效期 如果不设置有效期,万一用户获取到用户的Cookie后,就可以一直使用用户身份登录。
6. cookie不设置时间能保存多久
和电脑浏览器一样,为了提高访问网页的速度,手机中浏览器会采用累积式加速的方法,将你曾经访问的网页内容(包括图片以及cookie文件等)存放在手机里。
这个存放空间,我们就称它为缓存。
以后我们每次访问网站时,都会首先搜索这个目录,如果其中已经有访问过的内容,那就不必从网上下载,而直接从缓存中调出来,从而提高了访问网站的速度。
缓存定义:浏览器缓存(Browser Caching)是为了加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
它是网站访问统计最难解决的问题之一。
简单说:缓存跟人的记忆差不多.就是能准确的记住刚刚发生的事.是手机上网才有的.缓存一般来说可以让你快速浏览刚刚浏览过的网页.也可以减少上网流量。
注:Cookie是Web服务器保存在用户硬盘上的一段文本。
Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。
信息的片断以‘名/值’对(name-valuepairs)的形式储存。
”Cookies亦称CookieCookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。
Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。
当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
从本质上讲,它可以看作是你的身份证。
7. 设置cookie永不过期
关于两者的一些区别,根据自己的理解和网络技术人员的分享,回答如此。
1、存储位置不同
cookie的数据信息存放在客户端浏览器上。
session的数据信息存放在服务器上。
2、存储容量不同
单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。
对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3、存储方式不同
cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
4、隐私策略不同
cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。
session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
5、有效期上不同
开发可以通过设置cookie的属性,达到使cookie长期有效的效果。
session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
6、服务器压力不同
cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。
session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
7、浏览器支持不同
假如客户端浏览器不支持cookie:
cookie是需要客户端浏览器支持的,假如客户端禁用了cookie,或者不支持cookie,则会话跟踪会失效。关于WAP上的应用,常规的cookie就派不上用场了。
运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。
假如客户端支持cookie:
cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效。
session只能在本窗口以及子窗口内有效。
8、跨域支持上不同
cookie支持跨域名访问。
session不支持跨域名访问
8. 不给cookie设置过期时间
之前项目有一个需求,在下载文件的时候,在向后端发出请求的这段时间要有loading动画提高交互性。
但是当时后端只能以传统的向前端发送流的形式来下载,ajax派不上用场,只能用js去模拟,但是这样就监听不到后端的返回,只能等后端将数据流发送回来,浏览器自动弹出下载提示。
想了想,只能是后端返回的时候发送一个cookie: {downloading: true},然后我前端轮询这个字段,轮询到就将loading关闭,并将这个cookie删除。理论上来说好像是没什么毛病,但实际应用起来还是有一些坑的。
踩坑完毕,记录一下。
首先遇到的第一个坑就是发现cookie删不掉。
当然,这里说明一下,并不是js或者浏览器本身的机制不允许删除cookie,只是我删除的方式不对。
一开始我只是简单的将cookie设置为空,将expires设置为-1。心里想着,已过期,cookie自动清除,美滋滋,然而事实并没有按照我想的发生。downloading还是躺在cookie里面没有任何变化,是因为没有刷新吗?于是我在后面再次获取了一下:
console.log(document.cookie);
发现cookie里面确实还是有downloading这个字段。
没办法,打开application看看,果然发现了问题,后端传递过来的这个cookie没有设置expires,但是却默认设置了path,再联想我之前删除的cookie是没有带任何参数的,结合cookie的机制,发现了问题所在。
解决办法:
在删除cookie的时候要加上这个字段所带的参数,可能是出于安全的考虑,不同的参数,即使名字相同,也会当成两个cookie存储,所以我删除的并不是后端传过来的cookie,自然就删除不了。
第二个坑,后端设置cookie默认的path属性没有规律。
出于代码复用和性能考虑,后端的很多功能都会集成到一个API,再加上前端可能会用到一些第三方的框架,这些框架所采用过的设计模式都各不相同,都会造成一些不可预测的结果,而项目有可能在任何地方都会有下载的需求,所以当我发现如何删除cookie的时候,我又发现了一个坑,那就是不知道该如何准确获取cookie的path属性。而且如果你请求的接口默认path与你所在的url不匹配的话,浏览器将会忽略这次的cookie设置,在我的项目的直接体现就是,后端响应了cookie,但是我前端接收不到,页面loading无法消失,卡死了。
解决办法:
根据cookie的机制,当cookie的path属性为'/'的时候,cookie就不会被忽略。
所以解决办法就是让后端在set-cookie的时候讲path设置成固定的'/',以java为例:
Cookie cookie = new Cookie("Downloading","true");
cookie.setPath("/");
response.addCookie(cookie);
然后前端只要在监听到downloading字段的时候,再将path='/'的downloading删除就可以了。
9. cookie设置过期时间的方法
session采用发呆时间,默认是用户不操作超过20分钟即失效。cookie一般分两种。
1.不设置过期时间,会存在内存里,浏览器关闭即失效。
2.设置过期时间,会存在硬盘里,一直到过期时间才失效。
10. cookie不设置有效期多久过期
Cookie 是由 Internet 站点创建的、将信息存储在计算机上的文件,例如访问站点时的首选项。
例如,如果您在某家航空公司的站点上查阅了航班时刻表,该站点可能就创建了包含您的旅行计划的 Cookie。也可能只记录了您在该站点上曾经访问过的页面,由此帮助您下次访问该站点时自定义查看。Cookies 也可以存储个人可识别信息。个人可识别信息是可以用来识别或联系您的信息,例如您的姓名、电子邮件地址、家庭或工作单位地址,或者电话号码。然而,网站只能访问您提供的个人可识别信息。例如,除非您提供电子邮件名称,否则网站将不能确定您的电子邮件名称。另外,网站不能访问计算机上的其他信息 一旦将 cookie 保存在计算机上,则只有创建该 cookie 的网站才能读取它。使用 Cookie 时的选择 Internet Explorer 允许使用 Cookie;但是,可以更改隐私设置来指定 Internet Explorer 将 Cookie 放到计算机上之前给出提示(让您决定允许或阻止 Cookie);或者防止 Internet Explorer 接受任何 Cookie。可以删除的,只是以后你再访问某些网站的时候用户名密码什么的需要重新输入,网站不会记住了。