【一】
cookie概念解析:cookie是一种保存在客户端的小型文本文件,用于保存服务器通过set-cookie字段返回的数据,在下次请求服务器道德时候通过cookie字段将内容返回发送给服务器,是http进行客户端维护的一中方式,并且cookie有生命周期,在超过生命周期的时候cookie文件将会失效被删除。
关于c选项,http协议中,注定了这玩意不是加密发送的而是明文发送的,密文需要https协议
【二】
cookie可以记录用户的id,记录用户的密码,记录用户浏览过的商品记录,但是无法记录用户的浏览器设置,这玩意是浏览器行为并不涉及到某次请求的信息
关于cookie几个设置的相关设定
domain:可以访问cookie的域名,如果设置为.google.com则所有以.google.com为结尾的域名都可以访问该cookie,但是一定要注意第一个字符必须为.
path:cookie的使用路径,如果设置为/sessionWeb/则只有contexPath的程序可以访问该cookie,如果设置为/,则本域名下contexpath都可以访问这个cookie,注意最后一个字符必定是/
hhtponly:如果cookie中设置了httponly属性,那么通过js脚本将无法读取到cookie信息,这样就能有效的防止xss攻击,窃取cookie内容,但不是绝对的防止攻击,计算机领域只有相对没有绝对。
secure:该cookie是否仅被使用安全协议传输,安全协议,安全协议有HTTPS,SSL等,在网络上传输数据前先加密,默认为false。
expires:指定了cookie的生存期,默认情况下cookie都是暂时存在的,他们存储的值仅仅在会话期存在,当用户退出浏览器之后这些值也会丢失,如果想让cookie存在一段时间,就要为expires属性设置为未来的一个过期日期,现在的这个属性已经被max-age所取代,max-age用秒来设置cookie的生存期。
cookie是一种保存在客户端的小型文本文件,用于保存服务器通过Set-Cookie字段返回的数据,在下次请求服务器时通过Cookie字段将内容发送给服务器。是http进行客户端状态维持的一种方式,但是cookie不断的传递客户的数据存在一定的隐私隐患(比如人为的篡改),因此有了session管理机制
session服务器为了保存客户状态而创建的临时会话,或者说一个特殊的对象,保存在服务器中,将会话ID通过cookie进行传输就行,就算会话id被获取利用,但是session中的数据并不会被恶意程序获取,这一点相对cookie来说是安全了一点,但是成本是非常高昂的,需要建立专门的session集群服务器,并且这个服务器会占据大量的存储空间(需要保存每个客户端的信息)。
session默认有效期为30分钟,cookie没有设置expires属性时,cookie的生命周期只是在当前的会话中,关闭浏览器就意味着此次会话的结束,相对应的cookie随之失效
一般情况下session是通过cookie来传递session_id来实现的,禁用cookie则session就没法用了,但是劳动人民的智慧是无限的,可以将seesion_id附着在url中来实现,也就是session并不完全依赖cookie来实现。