http无状态设计与Cookie和Session

无状态指的是任意一个Web请求必须完全与其他请求隔离,当请求端提出请求时,请求本身包含了相应端为相应这一请求所需的全部信息。

1. 被调用者不保存参数,因为无需考虑参数逻辑

由使用者来保存状态,进行状态逻辑设计

http是无状态设计的,一些SDK的设计也可以是无状态的。

2. 而一些需求是需要有交互的,需要状态的

如:

a. 表单(Form);

b. 客户端的脚本处理、DOM处理等功能;

c. 服务器的CGI(Common Gateway Interface)以处理包含表单提交在内的动态请求。

交互是需要承前启后的,一个实际例子是,简单的购物车程序也要知道用户到底在之前选择了什么商品。

这种客户端与服务器进行动态交互的Web应用程序,都需要状态。

解决方法:

两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。

Cookie是客户端保存状态的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。Cookie一般是放在http header中的。比如user id, user name, user的身份信息,user school, user company等.当然服务端也会保留这些Cookie信息的,并且可以给这些Cookie添加额外的属性,如过期时间等。

Session是服务器来保持状态的解决方案。客户端浏览器与服务器之间一系列交互的动作称为一个Session,其不仅包含Session持续的时间,还包括操作,还有服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。服务器收到客户端请求时,会为该Session生成唯一的Session id,在Session被创建之后,就可以调用Session相关的方法往Session中增加内容了,而这些内容只会保存在服务器中,发到客户端的只有Session
id;当客户端再次发送请求的时候,会将这个Session id带上,服务器接受到请求之后就会依据Session id找到相应的Session,从而再次使用之。这样用户先前的状态或请求也就得以保持了。

而UserAgent是跟device相关的,软硬件的信息。与系统相关,与每个url都相关,但与user无关。是让服务器拿到这些信息,更好的适配这些请求。如版本信息、时区、浏览器的种类等等。

时间: 2024-10-13 22:25:23

http无状态设计与Cookie和Session的相关文章

java无状态登录实现方式之ThreadLocal+Cookie

注:本文提到的无状态指的是无需session完毕认证.取用户封装信息. 无状态的优点: 1.多应用单点登录:在多应用的时候仅仅需在登录server登录后.各子应用无需再次登录. 2.多server集群:无需制作会话共享的缓存就可以实现. 此方案的缺点: 1,依赖于cookie,尽管如今主流浏览器都支持cookie. 2.单点登录须要各子应用属于同一主域名下(跨主域名无法实现). 实现原理: 登录时封装用户信息,并将用户信息通过序列化加密写到用户cookie.当用户下次请求应用server时,过滤

Cookie和Session

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. Cookie机制 Cookie技术是客户端的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向

cookie、session、localStorage、sessionStorage区别

cookie.session 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. cookie 1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话

cookie 和 session

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. 1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个

Cookie和Session(转)

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 1.1 Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆.例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会

理解Cookie和Session机制

转自:http://my.oschina.net/xianggao/blog/395675 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. Cookie机制 Cookie技术是客户端的解决方案,Cooki

理解Cookie和Session机制(转)

目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie的有效期 Cookie的修改.删除 Cookie的域名 Cookie的路径 Cookie的安全属性 JavaScript操作Cookie 案例:永久登录 Session机制 什么是Session 实现用户登录 Session的生命周期 Session的有效期 Session的常用方法 Session

Cookie和Session机制详解

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. ?Cookie是客户端技术,程序(服务器)把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着

会话控制:cookie和session基础学习笔记

在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session) 我们可以简单理解为浏览器的开关. 其实对cookie和session也是主要为curd操作 cookie cookie 之前以字符串的形式保存在客户端 *.txt的格式.google等浏览器现在已经改为二进制存储,相对安全些,HTTP协议是无状态协议,cookie是服务器留在用户计算中的小文件,用来识别用户. 创建cookie setcookie() 函数用于设置cookie. setcooki