您的位置:首页 > 其它

Cookie简述

2015-11-30 15:54 369 查看
1. 什么是Cookie

Cookie是HTTP协议的规范之一,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据

首先由服务器通过响应头把Cookie传输给客户端,客户端会将Cookie保存起来。

当客户端再次请求同一服务器时,客户端会在请求头中添加该服务器保存的Cookie,发送给服务器。

2. HTTP协议指定的Cookie规范

Cookie通过请求头和响应头在服务器与客户端之间传输;

Cookie大小限制在4KB之内;

一台服务器在一个客户端最多保存20个Cookie;

一个浏览器最多可以保存300个Cookie;

(但是浏览器并没有完全遵守)

3.Cookie作用

服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最型典

型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化

登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网

站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。

4. Cookie与请求头和响应头

服务器向客户端发送Cookie的响应头为Set-Cookie,例如:Set-Cookie:cookiename=cookievalue

客户端向服务器发送Cookie的请求头为Cookie,例如:Cookie:cookiename=cookievalue

5. Servlet中向客户端发送Cookie

Cookie cookie1 = new Cookie("Name", "Tom");

response.addCookie(cookie1);

6. Servlet中获取客户端发送过来的Cookie

Cookie[] cookies = request.getCookies();

if(cookies != null) {

for(Cookie c : cookies) {

System.out.println(c.getName() + ":" + c.getValue());

}

}

-------------------------------------------------

a.jsp保存Cookie,b.jsp获取Cookie

-------------------------------------------------

a.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'a.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>
<body>
<%
Cookie cookie1 = new Cookie("name","Tom");
response.addCookie(cookie1);
Cookie cookie2 = new Cookie("number","101");
response.addCookie(cookie2);
%>
</body>
</html>
b.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'b.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<%
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(Cookie c:cookies){
out.print(c.getName()+":"+c.getValue());
out.write("<br/>");
}
}
%>
</body>
</html>
*Cookie相关

1.Cookie生命周期

默认浏览器关闭后清除

*设置Cookie生命时长方法:

cookie.setMaxAge(intValue);

——intValue的单位为秒,表示Cookie的有效时间

2.Cookie路径

Cookie路径是指Cookie归还给服务器路径

Cookie路径是服务器创建改Cookie是设置的

默认路径:当前页面所在目录

3.Cookie的域

由于不同项目Cookie的共享
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: