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.留言板页面,好友采取下拉列表,当留言信息为空时,显示提示 ...
随机推荐
- flask 文件下载 文件服务器 请求参数 函数修饰符
180M电子书 通过已经下载到pc,在上传到私有公网服务器,之后,再异地下载 以下代码,文件内容错乱 [root@bigdata-server- mydataweb]# tree . ├── mydl ...
- VS2010 根据WSDL文件(java Web Service)生成.cs文件
我们添加webService引用,一般是通过 添加服务引用完成的,其实 添加服务引用 在背后为我们生成了代理类. 我们手动生成代理类方法: 1.通过java Web Service,生成wsdl文件: ...
- Codeforces Round #261 (Div. 2)——Pashmak and Graph
题目链接 题意: n个点.m个边的有向图.每条边有一个权值,求一条最长的路径,使得路径上边值严格递增.输出路径长度 )) 分析: 由于路径上会有反复点,而边不会反复.所以最開始想的是以边为状态进行DP ...
- mongodb10---分片
分片:数据非常大,把不同段的数据拆了,1-1000000放在节点1,1000000-2000000放在节点2,200000-300000放在节点上.把不同的数据放在不同的服务器叫shard分片. 请求 ...
- POJ3468 A Simple Problem with Integers —— 线段树 区间修改
题目链接:https://vjudge.net/problem/POJ-3468 You have N integers, A1, A2, ... , AN. You need to deal wit ...
- 【FFT初识】
FFT在用于解决多项式乘法A*B(A和B为多项式,形如a0+a1*x^1+a2*x^2....)的时候,通俗地解释就是: 原理:先根据各自的系数各自转化为对应的向量(O(nlogn)),然后向量相 ...
- 欧拉函数与数论的结合UVA11426
链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...
- Windows7下安装golang语言开发环境和revel框架
1.下载先去下载32位或64 golang window 安装包 并安装下载地址:https://www.golangtc.com/download 本人更改了安装地址为 D:\GO\Go 2. go ...
- 【179】IDL 读写 NetCDF 文件
NetCDF(network Common Data Form)由位于科罗拉多州波尔市的 Unidata 程序中心开发,主要应用于大气科学的研究.NetCDF 的数据模式具有简单性和灵活性的特点.Ne ...
- 转:IIS MVC 发布错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容
访问网址:http://blog.csdn.net/csethcrm/article/details/37820135 有两个地方需要配置: 1.web.config中的节点: <system. ...