1. 基于 cookie 的客户端本地信息凭证存储机制
cookie——在客户机上存储的、与服务器通信而存储的状态、安全等信息,其格式为文本文件。
2.cookie 产生、存储与再利用的基本过程
用户通过浏览器发送 request. 针对用户请求,服务器端 jsp 脚本根据需要可以创建 cookie 信息,经 response 发给客户浏览器. 客户浏览器,在本机中存储相应的 cookie 信息; 当该客户发起另一个 request 时,在 http 请求的 header 部分,会同时发送 cookie 信息给服务器; 此时,服务器端 jsp 可获取该 cookie 信息,并决定后续处理过程.
3.HTTP 请求+cookie 认证的交互流程
3.cookie 的类型与安全性
【1】cookie 总是保存在客户端中,按在客户端中的存储位置,可分为内存 cookie 和硬盘 cookie。 内存 cookie:由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。 硬盘 cookie:保存在硬盘中,有过期时间(expired time);除非用户手工清除或过期,其不会被删除. 【2】按存储时间分类:可分为非持久 cookie 和持久 cookie。 cookie 的安全性 cookie 以明文(文本文件)方式存储在用户计算机中。 cookie 的查看: 可通过浏览器查看和管理; 网页中的 javascript 可以存取 cookie; 恶意 javascript 脚本注入可提取 cookie; 第三方网站会连带传送 cookie; cookie 的安全性 存在易被黑客利用或泄露用户隐私问题,故其安全性应着重考虑——搜索 cookie 安全.
4.JSP/Servlet 中 cookie 类中的方法
5.为用户浏览器智能设置 cookie 的 JSP 程序
<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.*, java.net.*" %>表单输入参数查看 <% //检查用户端是否已存在名为 course_cookie 的 cookie,若有,则取得该对象 final String CK = "course_cookie"; cookie ck0 = null; cookie[] cookies = request.getcookies(); //取得 request 时同时发送的 cookies for(cookie ck : cookies) { //枚举查看每个 cookie 的名称 String cname = ck.getName(); out.print(cname); if (cname.equals(CK)) { ck0 = ck; out.print("(found):" + ck.getValue()); } out.print("
"); } if (ck0 == null) { //若未发现响应的 cookie,则新建,名称和值不含空格、[ ] ( ) = , " / ? @ : ; cookie cookie = new cookie(CK,"这是一个课内设置的 cookie."); cookie.setMaxAge(60); //cookie 在客户浏览器端 1 分钟后失效 response.addcookie(cookie); // 在响应头部添加 cookie out.println("已在你的浏览器端设置了 cookie,请查看"); } else out.print("您的 cookie 已经存在."); %>
好了。今天的分享就到这里了。点赞哦。



