Http Session介绍与应用

简介: Http Session介绍与应用

1. Session


由于 Cookie 是服务端下发给客户端由客户端本地保存的。换而言之客户端可以在本地对其随意操作,包括删除和修改。如果客户端随意伪造一个 Cookie 的话,对于服务端是无法辨别的,就会造成服务端被蒙蔽,构成安全隐患。


于是乎就有了另外一种基于 Cookie 基础之上的手段:Session:


Session 区别于 Cookie 一个很大的地方就是:Session 数据存在了服务端,而 Cookie 存在了客户端本地,存在服务端最大的优势就是,不是用户想怎么改就怎么改了。


Session 这种机制会更加适合于存放一些属于用户而又不能让用户修改的数据,因为客户端不再保存具体的数据,只是保存一把“钥匙”,伪造一把可以用的钥匙,可能性是极低的,所以不需要在意。


1.1.PHP Session 变量


当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。


通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。


Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。


1.1.PHP使用Session


使用session


在您把用户信息存储到 PHP session 中之前,首先必须启动会话。


注释:session_start() 函数必须位于 标签之前:


<?php 
session_start(); 
?>
<html>
<body>
   <!-- 你的代码-->
</body>
</html>


上面的代码会向服务器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个 UID。


存储 Session 变量


存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量:


<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>


输出:


Pageviews=1


在下面的例子中,我们创建了一个简单的 page-view 计数器。isset() 函数检测是否已设置 “views” 变量。如果已设置 “views” 变量,我们累加计数器。如果 “views” 不存在,则我们创建 “views” 变量,并把它设置为 1:


<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>


终结 Session


如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量:


<?php
unset($_SESSION['views']);
?>


您也可以通过 session_destroy() 函数彻底终结 session:


<?php
session_destroy();
?>


注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。


2.Session案例:猜数字小游戏


文章案例:


https://yangyongli.blog.csdn.net/article/details/111564434

相关文章
|
3月前
|
缓存 Linux Shell
RHEL7部署http应用配置共享yum源
RHEL7部署http应用配置共享yum源
78 0
|
27天前
|
程序员
深入理解HTTP协议本质与应用
HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。简单来说,如果你不懂HTTP协议,那就相当于是个只有“半桶水”的程序员。在这个课程中,带你一起花最少的时间,用最少的精力,掌握最多、最全面、最系统的HTTP相关知识
14 3
深入理解HTTP协议本质与应用
|
1月前
|
数据采集 缓存 监控
Socks5 与 HTTP 代理在网络安全中的应用
Socks5 与 HTTP 代理在网络安全中的应用
12 0
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
47 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
2月前
|
网络协议 Linux Shell
http“超级应用与理解”
http“超级应用与理解”
|
3月前
|
存储 安全 Java
从HTTP到Tomcat:揭秘Web应用的底层协议与高性能容器
从HTTP到Tomcat:揭秘Web应用的底层协议与高性能容器
|
3月前
|
Java API Spring
使用OkHttp在Spring Boot应用中发送HTTP请求
使用OkHttp在Spring Boot应用中发送HTTP请求
76 0
|
3月前
|
存储 缓存 数据安全/隐私保护
HTTP之Session、Cookie 与 Application
HTTP之Session、Cookie 与 Application
26 0
|
3月前
|
数据采集 监控 JavaScript
Python网络爬虫进阶:自动切换HTTP代理IP的应用
Python网络爬虫进阶:自动切换HTTP代理IP的应用
|
3月前
|
网络协议 Python
Python网络编程(四),HTTP协议的python应用
Python网络编程(四),HTTP协议的python应用
35 0