Cookie和Session
区别
- Cookie存储与浏览器(客户端),一个cookie就是一个键值对,当服务器要设置cookie时,会在响应头(response header)中设置
Set-Cookie
属性,可以设置的属性有cookie的name和value,path,max-age以及过期时间等。浏览器以后向服务器发起请求时会检查请求的url和cookie的path是否一致,或者请求的url是否是设置的path下的子路径,如符合请求就会自动带上cookie信息。
注意:当服务器设置了多个cookie时,响应头中会有多个Set-Cookie
。
- Session存在于服务器端。Session创建后会将JSESSIONID存储与cookie中。浏览器每次向该服务器发起请求时,都会携带这个id。当浏览器关闭后,会话自动关闭,浏览器会自动删除JSESSIONID。若服务器宕机浏览器窗口未关闭,此时id仍会保存,向服务端发起请求时会调用getSession方法重新创建一个session。
优缺点
- Cookie可以存储的信息大小有限,且只可以存储字符信息,容易被伪造和盗用。