浅谈HTTP协议中的Cookie和Session

  1. cookie原理

    客户端发起请求时如果没有通行证,服务器就会在响应内容里给客户端颁发通行证;
    之后,客户端所有请求都附带通行证,这样服务器就知道当前请求是谁发出的
    cookie与域名绑定,浏览器会识别域名,防止cookie被其他域名绑定
    每次请求都要携带cookie,因此cookie不能太过庞大

    cookie通过键值对保存数据

     String name:cookie的名称,一旦创建不会变化
     Object value:cookie的值
     int maxAge:失效时间(单位秒,负数代表临时cookie,关闭浏览器即失效,为0表示将删除,默认-1)
     boolean secure:仅安全协议传输(默认false)
     String path:指定该域名下哪些路径可以使用该cookie(以/结尾)
     String domain:域名(以.开头)
     String comment:说明
     int version:cookie遵循的版本号(0或者1)
    

    cookie保存用户名密码的三种方法

     账号密码直接存在cookie,访问时直接与服务器数据库比较(方便,不安全)
     密码加密保存在cookie,访问时解密与服务器数据库比较(也可以不保存密码,而是保存时间戳验证)
     账号密码按照加密规则加密后一起保存在cookie,访问时验证加密规则是否匹配即可(无需查询数据库)
    
  2. session原理

    服务器有个记录表,接收到客户端请求后,会在表中查找该客户,找不到就会记录一份客户信息内容,找得到就直接读取客户上次的状态。
    大量用户访问时,可能导致session过多而内存溢出,因此session内容也要尽量精简
    只有访问动态资源才会触发session,访问时无论是否读写session,session都会更新状态(时间)
    session需要cokkie作为识别标志(不然还是不知道是哪个客户啊),使用session时,默认生成的cookie的maxAge值为-1(只在当前窗口有效)

博客:万里无云可别下雨

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值