Har*_*rsh 63 php cookies session session-state session-cookies
PHP中的Sessions和Cookies有什么区别?
Que*_*tin 89
Cookie是浏览器存储的一些数据,每次请求都会发送到服务器.
会话是存储在服务器上并与给定用户相关联的数据集合(通常通过包含id代码的cookie)
too*_*asr 51
Cookie用于标识会话.访问任何使用Cookie的网站,如果使用的是Firefox,请启动Chrome检查元素,然后选择网络或FireBug.
您可以看到有一个标头发送到服务器并且还收到了名为Cookie的标头.通常它包含一些个人信息(如ID),可以在服务器上用来识别会话.这些cookie保留在您的计算机上,您的浏览器负责将它们仅发送到使用它识别的域.
如果没有cookie,那么您将通过GET或POST在每个请求上发送唯一ID.Cookie就像静态ID一样留在您的计算机上一段时间.
一会是一组与该cookie信息相关的服务器上的信息.如果您正在使用PHP,则可以检查session.save_path位置并实际"查看会话".它们是服务器文件系统上的文件或数据库中的备份.

sea*_*and 12
会话是服务器上维护的一大块数据,用于维护HTTP请求之间的状态.HTTP基本上是一种无状态协议; 会话用于赋予其有状态.
Cookie是发送到客户端并从客户端返回的数据片段.Cookie通常用于促进会话,因为它告诉服务器哪个客户端处理哪个会话.还有其他方法可以做到这一点(查询字符串魔术等),但cookie可能是最常见的.
小智 11
会话和cookie之间的主要区别在于会话数据存储在服务器上,而cookie将数据存储在访问者的浏览器中.
会话比cookie更安全,因为它存储在服务器中.可以从浏览器关闭Cookie.
存储在cookie中的数据可以存储数月或数年,具体取决于cookie的生命周期.但是,当Web浏览器关闭时,会话中的数据将丢失.
是浏览器中保存的少量数据(客户端)
可以从 PHP 设置setcookie,然后将发送到客户端的浏览器(HTTP 响应头Set-cookie)
可以在 Javascript 中直接在客户端设置: document.cookie = 'foo=bar';
如果没有设置过期日期,默认情况下,它会在浏览器关闭时过期。
示例:访问http://example.com,打开控制台,执行document.cookie = 'foo=bar';. 关闭选项卡,重新打开同一个网站,打开控制台,执行document.cookie:你会看到foo=bar仍然存在。现在关闭浏览器并重新打开它,重新访问同一个网站,打开控制台;你会看到document.cookie是空的。
除了“浏览器关闭时删除”之外,您还可以设置精确的到期日期。
存储在浏览器中的 cookie 在同一网站的每个请求的标头中发送到服务器(请参阅 参考资料Cookie)。例如,您可以通过打开开发者工具 > 网络在 Chrome 中看到这一点,单击请求,请参阅Headers:
可以在客户端读取 document.cookie
可以在服务器端读取 $_COOKIE['foo']
奖励:它也可以用 PHP 以外的其他语言设置/获取。带有“瓶子”微框架的 Python 示例(另请参见此处):
from bottle import get, run, request, response
@get('/')
def index():
if request.get_cookie("visited"):
return "Welcome back! Nice to see you again"
else:
response.set_cookie("visited", "yes")
return "Hello there! Nice to meet you"
run(host='localhost', port=8080, debug=True, reloader=True)
Run Code Online (Sandbox Code Playgroud)是一些与浏览器会话相关的数据保存在服务器端
每个服务器端语言可能以不同的方式实现它
在 PHP 中,whensession_start();被调用:
在PHPSESSIDCookie设置没有到期日,因此,当浏览器关闭时它就会过期。因此,当浏览器关闭/重新打开时,“会话”不再有效。
可以在 PHP 中设置/读取 $_SESSION
客户端看不到会话数据,而只看到 ID:在index.php以下位置执行此操作:
<?php
session_start();
$_SESSION["abc"]="def";
?>
Run Code Online (Sandbox Code Playgroud)
在客户端看到的唯一内容是(如上所述)会话 ID:
因此,会话对于存储您不想被客户端看到或修改的数据很有用
如果您想使用自己的数据库 + ID 并使用传统 Cookie 向客户端发送 ID/令牌,则可以完全避免使用会话
Cookie作为文本文件格式存储在浏览器中.它存储有限数量的数据,最多4kb [4096bytes].单个Cookie不能容纳多个值但是我们可以有多个cookie.
Cookie易于访问,因此不太安全.setcookie()函数必须出现在标记之前.
会话存储在服务器端.会话没有这样的存储限制.会话可以容纳多个变量.因为它们不容易访问因此比cookie更安全.