文章目录
前言
平时经常听到cookie这个词,但是却不知道它是用来干嘛的,今天我也想在这里记录一点我自己对于cookie的理解。
一、http会话
- 在计算机术语中,会话是指一个终端用户与交互系统进行通讯的过程,比如从输入账户密码进入操作系统到退出操作系统就是一个会话过程。
- 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据。
例如,一旦用户验证自己的Web服务器,她的下一个HTTP请求(GET或POST)不应导致Web服务器再要求她的帐户和密码。 - HTTP是无状态协议,它没有提供内置方法来对一系列由相同用户发起的请求进行识别。客户程序每次读取Web页面,都打开到Web服务器的单独的连接,并且服务器也不自动维护客户的上下文信息。
- Web应用程序如果想要为来自同一个用户的请求保留状态或数据的话,这一般可以通过以下几个方法实现:Cookie、URL重写、隐藏表单项目
二、Cookie介绍
1.简介
- Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。
- Cookie是网站存放在客户端(浏览器)、并能在网站和浏览器之间传递的一小段数据
- Cookie概念来自于“magic cookie”——在计算机领域中用来描述程序接受并原样发出的一组数据
- 一般用于记录用户名密码、根据用户的偏好定制站点、定向广告。
- 也被称为HTTP Cookie、Web Cookie或者Browser Cookie
2.为什么需要Cookie
- HTTP协议是无状态的,浏览器对网站的每一次访问都是独立的事件
- 为浏览器和web服务器之间的交互提供一种状态管理机制
- 它将零散的访问、无状态的请求变得有序并富有记忆,极大地提升了互联网的用户体验
3.Cookie的主要用途
会话管理
- 记录用户的登录状态是cookie的常见用途,免去用户多次认证和登录网站
- 记录用户的访问状态和数据,特别是在需要多次访问的交互流程中,典型应用的是用户的“购物篮”
个性化
- 用来记忆访问过网站的用户相关信息,以便下次为用户显示。
- 用来记忆用户自定义的一些功能,以便下一次访问时服务器能根据用户本地的cookie来进行配置。
- 记录和跟踪用户行为
4.Cookie的传送

5.Cookie API
javax.servlet.http.Cookie类用于创建一个Cookie,response接口中定义了一个addCookie方法,它用于在其响应头中增加一个相应的Set-Cookie头字段。
同样,request接口中也定义了一个getCookies方法,它用于获取客户端提交的Cookie。
Cookie类的属性
-
Name-Value属性:必须指定,其格式为name=value
-
其他属性:
(1)Domain和Path:设置Cookie作用的域名和路径
(2)Expires或Max-Age:Cookie的过期时间或者最长寿命
(3)Secure:设定Cookie只用于HTTPS安全连接
(4)Httponly:设定Cookie只能用于HTTP协议,而不能通过非HTTP方法(例如JavaScript)使用
备注:在以上属性中,只有Name-Value会由浏览器传送给Web服务器,其它属性只是告诉浏览器何时删除Cookie、是否允许或阻止Cookie发送等
Cookie类的方法
- public Cookie(String name,String value)
- setValue与getValue方法
- setMaxAge与getMaxAge方法 (秒)
- setPath与getPath方法
- setDomain与getDomain方法
- getName方法
总结
Cookie 是一些数据, 存储于你电脑上的文本文件中。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie 的作用就是用于解决 “如何记录客户端的用户信息”。
本文详细介绍了HTTP Cookie的概念及其在Web开发中的重要性。包括Cookie的工作原理、主要用途如会话管理和个性化,以及Cookie的传送和API使用方法。
1633

被折叠的 条评论
为什么被折叠?



