PHP的Cookie、Session和跟Laravel相关的几点了解

这两天通过对Cookie和Session的查找和了解,网上关于它们两个的基础知识点都是差不多的,也收藏了几篇不错的博客,同时自己做了些实验后,有了以下几点了解:

1、setcookie 这里有三个地方需注意:

  (1)expire 是指 cookie 的有效期,之前跟 cookie 的属性 maxAge 搞混,以为同样写个正数就可以,其实它的时间是从最原始时间 Thu, 01-Jan-1970 00:00:01 GMT 开始算起的,所以一开始写个很小的数字怎么弄都无法获取到 cookie,其实是有效期不起作用,原始时间加上不大的正数肯定不会超过现在的时间,最好写为:time() + 正数。

  (2)domain 指的是域,表示设置的 cookie 在某个域下可用。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该 cookie。注意第一个字符必须为“.”。不写的话默认是你网站的域名了。

  (3)path 指的是路径,如果设置为“/sessionWeb/”,则只有 contextPath 为“/sessionWeb”的程序可以访问该 cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”。不写的话默认是 "/"。

2、设置 cookie 后需刷新或重新打开页面才看得到 cookie,因为第一次是设置,发送给客户端,客户端也无法携带,第二次才会携带。

3、使用 session 时,其实它先通过 session_start() 构造 PHPSESSID 的 session id,并作为 cookie 传给客户端,之后客户端就会携带这个 PHPSESSID 的 cookie,session id 默认在域下,因此同个浏览器访问域的不同页面 session id 会一样。

4、对于同个连接,若没对 session 进行清除或过期或关闭页面,session_start() 只会生成一次 id。

5、可以在 php.ini 文件对 session 的相关属性进行修改,如 session 存储方式、存放路径、过期时间等等。

6、setcookie(session_name(),‘‘,time()-3600,‘/‘);    //删除本地相关联的

   cookiesession_unset();                                     //清空内存中的cookie或者是$_SESSION = array();

session_destroy();                                            //删除服务器端的session文件

7、可以通过 session_id() 自己设置 session id。

8、session 可以存储在内存、文件或数据库,在 I/O、性能、存储大小等各有优缺点,只是对于存储在数据中的话,如果事先无法确定 session 格式的话,数据库存储难以扩展,对于多维的数据比较麻烦,虽然可以保存很好。

9、对于 Laravel,根据网上了解,它的 session 机制没有使用 PHP 的机制,而是自己重新构建一套自己的机制,而且它每个请求都会发送 laravel_session 的 cookie,这样可以避免被劫持,保证安全性。而且同个域下的项目,如果两个项目一样的话,会造成 session 冲突从而无法进一步请求,会被自己设置的过滤或安全机制给拒绝。

10、session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc"); 设计自己所需要的 session_start() 机制。

11、cookie 和 session 设置前不要有任何输出,因为它们是以请求头的形式发出的,http 规定发送请求头时不能有内容输出,否则会报错。

时间: 2024-10-21 01:48:15

PHP的Cookie、Session和跟Laravel相关的几点了解的相关文章

python Cookie Session 相关用法

Cookie一.前言1.http协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响 应情况直接影响,也不会直接影响后面的请求响应情况.2.cookie产生背景; 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留.会话中产生的数据又是 我们需要保存的,也就是说要"保持状态".3.什么是cookie? Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组

Django9 Cookie&Session

Cookie 获取Cookie request.COOKIES["key"] request.get_signed_cookie(key, default=RAISE_ERROR, salt="", max_age=None) # 参数 # default:默认值 # salt:加密盐 # max_age:后台控制过期时间 设置Cookie rep = HttpResponse(...) 或 rep = render(request, ...) rep.set_co

Cookie Session 分页

cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况. 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的. 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留.会话中产生的数据又是我们需要保存的,也就是说要"保持状态".因此cookie就是在这样一个场景

1204 中间件以及cookie,session

目录 一 .cookie与session原理 1.cookie 操作 1.1 设置cookie set_cookie 1.2 获取cookie request.COOKIES.get('k1') 1.3 设置cookie的超时时间 max_age = num 1.4 删除cookie delete_cookie('k1') 代码 2.session 相关方法 2.1 设置session session[k]=v 2.2 获取session session.get 2.3 删除session se

cookie&session及自定义分页

cookie&session和自定义分页 cookie由何而来? 由于HTTP协议是无状态的,即每次请求都是独立的,如:人生只如初见. 状态可以理解为客户端和服务器在某次会话中产生的数据,无状态的就是这些数据不会被保留.但在实际中,会话中产生的数据又是我们需要保存的.因此Cookie就是在这样一个场景下诞生. 什么是Cookie? Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息. Cookie的

【转】学习总结--Cookie & Session总结

转载地址:http://www.phperzone.cn/portal.php?aid=718&mod=view 一.状态管理1)什么是状态管理?   将浏览器与web服务器之间多次交互过程当做一个整体来处理,并且将多次交互所涉及的数据进行管理.2)状态管理技术cookie:    a,什么是cookie?   是一种客户端(浏览器)的状态管理技术.   浏览器在访问web服务器的时候,服务器会将少量的数据以set-cookie消息头的方式发送给浏览器,浏览器会将这结数据保存下来:当浏览器再次访

Cookie&&Session会话技术之再体验

1.转发与重定向[****]    * 重定向:重新确定请求方向        * 发送者:服务器 --> 响应(response)浏览器        * 执行者:浏览器 --> 重新请求        * 跳转        * response.sendRedirect("/day04/1.html");        * //完全等价,隐藏了HTTP协议的具体要求        * response.setStatus(302);        * response

cookie,session,sessionid

http协议是无状态的,意思是每次请求的状态不会保存.因此,产生了cookie,session之类保存会话状态的机制.1.什么是cookiecookie将信息存储在客户端浏览器中.cookie的内容主要包括:key,value,expire_time,path(路径),domain(域)浏览器发送请求是会查找对应的path,domain,把符合的cookie自动发送给服务器. 2.什么是sessionsession在服务器端生成,然后会将对应的sessionid在浏览器端使用cookie保存起来

Cookie & Session & CSRF

新blog地址:http://hengyunabc.github.io/cookie-and-session-and-csrf/ 在线幻灯片地址:Cookie & Session & CSRF