Android网络编程(二)-Session和Cookie的区别

一、Session:

在Web开发中,session代表浏览器与服务器的一次会话过程,这个过程是连续的,也可以时断时续的;通常指从进入系统到退出系统之间所经历的时间。

由于Web的所使用的HTTP协议是无状态的,每一次请求之间都是彼此独立的。有的时候,我们需要在两个彼此独立的请求之间共享一些状态

二、Cookie:

cookie是浏览器存储在用户电脑上的一些数据(以文本文件的方式);每次发起请求时,浏览器都会将对应的cookie数据一起发送至服务器。

HTTP协议是无状态的,cookie就是用来保存服务器和客户端的交互状态

Android网络编程(二)-Session和Cookie的区别_第1张图片

cookie生命周期:

未指定过期时间的cookie;当服务器创建一个cookie的时候没有指定对应的过期时间时,客户端会将这类cookie写入浏览器开辟的一块内存中,当关闭浏览器以后,这块内存也就被释放了,对应的cookie也就是结束了它的生命;

指定过期时间的cookie;当服务器创建一个cookie的时候指定了对应的过期时间时,当到达了过期时间时,对应的cookie就会被删除;

当浏览器中的cookie数量达到了限制时,那么浏览器就会按照某种策略删除一些旧的cookie,腾出空间来创建新的cookie;

当然了,我们也可以手动的人为删除cookie。

浏览器不会让cookie肆意的发展,它总会在需要的时刻出马,干掉一些cookie,结束它们的生命

各大浏览器都对cookie的总个数和总大小都有限制:

Android网络编程(二)-Session和Cookie的区别_第2张图片

Session与cookie的区别:

cookie机制采用的是在客户端保持状态的方案;而Session机制采用的是在服务器端保持状态的方案。Cookie的作用主要是为了解决HTTP协议无状态的问题,而Session机制则是一种在客户端与服务器之间保持状态的解决方案。

Cookie使用起来很方便,使用cookie也能完成session的工作;但是使用cookie有一个很大的弊端,cookie中的所有数据在客户端可以被修改,数据非常容易被伪造,那么一些重要的数据就不能存放在cookie中了,而且如果cookie中数据字段太多会影响传输效率。为了解决这些问题,我们就需要使用session了,session中的数据是保留在服务器端的,相对来说更安全,同时也没有客户端到服务器端这个传输的问题。

你可能感兴趣的:(Android网络编程(二)-Session和Cookie的区别)