1、http协议是无连接的,即每一次http请求都是新的,和上一次没有联系,这不利于和用户的交互。针对这一缺点产生了cookie。

2、cookie是一段保存在客户端上的验证信息,同一个域使用同一个cookie来保存,当访问该域名时由浏览器将所有存储的cookie信息一起发送到服务器端以便验证。当然浏览器也可以接受新设置和更改cookie数据。如下图:

cookie可以分成两类:1、硬盘cookie->persistent cookie;2、内存cookie->session cookie。

硬盘cookie保存在硬盘中,需要超时或者用户手动清理;内存cookie通常是session生成的,没有设置超时时间,所以保存在内存中,当浏览器关闭就会删除(除旧版本ie外)

那cookie保存在哪了?由于没有硬性规定,所以每个浏览器都有自己的保存方式和地点,这也就导致在不同浏览器上cookie信息是不通用的。

参考:http://zh.wikipedia.org/zh-cn/Cookie

http://www.cnblogs.com/haoxinyue/archive/2012/05/01/2478187.html

http://blog.51yip.com/php/938.html

3、由于cookie的一系列的缺点,所以又产生了session来验证用户,最主要的不同是session会以文件形式保存在服务器端,只在客户端保留一个凭证——就是session id,也就是这个session文件的文件名,而这个凭证默认是以cookie形式保存的。

当用户禁用cookie时会以其他方式(通常为get方式在url中)传递session id:1、修改php配置,2、手动在url中添加

session有效期问题

参考:http://fukun.org/archives/03251929.html

http://lavasoft.blog.51cto.com/62575/275589/

http://koda.iteye.com/blog/319605

4、session和cookie是独立于编程语言而存在的,各种语言都可以使用,例如php中用函数处理,而Java中用对象处理。对于在php中的处理可以参考thinkPHP中的session(),cookie(),位于function.php中。这里简述session()的操作:

  0、首先是在php.ini中有session的配置信息,如果有条件修改配置文件可以直接修改,否则见下
  1、session初始化操作:session会进行两部分工作:一是生成session文件(使用原生session函数进行设置),二是生成session cookie(使用ini_set 函数设置)。
  2、session操作:启动,暂停,销毁,重新生成id,
  3、php中对session具体操作是使用$_SESSION数组,所以还包括对该数组的处理

参考:http://www.thinkphp.cn/document/137.html

cookie和session笔记的更多相关文章

  1. 【Python】Flask系列-cookie和session笔记

    cookie: 1.cookie出现的原因:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了 ...

  2. 会话控制:cookie和session基础学习笔记

    在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session) 我们可以简单理解为浏览器的开关. 其实对cookie和session也是主要为curd操作 coo ...

  3. Session和Cookie的学习笔记2

    <?php /* Cookie在计算机中保存的格式 用户名@网站地址[数字].txt Cookie在文件夹下,每个Cookie文件都是一个简单而又普通的文件件而不是程序,Cookie中的内容大多 ...

  4. Django学习笔记(5)——cookie和session

    一,前言 1.1,什么是会话跟踪技术 在JavaWeb中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束.在一个会话的多个请求中共享数据,这就是会话跟踪技术. 例如在一 ...

  5. Django学习笔记之URL与视图cookie和session

    cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了 ...

  6. HTML5学习笔记(二十九):Cookie和Session

    HTTP协议本身是无状态的,这和HTTP最初的设计是相符的,每次请求都是创建一个短连接,发送请求,得到数据后就关闭连接.即每次连接都是独立的一次连接. 这样的话,导致的问题就是当我在一个页面登陆了账号 ...

  7. Django学习笔记之Cookie、Session和自定义分页

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  8. django上课笔记4-复习数据库操作-复习模板-Seccion-详细cookie和session的区别

    一.复习数据库操作 字段类型 字符串 EmailField(CharField): IPAddressField(Field) URLField(CharField) SlugField(CharFi ...

  9. 学习日常笔记<day11>cookie及session

    1.会话管理 1.1会话管理定义 会话管理:管理浏览器客户端和服务端之间的会话过程中产生的会话数据 域对象:实现资源之间的数据共享 request 域对象 context 域对象 1.2.会话技术 C ...

随机推荐

  1. 石子合并 (区间DP)

    一.试题在一个园形操场的四周摆放N堆石子(N≤100),现要将石子有次序地合并成一堆.规定每次仅仅能选相邻的两堆合并成新的一堆,并将新的一堆的石子数.记为该次合并的得分.编一程序.由文件读入堆数N及每 ...

  2. 网页载入进度条中的javascript

    demo地址:http://output.jsbin.com/buquyedosa 思路例如以下:代码都有凝视,就不一一介绍了. <!DOCTYPE html> <html> ...

  3. F - Humidex(1.4.2)

    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Descr ...

  4. Mahout-HashMap的进化版FastByIdMap

    FastByIdMap是基于散列的.在处理冲突时是线性探測而非分离链接,这样就不必为每个条目添加一个Map.Entry对象.从而节省内存开销. 以下代码是一个线性探測Map的Demo: package ...

  5. OOM框架AutoMapper基本使用(1)

    OOM顾名思义,Object-Object-Mapping实体间相互转换,AutoMapper也是个老生常谈了,其意义在于帮助你无需手动的转换简单而又麻烦的实体间关系,比如ViewModel和enti ...

  6. Mysql source导入.sql文件深坑!

    刚刚接手一个项目,给老系统加功能.把数据库考出来一个.sql文件就170多M. 使用mysql命令行source 我的.sql文件. 导了一宿都没导完,然后发现里面的数据怎么是乱码呢.. 崩溃额,在排 ...

  7. Linux登陆类型-Linux中如何临时配置IP

    Linux登录: 本地登录,直接在Linux主机上接上键盘显示器,然后输入用户名密码登录 远程登录,通过网络进行登录(需要IP 账户名 密码) windows中远程登录软件有 xshell.putty ...

  8. hdu 5312 Sequence(数学推导——三角形数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312 Sequence Time Limit: 2000/2000 MS (Java/Others)  ...

  9. 在vim中配置python补全,fedora 19

    近期发现python是个不错的语言,值得一学,先配置下环境,让vim具有keyword补全功能,步骤例如以下,我这个是fedora,其它发行版类似 $ su ******** # yum instal ...

  10. Redisclient连接方式Hiredis简单封装使用,连接池、屏蔽连接细节

    工作须要对Hiredis进行了简单封装,实现功能: 1.API进行统一,对外仅仅提供一个接口. 2.屏蔽上层应用对连接的细节处理: 3.底层採用队列的方式保持连接池,保存连接会话. 4.重连时採用时间 ...