Heim php教程 php手册 PHP中session 与cookie的原理和关系1

PHP中session 与cookie的原理和关系1

Jun 13, 2016 am 10:53 AM
cookie php session Und 关系 原理 商品 existieren Freund von 知道 经验 购买 购物

有过购物经验的朋友都知道,在购买商品时网站会记录你挑选的商品到购物车,这些就是用session 和cookie技术实现,当然不同的web平台技术实现细节略有不同,但几乎都会用到session 和cookie。

为什么要用到session和cookie呢,这就有必要说一下http协议了,HTTP协议是无状态的,通俗一点说就是这一秒不知道上一秒发生了什么事情,

 

如果需要跟踪某个用户在站点的状态,显然这是行不通的,下面说说COOKIE技术

Cookie:可以用来在多个页面共享一些信息,cookie是被HTTP协议支持的,浏览器在向服务器请求一个页面时,服务器返回HTTP报文+数据,浏览器会解析从服务器接收的HTTP报文,从而做相应的操作。

服务器报文:

HTTP/1.1 200 OK
Date: Thu, 06 Dec 2012 17:05:01 GMT
Server: Apache/2.2.17 (Win32) PHP/5.3.5
X-Powered-By: PHP/5.3.5
Set-Cookie: mycookie=Hello%2CCookie; expires=Thu, 06-Dec-2012 18:05:01 GMT; path=/
Content-Length: 44
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

这是我们只关注Set-Cookie: mycookie=Hello%2CCookie; expires=Thu, 06-Dec-2012 18:05:01 GMT; path=/
这是告诉浏览器要保存的cookie信息,通俗一点说就是:“浏览器请把这段cookie信息保存下来”

格式为 键-值对的形式如一个cookie键为:publicinfo  值为:hello,cookie  形式为:publicinfo=hello,cookie

浏览器请求报文:

GET /cookie/cookie1.php HTTP/1.1
Accept: */*
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; InfoPath.2)
Accept-Encoding: gzip, deflate
Host: localhost
Connection: Keep-Alive
Cookie: C4vN_2132_saltkey=MW4qwm12; C4vN_2132_lastvisit=1354808405; C4vN_2132_sid=Dl9pU9; C4vN_2132_lastact=1354812024%09search.php%09forum; C4vN_2132_forum_lastvisit=D_36_1354812013; C4vN_2132_visitedfid=36; PHPSESSID=ggcr13idghctd9mi4gqllvcvs5; zhangqiang1=Hello%2CCookie

 这里浏览器将客户端的cookie信息发送到服务器,这样在请求-响应之间就能够保持一些状态信息了。

在PHP中cookie的使用

在PHP中使用cookie有两种方法,

1.使用系统函数setcookie设置

2.使用header函数构架cookie报文

有了前面的知识就知道这两个函数其实所做的事情结果都一样,最终要将cookie信息写到HTTP报文中去

方法1:

setcookie(cookie键的名称,值,过期时间,访问目录)

 setcookie("mycookie","Hello,Cookie",time()+3600,"/");
 echo "查看Cookie";
?>
方法2:(这里直接将要设置的cookie写到HTTP报文中去了)

header("Set-Cookie: mycookie=123; expires=Tue, 04-Dec-2012 15:58:18 GMT");
echo "查看Cookie";
在服务器端访问cookie:

 echo $_COOKIE["mycookie"];
?>
访问cookie很简单用超全局数组$_COOKIE就用可以了,[]中填写cookie的键。

使用cookie的原理就知道一些购物网站或者登录功能如何实现了,但cookie也是有不足的地方

    安全性:cookie是存放在客户端的,也就是可以篡改的,不能够将一些重要的数据存放在cookie里,如用户名和密码等

网络传输:cookie必须包含在HTTP请求和响应报文中,所以不能存放太多的数据。

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles