关于PHP会话:session和cookie

会话处理解决什么问题

HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本、图形、视频和所有其他的数据的规则。HTTP是一种无状态协议,每次请求的处理,都与之前和之后的请求无关。

会话处理是这种无状态问题的解决办法。它的实现方式是为每一位网站访问者分配一个称为会话ID(SID)的唯一标志属性,然后将此SID与任意数量的数据关联。

会话处理流程

  1. 浏览器向服务器发送请求
  2. 服务器为访客建立会话ID(SID),通常SID存储在服务器端一个文件中。
  3. 存储在客户端($_COOKIE[‘PHPSESSID’]或者url参数)
  4. 浏览器再次向服务器发送请求
  5. 服务器通过读取cookie(或者url的参数)来验证SID是否依然同一次会话
  6. 离开网站,会话结束

问题

SID是如何被写到cookie中去?

PHP 会话启动以后,会给每个访客分配一个SID,这个SID同时会写到客户端的cookie中去,默认cookie变量名为:PHPSESSID。这里说同时是不确切的因为下页代码只会在刷新页面以后,才能取到cookie:

session_start();
echo(‘SID:‘.session_id().‘<hr/>‘);
echo(‘Cookie_sid:‘.$_COOKIE[‘PHPSESSID‘].‘<hr/>‘);

cookie被禁用了,session会不会同时失效?

在没有做任何准备的情况下,客户端禁用cookie确实会让session失效。书上(PHP与MySQL程序设计 第三版)说,客户端存储SID的方式有两种,一种是cookie,一种是重写URL来传递。可以在php.ini文件中更改session.use_trans_sid的值,来实现url的自动重写,但笔者没有做测试。

会话在服务器端的存储方式

默认情况下,session 以文件方式存储在服务器上。在php.ini文件中可做相关设置:

session.save_handler=files
 session.save_path = "N;MODE;/path"

save_handler值有四个:

  1. files 平面文件
  2. mm 共享内存
  3. sqlite SQLite数据库
  4. user 用户自定义函数

通过user方式,可以用自定义函数与会话配合,看上去功能很强大。但没时间去实操。有空再研究。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 16:32:32

关于PHP会话:session和cookie的相关文章

会话Session和cookie

会话用户打开一个浏览器,点击多个超链接,访问服务器多个Web资源,然后关闭浏览器,整个过程称之为一个会话服务器管理客户端的状态称为会话状态的管理.管理Http协议会话状态保存会话数据的两种技术Cookie和SessionCookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用于使用浏览器再去访问服务器中的web资源时,就会带着各自额数据去.这样web资源处理的就是用户各自的数据了Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器

{Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 xxx 八 xxx 一 会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了.从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束.在通话过程中,你会向10086发出多个请求,那么这多个请

Django中的session和cookie

session和cookie 一. 概念理解 你可能有留意到当你浏览网页时,会有一些推送消息,大多数是你最近留意过的同类东西,比如你想买桌子,上淘宝搜了一下,结果连着几天会有各种各样的桌子的链接.这是因为 你浏览某个网页的时候,WEB 服务器会先送一些资料放在你的计算机上,类似于你打的文字,选的一些东西什么的,Cookie 会帮你都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内

多对多表的创建方式 forms组件 session与cookie

1.多对多表的创建方式 2.forms组件3.session 与 cookie 1.多对多表的创建方式 1.全自动(推荐使用*) class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8,decimal_places=2) authors = models.ManyToManyField(to='Author') class Author(m

Django之Session与Cookie

目录 一.cookie Cookie与的session由来 什么是Cookie Cookie的原理 查看Cookie cookie与session的作用 二.Django中操作Cookie 获取Cookie 设置Cookie 删除Cookie 三.Session Session的由来 设置session 获取session 四.设置session与cookie的超时时间 删除当前的会话数据并删除会话的Cookie(推荐) 五.Django中Session相关方法 Session流程解析 Sess

JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解

Servlet的缺点 开发人员要十分熟悉JAVA 不利于页面调试和维护(修改,重新编译) 很难利用网页设计工具进行页面设计(HTML内容导入到servlet中,用PrintWriter的对象进行输出) JSP简介 JSP(Java Server Pages) 与Java Servlet一样,是在服务器端执行的,不同的是JSP先由服务器编译部署成Servlet执行. JSP技术的企业最佳实践(生成HTML内容) 新的JSP2.0规范版本包括新的功能(EL表达式,新增的Simple Tag和Tag

会话跟踪技术--cookie和session 小结

学习过servlet的都知道,servlet是单例多线访问的,所以我们不能设置servlet成员变量来存放浏览器的访问数据.怎么解决浏览器的访问数据,让不同访问者能够访问到自己的数据呢? 相信学习完了cookie和session技术之后,读者会明白这个问题. 我们在浏览器上使用http协议在网络上传输数据的时候,服务器对于http的状态处理有两个方式,cookie和session. 笔者对于cookie设session的理解是这样的:当我们想要记录浏览器与服务器之间的交互的时候,通常的方法就是

PHP处理会话函数session和cookie总结

本教程讲解PHP处理会话函数session和cookie总结 PHP处理会话函数包括:session_start.session_register.session_is_registered.session_unregister.Session_destroy等等.相信大家在学习php语言的时候多多少少都会对php的会话功能有所了解,下面小编给大家分享下php处理会话函数大总结. 当客户端的Cookie被禁用时,会自动通过Query_String来传递.PHP处理会话函数一共有10个,我们详细介

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

在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session) 我们可以简单理解为浏览器的开关. 其实对cookie和session也是主要为curd操作 cookie cookie 之前以字符串的形式保存在客户端 *.txt的格式.google等浏览器现在已经改为二进制存储,相对安全些,HTTP协议是无状态协议,cookie是服务器留在用户计算中的小文件,用来识别用户. 创建cookie setcookie() 函数用于设置cookie. setcooki

理解会话中的Cookie和Session对象

会话可以简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 在java语言中,Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求,其中这个过程,保存会话中数据的两种重要技术: 1.Cookie技术: Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器,并保存在客户端浏览器的缓存中.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去.这样,we