- 1:设置cookie
- 2:读取cookie及其删除
- 3:session的开启以及相关操作
- 4:session的垃圾回收机制
- 5:php操作http响应头
- 6:Curl函数
cookie会话技术、session技术的原理与使用。php操作http响应头、curl函数、
设置cookie
什么是cookie--服务器端能够标识用户的数据的唯一标识,在之后请求的的时候都会自动携带给服务器。
语法:
setcookie(name,value【,expire【,path【,domain【,secure【,httponly】】】】】);
说明:
中括号包含的属性可以省略。
- name 就是cookie名
- value 就是cookie值
- expire是用于设置cookie的过期时间,时间是以秒记录的,有效期的起点是时间原点。
如果省略表示会话cookie,有效期到浏览器关闭。
- path是cookie的路径
默认当客户端访问某一个php文件时,究竟什么样的cookie会被携带给服务器,其中cookie的显示路径就可以决定是否携带给所请求的php文件。
如果客户端的cookie的显示路径是所请求的php文件路径的父路径则会携带过去,但是绝大多数情况我们是将一个cookie设置为整站有效。
示例:
- cookie的域
首先理解域名-->(顶级域名,一级域名,二级域名)
cookie所实现的跨域也是只能二级域名相同
- secure 取值为true或false
如果设置为true,那么只要当客户端使用的协议是https时,则会将cookie携带给服务器端。
https = http + ssl
- httponly 取值为true或false
如果设置为true,那么只能由php访问cookie,js就不能访问了
位于客户端的cookie的本质就是文本文件。首次请求的时候用为没有cookie,所以没有携带cookie。
读取cookie及其删除
$_COOKIE 就是一个关联数组,主要是用于存储客户端通过cookie的技术,提交的数据。
删除的话有两种方式,一种是到过期时间自己删除,一种是你将内容定义为空('')。
cookie的值类型只能是字符,不能是数组,但是可以用变通的方式类似储存数组。
session的开启以及相关操作
语法:
session_start(); ==>必须写,如果在php.ini中开启了自动开启,就可以省略
说明:
用于开启session机制。同时激活$_SESSION预定义变量
首次:
请求时,服务器首先在硬盘中创建一个唯一的文件,将文件名以cookie的形式返回客户端。
在php脚本执行结束时,将$_SESSION内存变量中的数据写入到session文件中。
其后各次:
请求时,服务器会收到客户端的cookie中保存的session文件名,同时会在服务器端硬盘中找到对应的session文件。
会打开这个session文件,将文件中的数据读取到$_SESSION变量中。
脚本执行结束时,会再将$_SESSION中的保存的数据写回session文件中。
session_id();用于获取sessionID的值
session可以存储任何类型的数据。但是$_SESSION变量本身的下标必须是字符串。
session的垃圾回收机制
session文件也可以设置一个有效期。默认的设置如下图:
php会认为过期的session是一个垃圾文件。所以需要删除,删除这样的过期的session文件有一个一机制,这个机制就是垃圾回收机制。
php操作http响应头
默认HTTP协议的响应头是由web服务器自动组织,PHP为了我们提供了一个设置HTTP响应的协议头的函数header
①、设置浏览器的显示编码
语法:
header('Content-type:text/html;charset=utf8');
说明:
content-type: 用于设置响应的数据的格式
charset 用于设置响应的数据中数据的编码
②、用于进行跳转
语法:
header('Location:url');
说明:
url 所要跳转的网址
也可以实现点击内容直接下载(a连接请求页面)
Curl函数
Command Url
Curl是一个代码版的浏览器。允许我们在代码中像使用浏览器一样访问别人的页面。
默认php并没有开启对Curl的支持,需要我们要配置文件中手动的开启
提示:
如果开启后也无法使用,需要将php目录中的三个文件libeay32.dll、libssh2.dll、ssleay32.dll、php5ts.dll,文件复制到apache的bin目录内。
使用示例:
当然也可以模拟get或者post请求。