29、Rails 请求跨域对象与操作详解

Rails 请求跨域对象与操作详解

1. 跨请求的对象与操作概述

在处理请求和响应时,除了孤立地看待它们,还需要考虑跨请求的状态管理。虽然大部分持久化状态存储在数据库中并通过 Active Record 访问,但仍有一些状态需要不同的管理方式。比如在 Depot 应用中,购物车本身存储在数据库,但当前购物车的信息通过会话管理;闪存通知用于在重定向后向下一个请求传递消息;回调则用于从 URL 中提取区域设置数据。

2. Rails 会话

2.1 会话的基本概念

Rails 会话是一种类似哈希的结构,能够在请求之间持久化。与原始 cookie 不同,会话可以存储任何可序列化的对象,这使得它非常适合在 Web 应用中保存状态信息。例如,在商店应用中,可以使用会话在请求之间保存购物车对象。Rails 会在每个请求处理结束时保存购物车,并在处理新请求时恢复正确的购物车。

2.2 会话数据的存储位置

会话数据的存储有两种选择:
- 作为 cookie 发送到客户端 :这是 Rails 的默认方式。它会对内容进行加密,用户无法查看或篡改,但大小限制为 4KB,且会增加带宽消耗,不过服务器管理和清理的工作较少。
- 存储在服务器上 :设置较为复杂,通常很少需要。Rails 会创建一个 32 位十六进制字符的会话 ID 作为 cookie 存储在用户浏览器中,通过该 ID 在服务器上的持久化存储中查找会话数据。请求处理时,Rails 会反序列化数据并存储在控制器的会话属性中,处理结束后再将数据写回存储。

2.3

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值