zoukankan      html  css  js  c++  java
  • Cookie与Session

    • HTTP协议是无连接无状态协议
    • 服务器可以向客户端写内容
    • Cookie只能是文本内容
    • 客户端可以阻止写Cookie
    • Cookie分为两类,一是属于窗口子窗口的,存在内存中。二是基于文本的,放在cookie的文件中。
    • Cookie跨域访问。
    • 父路径设置的Cookie,子路径可以访问读取。子路径设置的Cookie,父路径不能读取到。路径是URL,不是真实文件路径。

    写Cookie:

    Cookie cookie=new Cookie(“cookiename”,”CookieValue”);

    response.addCookie(cookie);

    cookie.setMaxAge(3600);

    读Cookie:

    Cookie[] cookies=request.getCookies();

    Cookie cook=cookies[0];

    cook.get

    Session

    Cookie是将信息保存到客户端,只能存字符串,大小为4k.有过期时间,可以设置过期时间。

    Session是将信息存在服务器端。可以存任意类型,大小没有限制,也可以设置过期时间。

    保存Seesion:

    HttpSession session=request.getSeesion(true);//true找不到则创建一个

    HttpSession是一个接口。

    session.getId();

    session.getAttribute(“name”);

    session.setAttribute(“name”,value);

    session.getCreationTime();

    session.getLastAccessedTime();

    有父子关系的浏览器窗口中可以去到Session的值。

    建立session的时候会像客户端传一个cookie,存的是sessionID的值。

    request.getRequestedSessionID() 获取从客户端带过来的sessionID值。

    request.isRequestedFromCookie() sessionID是否是从cookie中获取的。

    request.getRequestURL().tostring() 获取请求的URL地址。

    response.encodeURL(request.getRequestURL()):URL重写,解决客户端禁止了Cookie导致Session无用的问题。维护客户端与服务器之间的会话状态。

    Session总结:

    1.是服务器的一块内存。(key-value)

    2.和客户端窗口(及子窗口)对应。

    3.有过期时间。客户端和服务器有对应的SessionID.

    4.维护客户端与服务器端对应,防止禁用Cookie导致的问题:内存Cookie,URL重写。

  • 相关阅读:
    too many open files linux服务器 golang java
    fasthttp 文档手册
    syncer.go
    grpc.go
    stm.go
    session.go
    mutex.go
    [HTML5]label标签使用以及建议
    禁止使用finalize方法
    [支付宝]手机网站支付快速接入
  • 原文地址:https://www.cnblogs.com/guaniu/p/2318625.html
Copyright © 2011-2022 走看看