您的位置:首页 > 编程语言 > Java开发

[置顶] Java基础你要知道的事情------Cookie

2017-09-28 14:10 155 查看
1.为什么需要cookie,cookie是什么

—http是无状态的,不保存每次通信的状态,为了解决此问题,搞出cookie

—Cookie是请求头域和响应头域的字段。简单地说,就是伴随请求和响应的一组键值对的文本,小文本。所以称之为”Cookie“饼干。Cookie的生命来源于服务器。首先是客户端请求服务端,此时请求为第一次,无Cookie参数。这时候,服务端setCookie发送给客户端。记住,Cookie来源自服务端。

—Cookie来源自服务端,当然服务于客户。就像你我的会话,文字是在我们之间传递的。所以Cookie用于服务端和客户端的会话。因为Http协议是无状态的,Cookie就是维持会话,说白了就是传递数据的额外媒介。



2.模拟cookie的一生

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns="/cookie")
public class CookieServletT extends HttpServlet
{
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
// 获取Cookie
Cookie[] cookies = req.getCookies();
for (Cookie cookie : cookies)
System.out.println(cookie.getName() + " " + cookie.getValue());

// 创建Cookie
Cookie cookie = new Cookie("CookieName", "CookieValue");
cookie.setMaxAge(10);
cookie.setHttpOnly(true);
resp.addCookie(cookie);

// 响应
PrintWriter pw = resp.getWriter();
pw.print("<html><body><h1>Hello,Cookie!</h1></body></html>");
}

}


3.Cookie传输小结

① 客户端访问,无服务端写入的Cookie

② 服务端的Cookie写入浏览器

③ 浏览器解析Cookie,保存至浏览器文件

④ 客户端访问,有服务端写入的Cookie

⑤ 服务器获取

4.谈Cookie的作用到XSS(跨站点脚本攻击)

Cookie没有病毒那么危险,但包含敏感信息。比如最常见的记住密码,或者一些用户经常浏览的网页数据。

用户不希望这些泄露,甚至被攻击。但事实上存在这个攻击,究竟怎么攻击呢?请看跨站脚本攻击XSS 跨脚本攻击XSS 一文中也详细介绍并提出解决方案。

全名:Cross Site Script,中文名:跨站脚本攻击。顾名思义,是指“HTML注入”纂改了网页,插入恶意的脚本,从而在用户用浏览网页的时候,控制用户浏览器的一种攻击。

5.总结

回顾全文,Cookie是HTTP协议中的一种会话机制。也明白下面两个问题就好了

1、What 什么是Cookie

2、How Cookie怎么用,干嘛用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: