1、http协议(1.0、1.1)
客户端与服务器通信方式
建立连接=发送请求=响应请求=关闭连接
解析多图和解析a连接
请求行(get、post、delete、put、head等等)、请求头、请求正文
状态行、响应头、响应正文
图解http协议
状态码:
200:响应ok
302、307:重定向
404:资源没有找到
500:服务器内部错误
http协议是无状态的(脸盲)
登录163.com
2、会话控制
在同一个网站中,不同的界面之间跳转的时候,服务器端如何跟踪客户端的信息
你带着牌子过来这种机制就叫做cookie。
cookie就是用户在登录网站之后,网站会给用户的客户端写入一个cookie文件,里面写了有
关这个用户的信息。那么下次用户在本网站中访问其他页面的时候,就会将cookie文件中的内容通过
http协议带过来。
3、cookie
功能:
通过setcookie函数,将用户信息写入到客户端,下次再访问服务器的时候,将
cookie中的信息通过http请求头带过来,服务器端通过$_COOKIE来访问里面的数据
setcookie
/*
只要调用这个函数,就会将用户的信息写到客户端,下次客户端访问其它界面的时候,就会
将这些信息带过来
写入的时候遵从键值对原则
参数1:键名字符串
参数2:值
参数3:过期时间
参数4:有效路径,一般都写网站根路径
*/
setcookie('username', $username, time() + 5 * 60, '/');
setcookie('user_type', $user_type, time() + 5 * 60, '/');
退出步骤:
将以前保存的所有的键值对的过期时间设置为当前时间以前即可
setcookie('username', '', time() - 1, '/');
4、session
功能:
客户端只保存一个sessionid号码,其他的信息都保存在服务器端,客户端访问网站
的时候会将sessionid号带过来
session_start
只要用到$_SESSION这个数组之前,都要执行session_start这个函数。
该函数第一次执行的时候会做两个工作:1、给客户端分配sessionid,2、在服务器端创建
session文件
$_SESSION['username'] = $username;
$_SESSION['user_type'] = $user_type;
退出步骤:
session_start();
$_SESSION = []; //将数组中所有的元素清空
session_destroy();
5、用户登录
通过session来写用户登录和注册
页面跳转
<meta http-equiv="refresh" content="3;url=index.php">
header函数
header('location:index.php');
【注】header\session_start\setcookie这些函数前面不能有任何的打印输出信息
面试题:
如果本地浏览器禁用了cookie,session可否使用?
不能。
为什么呢?
sessionid是写在cookie里面的
有没有办法解决呢?
有,将sessionid拼接到url(地址栏中)中进行传递。
配置php.ini中:修改session.use_trans_sid = 0改为1;
session.use_only_cookies=1改为0; 1是禁用cookies