我们究竟如何为http添加状态而没有我们当前使用的涉及查询字符串,隐藏字段,cookie和会话状态的黑客替代方法?如何实现有状态的HTTP协议?
4
A
回答
6
它不会。 HTTP中的基本假设之一是客户端正在请求页面,并且页面或多或少是静态的(可能有一些额外的参数,cookie等)。每个请求都是独特而独立的,并且协议并非真的是被设计为有状态 - 这大大简化了客户端和服务器的实现。
跟踪状态是一个更高级别的功能 - 这是留给服务器或客户端分开。
由于某种原因,这些解决方法是骇人听闻的:HTTP意味着主要是无状态的。 “有状态的”HTTP是不可能的,因为它不再是真正的HTTP,它完全不同。
+0
微软NTLM依赖于HTTP状态,即要求客户重复使用身份验证和后续请求相同的连接。这是一个可怕的,可怕的想法,它违反了HTTP/1.1 RFC,它使代理变得不可能。总之,不要走这条路。它会导致痛苦和痛苦。 – Saustrup 2017-01-30 12:40:57
2
有状态的HTTP可能看起来很像FTP,telnet或IM。基本上有状态意味着我们正在跟踪连接丢失时丢失(暂时或永久)的连接状态数据。
HTTP最初是作为一种无状态协议来降低传输数据的复杂性,并允许客户端根据需要处理请求资源,而不是假定它们都是当前会话的一部分(如FTP )。
-1
这并不直接回答你的问题(其他人已经这样做),但如果你正在寻找如何将这种双向通信部分将工作,你可能会感兴趣的HTML5 Web Sockets API。
相关问题
- 1. scala/akka有状态协议实现
- 2. 如何使用WebRTC实现HTTP协议?
- 3. 无状态协议和有状态协议
- 4. web的含义是无状态的,http是无状态协议?
- 5. 如何实现协议
- 6. Linux协议中的http协议实现在哪里
- 7. 实现NSCoding协议
- 8. 有效实施现有的协议
- 9. 如何实现UIApplicationDelegate的协议方法?
- 10. 如何实现Three20框架的协议?
- 11. 使用带有加密的HTTP协议实现WCF服务
- 12. 检索SQL协议状态
- 13. 协议状态和转换
- 14. WebDav协议VS HTTP协议
- 15. CSAFE协议的实现
- 16. 网络协议的实现
- 17. RFB协议的实现
- 18. 协议实现中的IBOutlet
- 19. Jquery的Bayaux协议实现
- 20. Facebook的AppDelegate没有实现'FBSessionDelegate'协议
- 21. 如何在Ruby中实现INSTREAM协议?
- 22. 如何检查协议是否实现?
- 23. 如何在MPI协议中实现MPI_Comm?
- 24. 你如何实现UIAccessibility协议?
- 25. 协议在内部如何实现?
- 26. 如何实现自定义协议
- 27. NSArray如何实现NSCopying协议
- 28. 如何实现应用程序协议
- 29. CLLocation如何实现Equatable协议?
- 30. 是基于现有协议的协议还是协议?
+1有趣的问题 – 2012-10-18 21:13:09