이 글의 내용은 PHP의 페인팅 제어를 공유하는 것입니다. 필요한 친구들이 참고할 수 있습니다.
HTTP 프로토콜은 웹 서버와 브라우저 간의 상호 통신을 위한 프로토콜입니다. 즉, 각 HTTP 요청은 서로 독립적입니다. 따라서 HTTP 프로토콜에는 두 트랜잭션 간의 상태를 유지하는 기본 제공 메커니즘이 없습니다. 예를 들어, 사용자가 한 페이지를 요청한 후 다른 페이지를 요청하는 경우 HTTP는 두 요청이 동일한 사용자로부터 왔는지 여부를 알 수 없습니다.
웹사이트에서는 변수를 추적해야 하는 경우가 많습니다. 변수를 추적하면 여러 요청 항목 간에 연결을 설정한 다음 인증 및 사용자 ID를 기반으로 다양한 콘텐츠와 페이지를 표시할 수 있습니다. 이것이 세션 제어 기술입니다.
일반적으로 사용되는 세션 제어 기술에는 쿠키
및 세션
이 있습니다. 간단히 말해서, 쿠키는 클라이언트 측에 정보를 기록하여 사용자의 신원을 확인하고, 세션은 서버 측에 정보를 기록하여 사용자의 신원을 확인합니다. Cookie
和 Session
。简单地说,Cookie 是通过在客户端中记录信息而确定用户身份;Session 是通过在服务器端记录信息而确定用户身份。
Cookie 是一个很小的文本文件,包含在 HTTP 请求报文中在 Web 服务器和浏览器之间传递。Cookie 的工作原理如下:
服务器通过在 HTTP 响应报文中设置一个 Set-Cookie
字段,并把 Cookie 数据放在 Set-Cookie
字段中随着 HTTP 报文传给浏览器;
浏览器在接收到 HTTP 响应报文后,检查到 Set-Cookie
字段有值,会在本地创建一个 Cookie 文件来保存数据;
当浏览器再次向该服务器发送请求时,浏览器会先搜索本地保存的 Cookie 文件,如果在 Cookie 文件中有任何与正在连接的 URL 相关的 Cookie,就在 HTTP 请求报文中设置一个 Cookie 字段,并把 Cookie 文件中的数据添加到该字段中,最后把携带 Cookie 字段的 HTTP 请求报文发送给服务器。
Cookie 可以用来保存用户名、密码、个性化设置等一些简单的信息,以下是 Cookie 的使用说明:
<?php setcookie("Cookie", "cookievalue", time()+3600);
必须在 HTML 文件的内容输出之前调用 setcookie()
<?php echo $_COOKIE["Cookie"];
<?php #方法一:将值设为空 setcookie("Cookie", null); #方法二:将过期时间设为过去时间 setcookie("Cookie", "value" , time());
Session 是在服务器端保持用户会话数据的一种方法,其工作原理如下:
当浏览器第一次访问 PHP 脚本时,seesion_start()
函数会创建一个唯一的 Session ID(每个客户端都有一个唯一的标识),并自动通过 HTTP 的响应头,将这个 Session ID 保存到客户端 Cookie 中。同时,也在服务器端创建一个以 Session ID 命名的文件,用于保存这个用户的会话信息;
当同一个用户再次访问这个网站时,会自动通过 HTTP 的请求头将 Cookie 中保存的 Seesion ID 再携带过来;
服务器 PHP 脚本接受到客户端请求,这时 session_start()
函数就不会再去分配一个新的 Session ID,而是在服务器的硬盘中去寻找和这个 Session ID 同名的 Session 文件,将这之前为这个用户保存的会话信息读出。
首先,创建 Session 唯一标识的方法有两种:通过 Cookie 或者 GET 方式。PHP 在默认情况下使用 Session 会建立一个名叫 PHPSESSID
的 Cookie(可以通过 php.ini 修改 session.name 的值),如果客户端禁用cookie,可以指定通过 GET 方式把 Session ID 传到服务器(修改 php.ini 中 session.use_trans_sid
等参数)。其次,Session 是以文件的形式保存的。php.ini 中有个配置项 --session.save_path= ""
,这个里面填写的路径,将会保存所有 Session 文件。Session 文件的命名格式是:sess_[PHPSESSID的值]
Set-Cookie
필드를 설정하고 쿠키를 넣습니다. data Set-Cookie
필드에서는 HTTP 메시지와 함께 브라우저에 전송됩니다. HTTP 응답 메시지를 받은 후 브라우저는
를 확인합니다. 설정 - 쿠키
필드에 값이 있으면 데이터를 저장하기 위해 쿠키 파일이 로컬로 생성됩니다. cityID|i:0;cityName|s:3:"all";fanwe_lang|s:5:"zh-cn";fanwe_currency|a:4:{s:2:"id";s:1:"1";s:6:"name_1";s:9:"人民币";s:4:"unit";s:3:"¥";s:5:"radio";s:6:"1.0000";}_fanwe_hash__|s:32:"77c18770c6cb5d89444c407aaa3e8477";
//启动 session session_start(); //注册session变量,赋值为一个用户的名称 $_SESSION["username"] = "jochen"; //注册session变量,赋值为一个用户的ID $_SESSION["uid"] = 1;
<?php session_start(); echo $_SESSION["username"]; # # jochen echo $_SESSION["uid"]; # 1
seesion_start()
함수는 고유한 세션 ID(각 클라이언트에는 고유 ID가 있음)를 생성하고 자동으로 전달합니다. HTTP 응답 헤더를 사용하려면 이 세션 ID를 클라이언트 쿠키에 저장하세요. 동시에 사용자의 세션 정보를 저장하기 위해 세션 ID라는 이름의 파일도 서버 측에 생성됩니다. 🎜session_start()
함수는 검색하는 대신 새 세션을 할당하지 않습니다. 서버의 하드디스크에 있는 세션 ID와 동일한 이름의 세션 파일을 검색하면 해당 사용자에 대해 이전에 저장된 세션 정보를 읽어옵니다. 🎜PHPSESSID
라는 쿠키를 생성합니다(session.name의 값은 php.ini를 통해 수정할 수 있음). 클라이언트가 쿠키를 비활성화하는 경우 GET을 통해 세션 ID를 지정할 수 있습니다. . 서버에 전달합니다(php.ini에서 session.use_trans_sid
와 같은 매개변수 수정). 둘째, Session은 파일 형태로 저장됩니다. php.ini에는 구성 항목 --session.save_path= ""
가 있습니다. 경로를 입력하면 모든 세션 파일이 저장됩니다. 세션 파일의 이름 지정 형식은 sess_[PHPSESSID 값]
입니다. 각 파일은 세션 데이터를 저장합니다. 마지막으로 세션 파일에 저장된 데이터는 다음과 같이 직렬화됩니다. 🎜<?php session_start(); unset($_SESSION["username"]); unset($_SESSION["uid"]);
위 내용은 PHP의 세션 제어의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!