Heim  >  Artikel  >  Backend-Entwicklung  >  PHP基础教程:COOKIE AND SESSION_PHP教程

PHP基础教程:COOKIE AND SESSION_PHP教程

WBOY
WBOYOriginal
2016-07-21 14:56:09871Durchsuche

首先要明白以下几个基本知识:

1,浏览网页使用的是HTTP协议
2,HTTP协议是无状态的
3,整个过程是用户发出请求,服务器接受请求,作出响应,断开连接(无状态,不记录该连接记录)
4,HTTP协议包含协议头和消息实体两部分
5,Session在服务端,Cookie在客户端

过程
1,用户向服务器发送一个url请求。(GET /index.php HTTP/1.1)

2,服务器接受请求,在服务器上查找 index.php文件

3,根据该请在服务器端搜寻session_ID的文件按 一般在服务器的 %TEMP%文件夹下 如windows C:\winnt\temp\下面创建一个如:sess_e12683c5301033a408419cc9df284f7b的文件 (window2000)
并将一些SESSION值保存在该文件里面

4,将处理结果返回给客户端,并把该session_ID或者其它信息放在响应的协议头里面(set-Cookie),具体信息根据设置来确定,服务器断开连接

5,客户端接收,浏览器将协议头里面的session_ID存放在客户端的一个文件里(cookie)文件
在windows下一般在 C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files下。

cookie的文件名一般为
Cookie:用户名@dommain

Cookie文件的一般内容为:
BAIDUID Cookie名称
25D4E67AC34F467A29DB9B8C85C4DEC5 Cookie值
baidu.com/ Cookie有效路径
1024 安全性 1024和1536表示模指数(MODP)群算法的位数
3577998080 Cookie有效日期
32067270 修改日期
1590083488 建立日期
29862897 建立者

6,客户端第二次向服务器发送请求,浏览器会将对应的cookie文件里面的值放在请求的协议头里面

7,服务接受协议头,同时也接受了cookie的值,这样服务器就可以和已经保存的session文件进行验证

说明
a,在上面的 3 步骤中,如果用户还保存其它的session值,这些值作为内容保存到那个session文件里面
b,在上面的 4 步骤中,服务还可以向客户端发送更多的cookie值
c,在上面的 5 步骤中,如果用户的浏览器拒绝cookie,那么有时候服务器会将session_ID作为url后面的参数附带,所以我们常常看见有的url上常常会有 PHPSESSID=******** 或者JSPSESSID=******之类的参数,如果浏览器接受cookie,也会将上面 b 中的更多参数放在cookie文件里面
d,在上面的 7 步骤中,服务器会根据session_ID查找对应的文session文件,因此也可以根据该文件的内容获取先前保存的其它的session值
e,在服务器保存的session文件有时间限制
f,在客户端保存的cookie文件有过期时间

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/364286.htmlTechArticle首先要明白以下几个基本知识: 1,浏览网页使用的是HTTP协议 2,HTTP协议是无状态的 3,整个过程是用户发出请求,服务器接受请求,作出响...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn