在很久很久以前,刚有浏览器和网页的时候,web开发者发现了一个问题,我必须要在客户端这边保存一些东西才能实现某些功能,比如大家喜闻乐见的购物车、用户登录、自动登陆等。但是客户端只有一个浏览器,怎么在用户也就是客户端那边保存数据呢?于是大佬们一拍桌子,Cookie就诞生了!
我把Cookie理解为一个键-值形式存储再加上有效时间的一个容器,除此之外Cookie还有一个作用范围的概念(作用范围指的是域和路径,域的意思是根域名和端口,除非在设置cookie的时候特别指定域名),可以认为在同一个域里面的页面共享Cookie。Cookie的获取和设置命令都是写在 HTTP 请求或者响应头里的(也就是你要是已经开始发 HTTP 响应正文之后就不能对 Cookie 做写操作了)。
但是 Cookie 保存在浏览器本地就有个问题,这TM是明文的,容易被别有用心的软件看到。 而且不能随心所欲的更改和读取。
于是大佬们又一拍桌子就发明了Session,

Session 和 Cookie 一样也是以键值对的形式存取,只是保存的地方不一样,Cookie保存在用户端(也就是浏览器,或者是其他什么HttpClient里),但是Session的内容是保存在服务器上的。
这样就有个问题,服务器怎么知道哪个客户端对应哪个Session?

于是就在浏览器放一个叫做 SessionID 的东西用Cookie保存。

所以当你在JSP里打开了session之后,你会发现在浏览器的cookie里会多一个JSESSIONID=xxx的一个cookie项,
当然这是默认的键名,你需要的话可以改。
 
总结,Cookie和Session的用途和存储方式差不多,只是一个存储在客户端,一个存储在服务端,Session 既然存放在服务端,为了标识客户端,就在客户端的Cookie里放置一个SessionID,在使用上Session更灵活更安全。
欢迎补充与纠错。
 
本博客内容与代码均为作者Jarvis原创,如若转载请注明。

Session与Cookie间不得不说的一些事的更多相关文章

  1. 详解SESSION与COOKIE的区别

    在PHP面试中 经常碰到请阐述session与cookie的区别与联系,以及如何修改两者的有效时间. 大家都知道,session是存储在服务器端的,cookie是存储在客户端的,session依赖于c ...

  2. Session和Cookie深度剖析

    Session和Cookie的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案.同时我们也看到,由于采用服务器端保持状态的方案在客户端 ...

  3. node.js web开发:EXPRESS 4.x 以上使用session和cookie 的记录

    关于session 和cookie 我搞了2-3天, 发现这个玩意也挺麻烦的. 很多教程都是把这种会话保存在nosql里面,比如mongo,或者redis等等.但是我还是想直接保存在计算机的内存中,比 ...

  4. Session,Cookie,jsessionid,Url重写

    在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码: < % cookie[]cookies ...

  5. session和cookie详解2

    http 之session和cookie http://www.cnblogs.com/ForEverKissing/archive/2008/05/23/1205503.html Session简介 ...

  6. 【转】session和cookie详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  7. Session和Cookie总结

    一.Session和Cookie 1.Cookie 1.cookie创建于服务器,保存于浏览器,保存了特定网站操作记录和资料凭证的信息. 2.未设置cookie期限的时候,默认是关闭浏览器后cooki ...

  8. (转)浅谈Session与Cookie的区别与联系

    一.Session的概念 Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标 ...

  9. session 和 cookie (转)

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

随机推荐

  1. sql server在使用xp_cmdshell

    一.sql server在使用xp_cmdshell读取远程服务器上的文件时,要先将远程服务器的目录映射到本地 代码: exec master..xp_cmdshell  'net use P: \\ ...

  2. MySQL按照汉字的拼音排序(转)

    按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...

  3. 学习如何写PHP MVC框架(1) -- 路由

    说到PHP开发web,自然离不开开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等... 第一篇先来简单点的,说说MVC框架的路由功能... 一般的单入口框架路由都是这样的结构: ...

  4. PHP 汉字转拼音(首拼音,所有拼音)

    <?php /** +------------------------------------------------------ * PHP 汉字转拼音 +------------------ ...

  5. google 地图,多个标记 js库

    360 云盘:http://yunpan.cn/cVgU3X7JFxAGY (提取码:1f07) 百度云盘:链接: http://pan.baidu.com/s/1c0fbCWw 密码: w1pm 参 ...

  6. Java并发编程--理解ThreadLocal

    另一篇博文:Hibernet中的ThreadLocal使用 http://www.cnblogs.com/gnivor/p/4440776.html 本文参考:http://blog.csdn.net ...

  7. 第一个微信小程序(实现点击一个按钮弹出toast)

    今天根据网上的教程搭建了微信小程序的环境,然后看文档做了一个简单的小应用. 项目的目录是这个样子的: app.js.app.json.app.wxss是全局文件,必不可少的文件.定义在app.wxss ...

  8. Mac实用技巧

    1. 程序员Mac新装机必备 Mac很玄这个大家都承认,但是鄙人觉得程序员用Mac才能真正发挥它的功效.下面就说说我的Mac使用: 基本编程软件:xcode,这个东西不仅仅是对mac的界面程序开发有用 ...

  9. hdu 1301 Jungle Roads

    http://acm.hdu.edu.cn/showproblem.php?pid=1301 #include <cstdio> #include <cstring> #inc ...

  10. HDU--3487 Play with Chain (Splay伸展树)

    Play with Chain Problem Description YaoYao is fond of playing his chains. He has a chain containing ...