【cookie的简单介绍】
文章目录
前言
之前在做第15个war包的时候,遇到了挺多困难,其中之一就是cookie。在通过网上查询资料学习之后整理了如下的笔记。(其实在学习过后依然还是模模糊糊的,大概整个流程稍微懂,具体到代码又头昏了呜呜呜)
一、什么是cookie?
Cookie是由我们使用浏览器访问的网站创建的文件。 该文件或cookie包含有关我们以及我们对特定网站的访问的一些信息。 Cookies是网站或Web应用程序用于存储信息的非常流行的机制,几乎每个站点都会创建一些Cookie Web浏览器。
二、cookie的作用
当我们打开一个网站后,如果我们曾经登录过这个网站,那么当我们再次打开这个网站时,就不需要再登录了,进而继续正常使用。
三、cookie的组成
cookie的组成在浏览器中展示形式:
rookie的常用属性的解释:
- Name:这个是cookie的名字
- Value:这个是cooke的值
- Domain:域,表达这个cookie是属于哪个网站的
- Path:这个定义了Web站点上可以访问该Cookie的目录
- Expires:这个值表示cookie的过期时间,也就是有效值,cookie在这个值之前都有效
- Size:这个表示cookie的大小
- Secure:是否使用安全传输
- HttpOnly :用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。
四、Cookie的HTTP传输
cookie在HTTP请求中表现形式(正好拿第15个war包作参考):
Tips:我们在发送HTTP请求时,发现浏览器将我们的cookie都进行了携带(注意:浏览器只会携带在当前请求的url中包含了该cookie中path值的cookie),并且是以key:value的形式进行表示的。多个cookie用;进行隔开。
五、Cookie使用的常见方法
1.服务端设置:
- new Cookie(String name, String value):创建一个Cookie对象,必须传入- - cookie的名字和cookie的值
- getValue():得到cookie保存的值
- getName():获取cookie的名字
- setMaxAge(int expiry):设置cookie的有效期,默认为-1。这个如果设置负数,表示客服端关闭,cookie就会删除。0表示马上删除。正数表示有效时间,单位是秒。
- setPath(String uri):设置cookie的作用域
HttpServletRequest和HttpServletResponse对Cookie进行操作的常见方法:
- response.addCookie(Cookie cookie):将cookie给客户端进行保存
- resquest.getCookies():得到客服端传过来的所有cookie对象
2.客户端设置:
既然cookie是存放在浏览器端的,所以浏览器向JS公开了接口,让其可以设置cookie
1. document.cookie = "键=值; path=?; domain=?; expire=?; max-age=?; secure";
- 在客户端设置cookie,大体和服务器设置cookie的格式一样,只是有下面的不同
- 没有httponly。因为httponly本来就是为了限制在客户端访问的,既然你是在客户端配置,自然失去了限制的意义。
- path的默认值。在服务器端设置cookie时,如果没有写path,使用的是请求的path。而在客户端设置cookie时,也许根本没有请求发生。因此,path在客户端设置时的默认值是当前网页的path
- domain的默认值。和path同理,客户端设置时的默认值是当前网页的domain
- 删除cookie:和服务器也一样,修改cookie的过期时间即可
总结
五一假期过了5.1就没了呜呜呜,开摆!!!
以上就是对cookie的简单介绍,若有错误还望指出。
若想了解更详细的cookie可参考此处:rookie百度百科.