- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我只是想知道。在 PHP 中设置一个没有过期的 cookie(意味着它在浏览器关闭时过期)和设置一个 session 变量之间有什么区别。我不是在谈论登录之类的东西;而不是需要在每次访问页面时获取不太频繁更改的数据库值等。
最佳答案
P.S:您可以使用 http_only cookies 进一步保护您的 cookie .对于 PHP,您可以阅读 http://ilia.ws/archives/121-httpOnly-cookie-flag-support-in-PHP-5.2.html . 我忘了为这个 session 示例做,但确实将它用于 cookie 示例 :(。当你使用它时,你的 cookie 不能从大多数浏览器(支持 http_only)的 JavaScript 中读取。要使用 http_only session 的 cookie:ini_set("session.cookie_httponly", 1);
What's the difference in PHP between setting a cookie without expiration (meaning it expires as the browser closes) and setting a session variable
他们可以跟踪相同的信息,但是使用 cookie(不使用 session ),所有信息都存储在用户/网络浏览器上,这些信息可能会被黑客窃取,甚至被更改以提供虚假信息。对于简单的事情,您可以使用 cookie,但我认为您也可以使用 session ,因为当您使用 cookie 时,您需要通过网络传输更多信息。
互联网( HTTP ) 标准是stateless protocol (无内存),其优点是简化了服务器设计。互联网使用 cookie让它“记住”。
Sessions只使用cookie来存储PHPSESSID里面的 cookies 。标准的其余信息存储在 disc 上这是保持状态(存储敏感信息)的更安全方式。你也可以 encrypt your cookie这样做,但我认为sessions这是执行此操作的好方法。
您可以覆盖此行为,当您的网站流量很高时,您可能应该使用 memcached 之类的东西/redis仅将 session 信息存储在内存中(内存比旋转磁盘读取文件快得多,因为内存也没有移动部件并且非常接近 CPU)。为此,您需要覆盖 session_set_save_handler .使用redis很容易做到。要安装 redis,只需键入 make
。 Predis是为 PHP 推荐的(流行的)redis 客户端库。要在 redis 中保存 session 信息,您可以使用 redis-session-php .
我创建了一个非常简单的 php 文件来演示 session 。
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
}
echo $_SESSION['count']++;
我正在使用 Linux Ubuntu下面。
alfred@alfred-laptop:~/www/stackoverflow/6717214$ curl http://localhost/stackoverflow/6717214/session.php -v -c cookie
* About to connect() to localhost port 80 (#0)
* Trying ::1... Connection refused
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /stackoverflow/6717214/session.php HTTP/1.1
> User-Agent: curl/7.21.0 (i686-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
> Host: localhost
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sat, 16 Jul 2011 12:13:43 GMT
< Server: Apache/2.2.16 (Ubuntu)
< X-Powered-By: PHP/5.3.3-1ubuntu9.3
* Added cookie PHPSESSID="eauo6se9o34oegs57nuhs5u3b7" for domain localhost, path /, expire 0
< Set-Cookie: PHPSESSID=eauo6se9o34oegs57nuhs5u3b7; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
< Vary: Accept-Encoding
< Content-Length: 1
< Content-Type: text/html
<
* Connection #0 to host localhost left intact
* Closing connection #0
0
-v
:让操作更健谈-c
:运行后将cookies写入此文件接下来我们显示 session 创建的输出 cookie
alfred@alfred-laptop:~/www/stackoverflow/6717214$ cat cookie
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
localhost FALSE / FALSE 0 PHPSESSID d5jfijp8515pbhnoe43v4rau97
标准 PHP 使用文件系统来存储属于 session 的数据(PHPSESSID)。对我来说,文件位于 /var/lib/php5
alfred@alfred-laptop:~/www/stackoverflow/6717214$ php -r "echo session_save_path();"
/var/lib/php5
如您所见,它将信息存储在 文件 sess_d5jfijp8515pbhnoe43v4rau97
中。它正在使用 serialize在幕后将对象转换为字符串。
alfred@alfred-laptop:/var/lib/php5$ sudo cat sess_d5jfijp8515pbhnoe43v4rau97
count|i:1;
我需要sudo因为我可以标准地不从那个位置读取
alfred@alfred-laptop:/var/lib$ sudo ls -la /var/lib/ | grep php5
drwx-wx-wt 2 root root 4096 2011-07-16 14:16 php5
read bit尚未为该目录设置
alfred@alfred-laptop:~/www/stackoverflow/6717214$ curl -v -b cookie http://localhost/stackoverflow/6717214/session.php
* About to connect() to localhost port 80 (#0)
* Trying ::1... Connection refused
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /stackoverflow/6717214/session.php HTTP/1.1
> User-Agent: curl/7.21.0 (i686-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
> Host: localhost
> Accept: */*
> Cookie: PHPSESSID=d5jfijp8515pbhnoe43v4rau97
>
< HTTP/1.1 200 OK
< Date: Sat, 16 Jul 2011 12:28:59 GMT
< Server: Apache/2.2.16 (Ubuntu)
< X-Powered-By: PHP/5.3.3-1ubuntu9.3
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
< Vary: Accept-Encoding
< Content-Length: 1
< Content-Type: text/html
<
* Connection #0 to host localhost left intact
* Closing connection #0
1
-b
:从中读取 cookie 的 Cookie 字符串或文件如您所见,我们可以在不将任何信息存储在 cookie 中的情况下进行计数。我们使用相同的 cookie 来记住我们的状态。您还可以看到光盘上的信息已更改以反射(reflect)这一点。
alfred@alfred-laptop:~/www/stackoverflow/6717214$ sudo cat /var/lib/php5/sess_d5jfijp8515pbhnoe43v4rau97
count|i:2;
当只使用 cookie 时,所有内容都存储在用户的计算机上。
<?php
$counter = 0;
if (isset($_COOKIE['counter'])) {
$counter = $_COOKIE['counter'] + 1;
}
setCookie("counter", $counter, NULL, NULL, NULL, NULL, TRUE);
echo $counter;
alfred@alfred-laptop:~/www/stackoverflow/6717214$ curl -c cookie -v http://localhost/stackoverflow/6717214/cookie.php
* About to connect() to localhost port 80 (#0)
* Trying ::1... Connection refused
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /stackoverflow/6717214/cookie.php HTTP/1.1
> User-Agent: curl/7.21.0 (i686-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
> Host: localhost
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sat, 16 Jul 2011 13:22:03 GMT
< Server: Apache/2.2.16 (Ubuntu)
< X-Powered-By: PHP/5.3.3-1ubuntu9.3
* Added cookie counter="0" for domain localhost, path /stackoverflow/6717214/, expire 0
< Set-Cookie: counter=0; httponly
< Vary: Accept-Encoding
< Content-Length: 1
< Content-Type: text/html
<
* Connection #0 to host localhost left intact
* Closing connection #0
0
当我们输出 cookie 时,我们得到:
alfred@alfred-laptop:~/www/stackoverflow/6717214$ cat cookie
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
#HttpOnly_localhost FALSE /stackoverflow/6717214/ FALSE 0 counter0
如您所见,所有内容都存储在 cookie 中并通过网络发送。
alfred@alfred-laptop:~/www/stackoverflow/6717214$ curl -b cookie -c cookie -v htp://localhost/stackoverflow/6717214/cookie.php
* About to connect() to localhost port 80 (#0)
* Trying ::1... Connection refused
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /stackoverflow/6717214/cookie.php HTTP/1.1
> User-Agent: curl/7.21.0 (i686-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
> Host: localhost
> Accept: */*
> Cookie: counter=0
>
< HTTP/1.1 200 OK
< Date: Sat, 16 Jul 2011 13:32:24 GMT
< Server: Apache/2.2.16 (Ubuntu)
< X-Powered-By: PHP/5.3.3-1ubuntu9.3
* Replaced cookie counter="1" for domain localhost, path /stackoverflow/6717214/, expire 0
< Set-Cookie: counter=1; httponly
< Vary: Accept-Encoding
< Content-Length: 1
< Content-Type: text/html
<
* Connection #0 to host localhost left intact
* Closing connection #0
1
关于php - session VS 温度。 cookies ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717214/
谁能告诉我下面的代码是如何工作的, #define func(t, a, b){ t temp; temp=a; a=b; b=temp;} int main() { int a=3, b=4; f
private static final Group[] toGroups (String string) { int partialGroupSize = strin
我想更改 svg 的此文本部分: **--** 我想显示来自 KNX 安装的温度我已尝试使用以下代码,但没有任何反应: 以 $('#VL_temp' 开头的行有什么问题?其余代码似乎没问题,
目标 测量我的 Linux Box 的 CPU 温度。 到目前为止工作已完成 我已经安装了 lm-sensors 来检测温度,下面是命令传感器的输出: root@XXXX-XX :# sensors
我知道以某种方式获取 CPU 的温度是可能的,因为我下载了一个应用程序,它可以在没有开启Root的设备上执行此操作。它是怎么做到的? 编辑:该应用程序称为 A1 CPU 工具。我花了几天时间寻找答案。
我对如何使用一些视频卡驱动程序 API 读取 GPU 温度(图形处理单元,显卡主芯片)的方法感兴趣? 每个人都知道有两个不同的芯片制造商(至少是流行的)- ATI 和 nVIDIA - 因此有两种不同
我有一个运行 Windows 10 IoT 核心版的 Raspberry Pi 3。我的问题是;是否有可能,或者是否有一种方法可以通过远程 PowerShell 连接、在设备本地的命令行控制台中监控设
这里我真的很疑惑。我想创建一个应用程序,它在我的显卡(AMD 显卡)的不同温度下执行不同的事件。 我想制作这样一个应用程序的原因是,对于 GPU,我还没有找到一个,其次是为了确保我永远不会因为达到巨大
我想获取 CPU 温度。下面是我使用 C++ 和 WMI 所做的。我正在阅读 MSAcpi_ThermalZoneTemperature,但它总是一样的,根本不是 CPU 温度。 有没有什么办法不用写
我正在尝试使用 Raspberry Pi 上的 DS18B20 传感器读取温度。我的问题是从这个传感器读取数据需要时间。它不多,或多或少 1 秒,但我不能让我的主程序等到这完成。我不需要有“最近的值(
我正在为系统性能创建一个个人监控程序,但我在弄清楚 C# 如何检索 CPU 和 GPU 温度信息时遇到了问题。 我已经让程序通过 PerformanceCounter 检索 CPU 负载和频率信息(以
我需要使用 Swift 获取 CPU 温度,但除了 this 之外我找不到任何信息. 我认为我应该使用 IOKit.framework 但同样没有太多关于它的信息。 最佳答案 使用 https://g
我只是想知道。在 PHP 中设置一个没有过期的 cookie(意味着它在浏览器关闭时过期)和设置一个 session 变量之间有什么区别。我不是在谈论登录之类的东西;而不是需要在每次访问页面时获取不太
本文实例讲述了android电源信息查看方法。分享给大家供大家参考。具体如下: 1. PowerTestActivity: ?
我有一个通过 http 连接的温度传感器,我想每 5 秒向 Amcharts 添加一次温度。有人有一些如何向当前数据集添加新值的示例吗?我将使用折线图来表示 y 轴上的温度和 x 轴上的日期时间 谢谢
大家好,我正在尝试通过 php.wsdl Web 服务发送我的温度和湿度传感器,我需要将数据解析到 Web 服务,以便我可以将其从 Web 服务插入 mysql 数据库.. 我遇到了一些问题,请指教
如何从 Linux 上的 bash 获取平均 CPU 温度?最好是华氏度。该脚本应该能够处理不同数量的 CPU。 最佳答案 你这样做: 安装 sudo apt install lm-sensors s
这个问题在这里已经有了答案: 关闭 12 年前。 Possible Duplicate: Getting CPU temperature using Python? 最简单的方法是什么?也最好是摄氏
如何在 Linux 上获取 CPU 的当前温度? 有several questions and answers关于使用 C# 获取 CPU 温度,但它们似乎都是特定于 Windows 的。 最佳答案
我正在使用此代码获取当前 CPU 温度: 并看到了it也是 private float getCurrentCPUTemperature() { String file = readFile
我是一名优秀的程序员,十分优秀!