PHP会话控制考察点
为什么要使用会话控制技术
HTTP协议是无状态的,也就是说HTTP没有一个内建的机制来维护两个事务之间的状态。当一个用户完成一个请求发起第二个请求的时候,服务器无法知道这次请求是来自于上一次的客户。而用户登录、购物车等,这些是需要服务器能够保存用户的状态的。会话技术就是用来完成这件事的。其思想是允许服务器跟踪客户端做出的连续请求。
会话控制技术的实现方式
通过GET参数传递
在get里面把状态传递到下一页
使用get参数传递不安全而且不稳定,不建议使用
Cookie
Cookie本质上是服务器发送给客户端的片段信息,存储在客户端浏览器的内存或者是硬盘中的技术。
- Cookie的写入操作
setcookie($name,$value,$expire,$path,$domain,$secure) - 读取Cookie
$_COOKIE数组 - 删除Cookie
删除cookie不能使用unset,因为$_COOKIE是只读的。要想删除,只需要让其过期就就行:
setcookie($name,'',time()-1000) - Cookie的优缺点
- 优点:存储在客户端,不会占用服务器的资源
- 缺点:信息保存在客户端,安全性得不到保障,而且用户可以关闭cookie。
Session
Session将数据保存在服务器上,相比cookie更加安全。
session并不是完全脱离cookie,他是基于cookie的(需要将sessionid保存在客户端,如果cookie被禁用,可以通过url来传递sessionid)
session 的操作
session_start();//要使用之前一定要开启- 然后直接操作
$_SESSION数组 - 要删除,直接赋空数组:
$_SESSION = []; - 如果想删除文件,则使用
session_destroy();//同时会删除对应session的cookie
session 配置(php.ini)
- session.auto_start
- session.cookie_domain
- session.cookie_lifetime
- session.cookie_path
- session.name
- session.save_path
- session.use_cookies
- session.use_trans_sid
- session.gc_probability
- session.gc_divisor
- session.gc_maxlifetime
- session.save_handler
session的优缺点
- 优点:信息安全
- 缺点:占用服务器的资源,分布式不方便
传递sessionid
如果cookie被禁用,那么可以通过get来传递sessionid:
"xxx.php?<?php echo session_name().'='.session_id(); ?>"//通过session_name()和session_id()来拼接
"xxx.php?<?php echo SID; ?>"//SID常量在cookie开启的时候为空,在cookie被禁用的时候是session_name()和session_id()拼接的样子
- session 的存储
session_set_save_handler()函数可以将session存储在服务器上(mysql Memcache redis等)
PHP会话控制考察点的更多相关文章
- 会话控制:session与cookie
我们在浏览网站时,访问的每一个web页面都需要使用"http协议"实现.而HTTP协议是无状态协议,就是说HTTP协议没有一个内建机制来维护两个事务之间的状态.当一个用户请求一个页 ...
- php 会话控制
会话控制 HTTP协议,在TCP协议基础上的HTTP协议称为无状态协议 SESSION COOKIE SESSION特点:1.存储在服务器.2.每个使用者都会生成一个SESSION.3.有默认的过期时 ...
- (实用篇)php通过会话控制实现身份验证实例
会话控制的思想就是指能够在网站中根据一个会话跟踪用户.这里整理了详细的代码,有需要的小伙伴可以参考下. 概述 http 协议是无状态的,对于每个请求,服务端无法区分用户.PHP 会话控制就是给了用户一 ...
- 会话控制:SESSION,COOKIE
1.http协议: HTTP—超文本传输协议,在TCP协议(长连接.像一个硬件)基础上; 特点:短连接,无状态协议,没法记录本次连接的状态;适用于静态页面的访问,对于后期某些页面是需要浏览器预知客户信 ...
- PHP之自定义会话控制---使用文件处理
前三篇简单的总结了下会话控制和文件操作,这一篇说说会话控制的自定义处理方式.既然知道了文件的基本读写,而且在会话控制中,也有人提到,session数据可以保存到缓存或数据库中,实际上当然不会是直接利用 ...
- PHP之会话控制小结
会话控制是一种跟踪用户的通信方式,使用会话控制主要基于以下几点:由于http协议的无状态性,使得不能通过协议来建立两次请求之间的关联:对于通常的页面之间的数据传递方式get和post而言,主要处理参数 ...
- php——会话控制
1.什么叫做会话控制 允许服务器根据客户端做出的连续请求. 2.为什么需要会话控制? 因为当你打开一个网站,并想访问该网站的其他页面的时候,如果没有会话控制,当跳转到其他页面的 时候,就需要再次输入账 ...
- PHP会话控制Session与Cookie
理解会话控制的概念: 阅读过HTTP协议相关资料的同学都会知道HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议,所谓无状态,指的是不会维护http请求数据,http请求是 ...
- (详细)php实现留言板---会话控制-----------2017-05-08
要实现留言功能,发送者和接受者必不可少,其次就是留言时间留言内容. 要实现的功能: 1.登录者只能查看自己和所有人的信息,并能够给好友留言 2.留言板页面,好友采取下拉列表,当留言信息为空时,显示提示 ...
随机推荐
- spring boot实现文件上传下载
spring boot 引入”约定大于配置“的概念,实现自动配置,节约了开发人员的开发成本,并且凭借其微服务架构的方式和较少的配置,一出来就占据大片开发人员的芳心.大部分的配置从开发人员可见变成了相对 ...
- 初识JVM虚拟机
前言: Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM——Java Virtual Machine(Java虚拟机). 执行Java程序的两个步骤: 由Java语言编写的程序需要进过 ...
- website项目的reference问题
right click on website project--> property pages dll dependency Check the type column,if you have ...
- AnimatorCompatHelper clearInterpolator
supportLib 26.0.0+以上AnimatorCompatHelper类被移除 所以clearInterpolator(view)找不到 替换方案: TimeInterpolator mDe ...
- 简单记录CentOS服务器配置JDK+Tomcat+MySQL
项目需要部署到一台CentOS的服务器之上,之前这台服务器上面已经安装了一个Nginx和MySQL,跑的是PHP环境,有一个项目正在运行.而我们最新的项目是用Java写的,服务器是用的Tomcat,所 ...
- Macaca框架
收藏 http://www.cnblogs.com/jinjiangongzuoshi/p/6537795.html
- .NETFramework:MemoryStream
ylbtech-.NETFramework:MemoryStream 1.返回顶部 1. #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, ...
- MySql LOAD DATA 使用
load的语法 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO ...
- Spring的Task任务
转自:http://liuna718-163-com.iteye.com/blog/2215076 Spring Task提供两种方式进行配置,一种是annotation(标注),而另外一种就是XML ...
- linux修改用户主目录的方法 (转载)
转自:http://xiaomaimai.blog.51cto.com/1182965/274002 第一:修改/etc/passwd文件第二:usermod命令 详细说明如下:第一种方法:vi /e ...