目录
前言
HTTP协议的无连接,无状态的,这两种状态都存在一定的缺点,无连接可以使用koop-alive解决,那么无状态服务怎么解决呢?
1.cookie和session是为了解决什么问题产生的?
首先我们知道因为HTTP是无连接的,当请求结束连接就会中断所以会产生身份识别的问题。
因此诞生了cookie甚至于在localStorage出现之前浏览器存储功能都是依靠cookie来完成的
但是它的原理简单到爆,一句话就是当浏览器访问服务器时,服务器会向浏览器发送一个cookie
可以理解为标识符,下次浏览器再向服务器发送请求时在上行报文中携带这个标识符(cookie)
服务器就能够根据标识符做出识别,当服务器在下行报文中设置cookie的持续时间
所以cookie就是一个浏览器跟服务器通讯的信物,如果是中国人发明可能就是黑话,这个基础是建立在HTTP无连接
那么有了cookie,为什么还要有session呢?有了cookie可以向服务器证明用户身份了,我们的web系统中是不是需要将用户的详细信息储存在某个位置供页面调用呢?用户的详细信息就包括姓名,年龄,性别等信息。而cookie是存在于客户端的,将用户详细信息通过网络发送到客户端保存是极不安全的。且cookie大小不能超过4k,不能支持中文。这就限制cookie不能满足存储用户信息的需求。这就需要一种机制在服务器端的某个域中存储一些数据,这个域就是session。
总而言之,cookie/session的出现就是为了解决http协议无状态的弊端,为了让客户端和服务端建立长久联系而出现的。
2.什么是会话技术?
帮你存储一些在交互过程临时产生的数据
当你打开浏览器,访问一个网站,认为会话开始了,当你关闭浏览器的时候,会话结束了
接下来先详细介绍cookie,session和token,当你充分了解他们之后,就会发现他们的区别
3.cookie详解
Cookie的表示
一般情况下,cookie是以键值对进行表示的(key-value),例如name=jack,这个就表示cookie的名字是name,cookie携带的值是jack。
Cookie的组成
下面我自己写了一个简易Servlet来设置cookie,我们游览器抓包进行查看。然后进行分析
</