[置顶] Java基础你要知道的事情------Cookie
2017-09-28 14:10
155 查看
1.为什么需要cookie,cookie是什么
—http是无状态的,不保存每次通信的状态,为了解决此问题,搞出cookie
—Cookie是请求头域和响应头域的字段。简单地说,就是伴随请求和响应的一组键值对的文本,小文本。所以称之为”Cookie“饼干。Cookie的生命来源于服务器。首先是客户端请求服务端,此时请求为第一次,无Cookie参数。这时候,服务端setCookie发送给客户端。记住,Cookie来源自服务端。
—Cookie来源自服务端,当然服务于客户。就像你我的会话,文字是在我们之间传递的。所以Cookie用于服务端和客户端的会话。因为Http协议是无状态的,Cookie就是维持会话,说白了就是传递数据的额外媒介。
![](http://www.bysocket.com/wp-content/uploads/2015/06/Cookie-Work_thumb.png)
2.模拟cookie的一生
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怎么用,干嘛用
—http是无状态的,不保存每次通信的状态,为了解决此问题,搞出cookie
—Cookie是请求头域和响应头域的字段。简单地说,就是伴随请求和响应的一组键值对的文本,小文本。所以称之为”Cookie“饼干。Cookie的生命来源于服务器。首先是客户端请求服务端,此时请求为第一次,无Cookie参数。这时候,服务端setCookie发送给客户端。记住,Cookie来源自服务端。
—Cookie来源自服务端,当然服务于客户。就像你我的会话,文字是在我们之间传递的。所以Cookie用于服务端和客户端的会话。因为Http协议是无状态的,Cookie就是维持会话,说白了就是传递数据的额外媒介。
![](http://www.bysocket.com/wp-content/uploads/2015/06/Cookie-Work_thumb.png)
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怎么用,干嘛用
相关文章推荐
- [置顶] Java基础你要知道的事情------抽象与接口
- [置顶] Java基础你要知道的事情------集合框架之ArrayList
- [置顶] Java基础你要知道的事情------HTTP基础
- [置顶] Java基础知识点
- [置顶] 如何做到有扎实的 Java 基础
- [置顶] android开发之java的一些基础知识详解,java编程语法,扎实自己的android基本功
- [置顶]《与Java相恋》(初级篇)四-Java面向对象编程基础(一)
- [置顶] 零基础学习java,先从基础书籍入手
- Java Web day(6)之jsp&Cookie&HttpSession基础
- Java中关于bit操作你必须要知道的事情
- Java基础总结篇--JavaSE你必须要知道的基础
- [置顶] 【Javaweb】Cookie应用——显示用户上次访问网站的时间
- [置顶]java开发之基础篇2
- [置顶] JAVA-语言基础-流程控制的三种结构
- [置顶] Java基础
- Java基础学习总结(10)—— Cookie/Session机制详解
- JavaWeb基础 Cookie maxAge大于0 等于0
- [置顶] Java基础入门-IO输入输出流
- Java基础总结篇--JavaSE你必须要知道的基础
- [置顶] Java基础知识点