无状态设计的服务端

本文探讨了RESTful架构的三大核心特点:无状态性、幂等性和其基本概念。通过理解这些特性,开发者能够更好地设计和实现符合REST原则的API。

无状态, RESTful,idempotent(幂等性,无论报文何时到达、重复到达多少次,服务器给出相同的响应、没有产生副作用、或者是产生了相同的副作用)

http://blog.csdn.net/lvroyce/article/details/3941473

http://www.cnblogs.com/mrfangzheng/archive/2011/09/01/2161703.html

http://kyfxbl.iteye.com/blog/1831869

http://developer.51cto.com/art/200906/129424.htm

http://www.webspherechina.net/?action-blogdetail-uid-191-id-6562

http://developer.51cto.com/art/200905/122885.htm


### 状态机在客户端和服务端的实现与应用 #### 1. 客户端的状态机设计 客户端通过一系列离散状态来管理其在网络通信中的行为。这些状态反映了不同阶段的操作进展,例如初始化、连接建立、数据交换以及终止。 - **初始状态 (Initial State)** 当应用程序启动时处于此状态,在这里会准备必要的参数如目标主机地址和端口号等[^3]。 - **连接请求发出 (Connection Request Sent)** 发送SYN包之后进入该状态,此时正在等待来自服务器的回答以确认连接已成功建立[^2]。 - **已连接 (Connected)** 收到服务器发回的确立连接的消息后转入这个稳定的工作态;在此状态下可正常收发消息直到任一方决定关闭链接为止。 - **断开连接 (Disconnected)** 此过程通常由FIN标志位触发,表示不再有新的传输需求而主动结束对话,并清理占用资源以便下次重用。 ```java public enum ClientState { INITIAL, CONNECTION_REQUEST_SENT, CONNECTED, DISCONNECTED; } ``` #### 2. 服务端的状态机设计 对于服务端而言,同样存在一套用于描述自身工作流程的状态集合: - **监听模式 (Listening Mode)** 启动后的首要任务就是开启监听特定端口上的入站流量,随时准备好接纳新客户的接入尝试[^1]。 - **接收连接请求 (Receiving Connection Requests)** 接获初次握手信号(SYN),随即回复含有同步序列号及预期下一个字节编号的信息给对方,标志着即将形成一条双向沟通渠道。 - **活跃连接池维护 (Active Connections Pool Maintenance)** 成功建立起安全可靠的通道以后便能持续不断地处理多路并发访问事务,同时保持对现有会话的有效跟踪记录。 - **释放资源 (Resource Release)** 随着某些客户停止互动或者超出了预定时限未见活动迹象,则需适时回收相应硬件设施使用权并更新内部统计资料表单。 ```java public enum ServerState { LISTENING_MODE, RECEIVING_CONNECTION_REQUESTS, ACTIVE_CONNECTIONS_POOL_MAINTENANCE, RESOURCE_RELEASE; } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值