SessionCookieName可以在Laravel的配置文件config/session.php中设置,例如在本项目中,名称设置为“sns_session”:/*|------------------------------------------------------------------------|会话Cookie名称|--------------------------------------------------------------------------||您可以在这里更改用于识别会话的cookie的名称|通过ID实例。此处指定的名称将在每次|新的sessioncookie是框架为每个driver创建的。|*/'cookie'=>'sns_session',我们可以看到刷新页面,查看cookie,会发现一个名为sns_session的cookie,这个名字是我们自定义的。这个sessionid是cookie和session之间的桥梁,服务器通过这个sessionid来判断客户端的请求来自于哪个。Laravel的sessionid每次都变,但是每次刷新页面,cookie值都会变!那么服务器是如何通过这种方式维护会话的呢?因为你的sessionid一直在变。让我们在vendor/laravel/framework/src/Illuminate/Session/Store.php的save方法中进行调试,并在此处打印调用堆栈:/***{@inheritdoc}*/publicfunctionsave(){$this->addBagDataToSession();$this->ageFlashData();$this->handler->write($this->getId(),$this->prepareForStorage(序列化($this->attributes)));$this->started=false;dd(debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT,5));}每次刷新页面,Store对象的id属性不变,这个属性就是sessionidcookie的值。也就是说,sessionid的值并不是每次都变,而是在写cookie的时候,值变了。Laravel加密cookie。原因在vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php中的encrypt方法中找到。这个中间件加密了所有的cookie值,包含在web中间件中。protectedfunctionencrypt(Response$response){foreach($response->headers->getCookies()as$cookie){if($this->isDisabled($cookie->getName())){继续;$response->headers->setCookie($this->duplicate($cookie,$this->encrypter->encrypt($cookie->getValue())));}return$response;}而这种加密方式每次加密的结果都不一样,所以看起来sessionid的值每次都变了,但实际上并没有变。当需要这个cookie时,它会被解密回来。Laravel框架可能是为了防止会话劫持而设计的!考虑的还是很全面的!其他补充知识NativePHPsetsessionnamesession_name()function:";?>session_name()函数返回当前会话名称。如果指定了name参数,session_name()函数将更新会话名称并返回原始会话名称。当请求开始时,sessionname会被重置并存储在session.name配置项中。因此,要设置会话名称,对于每个请求,都需要先调用session_name()函数,然后再调用session_start()或session_register()函数。COOKIE和SESSION的区别和关系COOKIE是存储在客户端的,而SESSION是存储在服务器端的。从安全的角度来说,SESSION更安全。从存储内容的类型来看,COOKIE只存储字符串(并且可以自动转换成字符串)从保存内容的大小来看,COOKIE保存的内容有限,比较小,而SESSION基本没有有这个限制。从性能上来说,使用SESSION会给服务器带来更大的压力有些SEEION依赖于COOKIE,但是如果禁用了COOKIE,也可以通过url传递嗯,我的新课程《图解HTTP精华解读》已经开始注册了。注册地址:https://segmentfault.com/l/15...本课程内容是本书的精华《图解HTTP》,不管你有没有看过,在这本书中,我们可以对知识进行全面的梳理关于HTTP的要点。课程的目标不仅是总结本书的知识,还结合工作和个人理解,从不同角度讲解HTTP的知识,重点补充websocket的应用和HTTP/2的介绍。它面向想要加深对HTTP协议理解的人。或者综合梳理复习一下HTTP知识点。难度级别比较简单易懂,但是知识点很多,内容很重要。从输入URL到页面显示的主要内容发生了什么变化?HTTP协议基础(无状态、持久连接、消息、状态码、cookies等)为什么要使用HTTPS?HTTPWEB安全防范的缺点和不足(防注入、CSRF攻击及原理)websocket原理简单演示websocket服务端搭建及客户端交互流程HTTP/2介绍让我们一起开启HTTP之旅吧!
