为实现电子阅读器与服务器的数据交互,实现电子杂志的浏览和下载功能,特制定本协议;服务器端和电子阅读器端的通讯软件设计以本协议为规范
电子阅读器与服务器通讯协议
版本1.0
石军 编制
2009-1-12
一.目的
为实现电子阅读器与服务器的数据交互,实现电子杂志的浏览和下载功能,特制定本协议;服务器端和电子阅读器端的通讯软件设计以本协议为规范。
二.电子阅读器与服务器之间会话Session的建立
阅读器与服务器之间的通讯采用HTTP协议,HTTP是一个无状态连接协议,为了追踪阅读器状态,通过Cookie以及基于Cookie的Session技术,Cookie是服务器端保存在客户端的小段信息,通过名-值对的形式附加在http头上,在客户端与服务器端传递。当一个新的连接建立时,一个新的JSESSIONID被建立,并被发送到客户端,客户端保存这个JSESSIONID,并且每次与服务器连接时,将这个JSESSIONID附加在连接的http头上,这样服务器就知道这些连接来自于同一次会话Session.
阅读器首次与服务器连接时没有会话Cookie, 服务器通过http头的set-cookie向客户端指定新的Cookie:
Set-Cookie:JSESSIONID=7C5E5F073FEAE04005A1CD69112162FE;Path=/EBookS;expire=datetime;domain=domain;
客户端在http头上把Cookie发回服务器端:
Cookie:JSESSIONID=7C5E5F073FEAE04005A1CD69112162FE;
通讯流程:
1. 阅读器 ——> 服务器:首次不带JSESSIONID
2. 服务器 ——> 阅读器:
Set-Cookie:JSESSIONID=7C5E5F073FEAE04005A1CD69112162FE;
3. 阅读器 ——> 服务器:
Cookie:JSESSIONID=7C5E5F073FEAE04005A1CD69112162FE;
4. 服务器 ——> 阅读器:不带Cookie
5. 如果服务器重启,要重设Session,阅读器凡是收到Set-Cookie:JSESSIONID要更新会话JSESSIONID
服务器访问地址例:BasePath = http://192.168.99.80/
以下地址描述都相对于根地址BasePath.