搜索
首页后端开发php教程cookie和session的详细介绍(图文)

cookie和session的详细介绍(图文)

Feb 15, 2019 pm 01:25 PM
cookiesession

本篇文章给大家带来的内容是关于cookie和session的详细介绍(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

cookie技术

cookie是浏览器端的技术,可以在浏览器上保存数据的一门技术!cookie就是指的是浏览器上保存的数据!

PHP支持cookie技术!php可以向浏览器发出指令,从而将数据保存到浏览器上!

浏览器负责保存数据,而php负责控制浏览器保存那些数据!(php在是使用浏览器上cookie技术)

保存在浏览器上的cookie数据,可以在浏览器每次向服务器请求时,都可以携带该数据,向服务器发出请求,此时服务器上的脚本就可以获得该数据!

基本使用

设置 cookie 变量,增,改,删

利用内部函数 setcookie 完成

形式:setcookie(名字,值)

取得 cookie 变量,读

使用预定义数组变量:$_COOKIE

该变量内保存所有从浏览器请求时所携带的cookie数据!

每个元素就是一个cookie变量数据!下标是名字,值,就是值!

基本原理

利用firebug的网络选项卡:

设置时,做了什么?

在响应时,服务器发送了一条指令,在浏览器上增加一个cookie变量!

浏览器接到该指令后,在浏览器上增加了一个cookie数据!

获取时,做了什么?

浏览器会将当前站点的所有的cookie在请求时都携带到服务器上!

php会自动获得到浏览器携带的cookie,形成$_COOKIE数组,用户脚本使用!

高级使用

1.cookie数据只能是字符串数据!

 

2.setcookie函数,可以完成增,修改,删除!

不存在,则增加,存在则修改!

删除,可以采用将值,置空的形式!

3.cookie变量的失效期

cookie数据存在有效期的概念:

默认,临时cookie。会保存到浏览器关闭!

同时,支持,增加setcookie的第三个参数,来修改cookie变量的有效期。有效期的表示方式,是一个时间戳,表示到哪个时间点,失效!

php可以通过 time()函数,获得当前的时间戳,time()增加增量的形式延长cookie时间!

此时,服务器会向浏览器发出如下指令:

网络上表示时间,都是用格林威治平时!没有时区概念的那个时间!GMT

浏览器知道cookie变量的有效期!

常用的操作:

 

1.cookie存在有效路径的概念

cookie变量是只在当前目录,及其后代目录才会生效!

test/下设置, test/sub/下可以访问

反过来:

 

那是由于该cookie:

可以更改cookie数据的有效路径:

通过setcookie的第四个参数做修改:

/ 表示站点根目录有效!整站有效!

5,cookie子域名的概念

cookie是严格区分域名的。

支持在子域名之间是可以共享的:

利用第五个参数设置

有效期,有效路径,有效子域名!

6,$_COOKIE是捕获不了当前脚本所设置的cookie变量的!

$_COOKIE是,浏览器请求时所携带的所有cookie!

当前设置的在下次使用请求才好用!

session技术,会话技术

场景:

cookie的问题

由于是数据本身是在浏览器端:

数据的安全性问题!

数据总要在请求时携带!

怎么解决,注意保持在浏览器的多次请求间共享数据!

将数据放在服务器端,同时是数据区分浏览器,在浏览器的多次请求间共享数据!

在服务器上,为来访的每台浏览器增加一个数据空间,然后为这些数据空间分配不同唯一的标识!为每个浏览器分配一个唯一的标识,该标志应该服务器端数据库空间的标识应该一一对应

要求,浏览器每次请求时携带标识,此时服务器可以获得标识,利用标识确定数据空间,但却请求的所有的数据处理,都在当前的确定的空间内完成!

将服务器分配给浏览器的唯一标识存在浏览器的cookie内,可以保证浏览器每次来时都携带!

服务器为每一个新浏览器访问(没有确定标识的浏览器),确定标识,和在服务器上生成一个唯一的数据空间!

基本使用

直接操作$_SESSION数组,就可以完成session数据的存,取!

每个session数据,就对应$_SESSION内的一个元素!对元素操作,就是对session数据做操作!

但是,session技术,包括生产session标识,开辟session数据空间,为浏览器分配session标识等等,都需要PHP的session机制支持!

因此,需要先开启session的支持,才能操作$_SESSION变量,从而去操作session数据!

开启:

session_start();

操作:

$_SESSION;

先开启后操作:

更新和删除:

基本原理

浏览器端cookie中保存的sessionID:

当前浏览器第一次对服务器发出请求时,服务器不能确定浏览器的标识

会重新生成一个唯一标识,以cookie的形式保存到浏览器端!

其中默认的cookie变量名为:PHPSESSID。

该cookie标量,也被称之为sessionID!

当浏览器拥有了sessionid这个cookie变量后,接下来的请求都会携带该ID发出请求:

服务器的端的是session数据空间

默认情况下,php,会将保存session数据的空间,生成一个文件来完成!通过文件的名称来区分属于哪个ID的!

默认的被保存在服务器操作系统的临时目录内:

大概的流程:

测试:

使用session来完成登陆标识验证:

以上是cookie和session的详细介绍(图文)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除
高流量网站的PHP性能调整高流量网站的PHP性能调整May 14, 2025 am 12:13 AM

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

PHP中的依赖注入:初学者的代码示例PHP中的依赖注入:初学者的代码示例May 14, 2025 am 12:08 AM

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

PHP性能:是否可以优化应用程序?PHP性能:是否可以优化应用程序?May 14, 2025 am 12:04 AM

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

PHP性能优化:最终指南PHP性能优化:最终指南May 14, 2025 am 12:02 AM

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

PHP依赖注入容器:快速启动PHP依赖注入容器:快速启动May 13, 2025 am 12:11 AM

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

PHP中的依赖注入与服务定位器PHP中的依赖注入与服务定位器May 13, 2025 am 12:10 AM

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

PHP性能优化策略。PHP性能优化策略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

PHP电子邮件验证:确保正确发送电子邮件PHP电子邮件验证:确保正确发送电子邮件May 13, 2025 am 12:06 AM

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!