1.cookie

1.cookie的工作原理


(1)浏览器端第一次发送请求到服务器端
(2)服务器端创建Cookie,该Cookie中包含用户的信息,然后将该Cookie发送到浏览器端
(3)浏览器端再次访问服务器端时会携带服务器端创建的Cookie
(4)服务器端通过Cookie中携带的数据区分不同的用户
————————————————
原文链接:https://blog.csdn.net/chen13333336677/article/details/100939030

2.能够记录用户访问次数

代码:

    // 写cookies
    function addCookie(name,value,expiresDays) {
        var cookieString = name + " = " + escape(value);
        cookieString = cookieString + "; expires = " + date.toGMTString();
        document.cookie = cookieString;
    } 

    //读取cookies
    function getCookie(name) {
        var strCookie = document.cookie; 
        var arrCookie = strCookie.split(";"); 
        for(var i = 0; i < arrCookie.length; i++) {
            var arr = arrCookie[i].split("="); 
            if (arr[0] == name) return arr[1];
        } 
        return ""; 
    }

    var counter = getCookie('counter');
    if (!counter) counter = 1;
    else counter = parseInt(counter) + 1;
    addCookie('counter', counter, date);
    document.getElementById('counter').innerHTML = "您好,这是您第" + counter + "次浏览本页面!";
————————————————
版权声明:本文为CSDN博主「HGQ_Boy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HGQ_Boy/article/details/79810985

3.cookie的主要用途:

  • 会话管理:登陆、购物车等应该记住的其他内容
  • 个性化:用户偏好、主题或者其他设置

  • 追踪:记录和分析用户行为

4.cookie的分类:

带httponly属性的cookie

response.setHeader( "Set-Cookie" , "cookiename=httponlyTest;Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");
  例如:
//设置cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly")


//设置多个cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");

response.addHeader("Set-Cookie", "timeout=30; Path=/test; HttpOnly");


//设置https的cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; Secure; HttpOnly");

具体参数的含义再次不做阐述,设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取。

Cookie cookies[]=request.getCookies(); 
————————————————
原文链接:https://blog.csdn.net/qq_38553333/article/details/80055521

5. cookie是不可跨域名.

Cookie cookie = new Cookie("time","20080808"); // 新建Cookie
cookie.setDomain(".helloweenvsfei.com");           // 设置域名
cookie.setPath("/");                              // 设置路径
cookie.setMaxAge(Integer.MAX_VALUE);               // 设置有效期
response.addCookie(cookie);                       // 输出到客户端

同域名下可以跨端口(也可以理解为不能跨IP地址)

6.cookie的修改和删除

Cookie并不提供修改、删除操作。如果要修改某个Cookie,只需要新建一个同名的Cookie,添加到response中覆盖原来的Cookie。

7.cookie的setSecure(boolean secure)

代码(在服务器端):

全局设置Session-Cookie相交互部分属性
@WebListener
public class SessionCookieInitialization implements ServletContextListener {
private static final Log log = LogFactory
   .getLog(SessionCookieInitialization.class);

public void contextInitialized(ServletContextEvent sce) {
  log.info("now init the Session Cookie");

  ServletContext servletContext = sce.getServletContext();

  SessionCookieConfig sessionCookie = servletContext
    .getSessionCookieConfig();
  sessionCookie.setName("YONGBOYID");
  sessionCookie.setPath(servletContext.getContextPath());
  sessionCookie.setHttpOnly(true);
  sessionCookie.setSecure(false);

  log.info("name : " + sessionCookie.getName() + "\n" + "domain:"
    + sessionCookie.getDomain() + "\npath:"
    + sessionCookie.getPath() + "\nage:"
    + sessionCookie.getMaxAge());

  log.info("isHttpOnly : " + sessionCookie.isHttpOnly());
  log.info("isSecure : " + sessionCookie.isSecure());
}

public void contextDestroyed(ServletContextEvent sce) {
  log.info("the context is destroyed !");
}
}
引自:
https://developer.aliyun.com/article/636115

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值