代做ppt的网站,ps海报素材网站,乐山做网站,网站建设如何做报价喜欢就点关注吧!月高风下#xff0c;下班路上....菜菜哥#xff0c;告诉你一个秘密#xff0c;但是不允许告诉任何人这么秘密#xff0c;你有男票了#xff1f;~不是#xff0c;昨天我偷偷去面试了#xff0c;结果挂了这不是好事吗#xff0c;上天让公司留住你.....好吧… 喜欢就点关注吧!月高风下下班路上....菜菜哥告诉你一个秘密但是不允许告诉任何人这么秘密你有男票了~不是昨天我偷偷去面试了结果挂了这不是好事吗上天让公司留住你.....好吧不过还是要请教你一个问题cookie和session有什么相同和不同吗这个可能要讲很长时间定义Cookie有时也用其复数形式 Cookies指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据通常经过加密Session在计算机中尤其是在网络应用中称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。很简短的两段定义但是已经道出了cookie和session本质的区别一个位于客户端一个位于服务端。这个特性带着浓重的色彩实际中的应用都离不开这个定义。存储这里针对浏览器中的cookie来讨论不要做过多遐想如果抛开其他特性来说cookie本质上是浏览器http请求提供的一种客户端存储的数据但是这个存储数据有自己的一些特性比如cookie长度的限制跨域的限制当然可以在服务端配合的情况下的突破这种限制等。就像所有的存储一样cookie也可以保存在内存中也可以保存在磁盘中只不过保存在磁盘的时候是在浏览器的存储目录下毕竟cookie是基于http的http请求又基于浏览器。session在很多情况下被称为会话本质上是一种服务端的存储数据。诞生的主要原因是为了解决http无状态这种特性。既然是数据其实就可以存储于任何介质中像实际应用中有存储于内存中的也有存储于redis的。所以只要看透了它的本质存储在哪里可能就只是一个驱动的问题了。其实完全可以自己写一个程序把session的数据存储在txt中只不过性能上可能需要多加考虑。有联系吗cookie当用户第一次访问并登陆一个网站的时候cookie的设置以及发送会经历以下4个步骤1. 客户端发送一个请求到服务器 --》 2. 服务器发送一个HttpResponse响应到客户端其中包含Set-Cookie的头部 --》 3. 客户端保存cookie之后向服务器发送请求时HttpRequest请求中会包含一个Cookie的头部 --》4. 服务器返回响应数据set-cookie: session4a0b9b1cce73c469b8a6b6a8aec294d5; domain.xx.com; path/; expiresSun, 25 Aug 2019 08:21:27 -0000; secure; HttpOnly
以上过程很明显是一个最常见的场景cookie的特性以及值是由服务端来下发但是不要忘记cookie本质上是一种客户端技术所以客户端其实同样能操作cookie比如登录的时候服务端的返回结果中可以不包含set-cookie的头部而是把值通过正文来返回客户端脚本通过读取返回的正文解析出结果然后写入cookie同样能达到相同的效果。set-cookie只不过是http协议中已经约定好的格式服务端告诉客户端需要设置cookie的协议而已。当然cookie还有其他很多特性可能随着发展有所增加或者减少属性介绍namename字段为一个cookie的名称valuevalue字段为一个cookie的值domain可以访问此cookie的域名path可以访问此cookie的页面路径expires/Max-Age此cookie超时时间。SizeSize字段 此cookie大小httpcookie的httponly属性secure设置是否只能通过https来传递此条cookie由于浏览器的安全策略不同域名何为不同域名请百度的cookie是不允许的但是可以通过服务端的配置可以解决这个问题。sessionsession的创建目的初衷就是为了让服务端记住会话简而言之就是让服务端能识别出来是哪个客户端既然要记住那服务端必须要存储每个会话的数据比如实际项目中最常用的用户信息等。服务端存储这些用户数据没问题最大的一个障碍是怎么样识别诸多请求中哪些是同一个会话。要解决这个问题只依靠服务端无法解决必须需要客户端来配合需要上传会话的标识。客户端上传会话的标识必须是客户端和服务端都能支持的协议和数据其实也可以看做是http请求支持的协议和数据既然是基于http请求最方便的就是利用cookiecookie是一种key-value的数据存储格式value的值正适合作为session的标识session也是一种key-value的存储在这种情况下cookie终于和session有了一定的联系。session机制利用cookie来作为标识的传输机制并不意味着只能用cookie只要是服务端和客户端约定好了位置session标识我可以放到http请求的任何位置当然http请求必须得支持传输才可以。你完全可以把session的标识放到http头Authorization字段只要服务端能正确的读到此值并且正确解析即可。有些面试官喜欢问cookie和session的相同和不同甚至他们的联系这样的提问在某种程度上是不太好的容易让人错误的认为cookie和session的联系很密切但是其实他们的联系很单纯纯洁的朋友利用关系。此文篇幅属于5分钟系列更能有效利用碎片化时间下一篇我们也许可以讨论一下基于cookie和session的认证完●程序员修神之路--用NOSql给高并发系统加速●程序员修神之路--高并发系统设计负载均衡架构●程序员修神之路--做好分库分表其实很难之一继续送书●程序员修神之路--做好分库分表其实很难之二送书继续●程序员过关斩将--你为什么还在用存储过程●程序员过关斩将--小小的分页引发的加班血案●程序员修神之路--问世间异步为何物●程序员修神之路--提高网站的吞吐量?●程序员修神之路--?分布式高并发下Actor模型如此优秀?●程序员过关斩将--你的面向接口编程一定对吗●程序员修神之路--高并发下为什么更喜欢进程内缓存