IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

本文深入探讨了HTTP短连接中的Cookie、Session和Token,讲解它们的原理、用途和应用场景。Cookie是客户端存储状态的方式,Session则在服务器端存储用户状态,而Token作为安全的身份验证方式,尤其适用于API无状态认证。理解这三者对于构建IM系统至关重要,特别是如何在安全性、效率和状态管理间做出最佳选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文引用了简书作者“骑小猪看流星”技术文章“Cookie、Session、Token那点事儿”的部分内容,感谢原作者。

1、前言

众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现。Http短连接主要用于从服务器读取各种持久化信息:比如用户信息、聊天历史记录、好友列表等等,长连接则是用于实时的聊天消息或指令的接收和发送。

作为IM系统中不可或缺的技术,Http短连的重要性无可替代,但Http作为传统互联网信息交换技术,一些典型的概念比如:Cookie、Session、Token,对于IM新手程序员来说并不容易理解。鉴于Http短连接在IM系统中的重要性,如何正确地理解Cookie、Session、Token这样的东西,决定了您的技术方案能否找到最佳实践。本文将从基础上讲解这3者的原理、用途以及正确地应用场景。

题外话:本文讨论的使用Http短连接的话题可能并不适用于微信这样的IM,因为微信的短连接并非使用Http标准协议实现,而是基于自研的Mars网络层框架再造了一套短连接机制,从而更适用于IM这种场景(更低延迟、更省流量、更好的弱网适应算法等),详情请见《如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源》。当然,Mars虽好,但不一定适合您的团队,因为定制的方案相较于标准通用方案来说,没有强大的技术实力,还是不太容易掌控的了的。

一篇文章:现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障》这篇文章详述了现今移动网络下http短连接的网络层技术问题,有助于更好地理解本文,有兴趣的话也推荐读一读。

学习交流:

- 即时通讯开发交流群:320837163[推荐]

- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM

(本文同步发布于:http://www.52im.net/thread-1525-1-1.html

2、系列文章

▼ IM开发干货系列文章(本文是其第13篇):

IM消息送达保证机制实现(一):保证在线实时消息的可靠投递

IM消息送达保证机制实现(二):保证离线消息的可靠投递

如何保证IM实时消息的“时序性”与“一致性”?

IM单聊和群聊中的在线状态同步应该用“推”还是“拉”?

IM群聊消息如此复杂,如何保证不丢不重?

一种Android端IM智能心跳算法的设计与实现探讨(含样例代码)

移动端IM登录时拉取数据如何作到省流量?

通俗易懂:基于集群的移动端IM接入层负载均衡方案分享

浅谈移动端IM的多点登陆和消息漫游原理

IM开发基础知识补课(一):正确理解前置HTTP SSO单点登陆接口的原理

IM开发基础知识补课(二):如何设计大量图片文件的服务端存储架构?

IM开发基础知识补课(三):快速理解服务端数据库读写分离原理及实践建议

IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token》(本文)

如果您是IM开发初学者,强烈建议首先阅读《新手入门一篇就够:从零开发移动端IM》。

3、什么是Cookie?

Cookie 技术产生源于 HTTP 协议在互联网上的急速发展。随着互联网时代的策马奔腾,带宽等限制不存在了,人们需要更复杂的互联网交互活动,就必须同服务器保持活动状态(简称:保活)。于是,在浏览器发展初期,为了适应用户的需求技术上推出了各种保持 Web 浏览状态的手段,其中就包括了 Cookie 技术。Cookie 在计算机中是个存储在浏览器目录中的文本文件,当浏览器运行时,存储在 RAM 中发挥作用 (此种

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值