Cookie和Session

Cookie

  • Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。
  • Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。
  • 功能特点:
     1.在同一个页面中设置 Cookie,实际上是按从后往前的顺序进行的。如果要先删除一个 Cookie,再写入一个 Cookie,则必须先写入语句,再写删除语句,否则会出现错误
     2.Cookie是面向路径的。缺省路径(path)属性时,Web 服务器页会自动传递当前路径给浏览器,指定路径强制服务器使用设置的路径。在一个目录页面里设置的 Cookie 在另一个目录的页面里是看不到的
     3.Cookie 必须在 HTML 文件的内容输出之前设置;不同的浏览器(Netscape Navigator、Internet Explorer)对 Cookie 的处理不一致,使用时一定要考虑;客户端用户如果设置禁止 Cookie,则 Cookie 不能建立。 并且在客户端,一个浏览器能创建的 Cookie 数量最多为 300 个,并且每个不能超过 4KB,每个 Web 站点能设置的 Cookie 总数不能超过 20 个
  • 方法
方法描述
getDomain()返回cookie的域名
getMaxAge()返回cookie的存活时间
getName()返回cookie的名字
getPath()返回cookie适用的路径
getSecure()如果浏览器通过安全协议发送Cookie将返回true值,如果浏览器使用标准协议刚返回false值
getValue()返回cookie的值
getVersion()返回cookie所遵从的协议版本setComment(String purpose);设置cookie的注释
setPath(String url)设置Cookie的适用路径
setSecure(Boolean flag)设置浏览器是否仅仅使用安全协议来发送cookie,例如使用Https或ssl
setValue(String newvalue)cookie创建后设置一个新的值
setVersion(int v)设置cookie所遵从的协议版本

Session

  • Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。
  • 工作原理
     1.当一个session第一次被启用时,一个独一的标识被存储于本地的cookie中。
     2.首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。
     3.当执行PHP脚本时,通过使用session_register()函数注册session变量。
     4.当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。
  • 特点
     1.不是线程安全的,应该避免多个线程共享同一个Session实例;
     2.Session实例是轻量级的,所谓轻量级:是指他的创建和删除不需要消耗太多资源;
     3.Session对象内部有一个缓存,被称为Hibernate第一缓存,他存放被当前工作单元中加载的对象,每个Session实例都有自己的缓存。
  • 方法
方法描述
setAttribute()设置Session属性
getAttribute()返回Session属性
getAttributeNames()返回Session中存在的属性名
removeAttribute(String attribute)移除Session属性
getId()返回Session的ID。该ID由服务器自动创建,不会重复
getCreationTime()返回Session的创建日期。返回类型为long,常被转化为Date类型
getLastAccessedTime()返回Session的最后活跃时间。返回类型为long
getMaxInactiveInterval()返回Session的超时时间。单位为秒
setMaxInactiveInterval(int second)设置Session的超时时间。单位为秒

Cookie和Session

  • Cookie和Session的区别:
     1.Session是保存在服务器上的数据结构,用于跟踪用户的状态。此数据可以保存在群集、数据库、文件中。Cookie是客户端存储用户信息的机制。它用于记录有关用户的一些信息,是实现会话的一种方式。
     2.Cookie以文本文件格式存储在浏览器中,而session存储在服务端它存储了限制数据量。它只允许4kb它没有在cookie中保存多个变量。
     3.cookie的存储限制了数据量,只允许4KB,而session是无限量的。
     4.我们可以轻松访问cookie值但是我们无法轻松访问会话值,因此它更安全。
     5.设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值