2

1.Cookie

  • HTTP1.0中协议是无状态的,但在WEB应用中,在多个请求之间共享会话是非常必要的,所以出现了Cookiecookie是为了辩别用户身份,进行会话跟踪而存储在客户端上的数据;
    clipboard.png
  • 属性
    clipboard.png

2.Session

  • session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而session保存在服务器上,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了;
  • 实现过程

    • 在服务器端生成全局唯一标识符session_id
    • 在服务器内存里开辟此session_id对应的数据存储空间;
    • session_id作为全局唯一标示符通过cookie发送给客户端;
    • 以后客户端再次访问服务器时会把session_id通过请求头中的cookie发送给服务器;
    • 服务器再通过session_id把此标识符在服务器端的数据取出
    • 如果客户端的浏览器禁用了 Cookie 怎么办?一般这种情况下,会使用一种叫做URL重写的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上
  • 属性
    clipboard.png

3.Cookie和Session的区别

  • cookie数据存放在客户的浏览器上,session数据放在服务器上(一般以内存、数据库、文件形式)。
  • session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用Cookie;
  • 单个cookie保存的数据不能超过4K,Session没有大小限制;
  • 总结:Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在内存,集群、数据库、文件中;Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

何凯
966 声望174 粉丝

Never too late to learn!