Cookie和Session这么简单?

Cookie

一,会话技术
1,会话:一次会话中包含了多次请求和响应。一次会话就是浏览器第一次给服务器资源发送的请求。
2,功能:在一次会话的范围的多次请求间进行数据共享,直到其中一方断开为止。
3,会话技术

  • cookie:客户端会话技术

  • session:服务器端会话技术

  • 1,cookie介绍:将数据保存在客户端浏览器的

  • 2,使用步骤:
    1,创建cookie对象,new cookie(string name,string value)
    2,发送cookie:response.addcookie(cookie cookie)
    3,获取cookie:request.getcookies():返回的是一个cookie对象数组
    常用的方法:
    .getname( ):获取cookie的键名
    .getvalue( ):获取cookie的值

  • 3,实现原理:
    基于响应头set-cookie和请求头cookie实现

  • 4,cookie细节
    1,一次可以发送多个cookie,你可以创建多个cookie对象,使用response多次调用add cookie方法进行发送cookie。
    2,cookie在浏览器中保存的时间?
    答:cookie默认的时间是一次会话,即有一方断开就会清除,但是它有一个方法,setmaxage(int seconds)可以设置存活的时间
    正数:代表关闭后可以存活多少秒
    负数:默认值,一次会话
    0:清除cookie信息
    3,cookie能不能存中文?
    答:在tomcat8以后可以存中文,以前的版本不支持,不过可以转成URL编码进行存储,但是特殊字符还是不支持,那就要转成其他编码了。
    4,cookie的获取范围?
    答:默认的是当前虚拟项目下,但是可以设置setpath(“/”):整个服务器下都可以获取
    当然也可以设置setdomain(“”)一级域名,来扩大获取cookie的范围。

  • 5,cookie的特点和作用
    (1),cookie存储在浏览器
    (2),浏览器对单个的cookie有大小限制(4KB),同样一个浏览器对同一个域名下的总cookie数目不超过20个
    作用:
    1,cookie一般存储少量不太敏感的信息
    2,可以完成在不登陆下,完成服务器对用户身份的识别

Session

  • 服务器端会话技术:在一次会话的多次请求间进行共享数据,将数据保存在服务器端的对象中

  • 步骤:
    1,获取httpsession对象:request.getsession()
    2,使用httpsession对象:object getatribute(string name)获取数据
    void setattribute(string name,object value)
    removeattribute(string name)
    3,服务器如何保证在一次会话内的多个请求间的seesion是同一个对象
    原理是基于cookie的Cookie和Session这么简单?_第1张图片
    假如我们想要使客户端关闭后,seesion仍然相同,就可以设置一个cookie值,然后进行存储JSSEIONID getid()就可以了,需要设置cookie的存在时间。

  • 3,session的细节

    1,当客户浏览器关闭,服务器不关闭时,两次获取的seesion是同一个吗?

    :默认情况下不是,但是我们可以设置一个cookie值,然后进行存储JSSEIONID getid()就可以了,需要设置cookie的存在时间。

    2,客户端不关闭,但是服务器端关闭,两次获取的session是一样的吗?

    :不是同一个,但是要保证数据不丢失
    session的钝化:在服务器正常关闭的之前,将session对象系列化到硬盘上
    session的活化:在服务器启动后,将session文件转化为内存中的session对象即可。
    当然本地的tomcat已经帮我们做过了。

    3,session的失效时间?

    1,服务器关闭
    2,seesion对象调用了invalidate()
    3,一般的默认时间是30分钟,当然你也可以修改配置文件里的时间。

  • 4,session的特点

    1,session用于存储在一次会话的多次i请求数据,存在服务器端
    2,session可以存储任意类型的数据,而且没有大小的限制

  • 5,cookie和session的区别
    1,session存储数据在服务器端,cookie存储在浏览器端
    2,cookie限制大小在4KB,而session没有限制
    3,cookie的数据相对不太安全,session比较安全

你可能感兴趣的:(java,session,cookie,js)