如题,最近刚刚学习http。在一个应用中使用http协议与服务器进行数据传输。现在遇到的问题是,在登录中密码进行多次加密,这个过程需要和服务器不断地进行数据交互才能完成。有没有办法可以实现?就是在服务器返回第一次数据的时候继续等待客户端返回一串处理后的数据,如此不断地进行交互。如果可以的话,怎么实现?如果不行的话有没有别的方式可以实现?
从连接的角度,只能是一次请求,一次响应。第二次请求和第一次请求没有直接关联。不过,服务器和客户端可以通过某种机制来保持状态,从而关联多次请求。比如cookie+session。
对于你这个场景,比如可以这么设计:
c-->s 客户端发起登录请求
s-->c 服务器生成一个唯一session保存,并将对应的cookie和产生的随机数发送给客户端。session和cookie和随机数到对应关系应该由服务端保存
c-->s 客户端收到随机数加密后得到密文,将密文跟cookie一起发给服务端
s-->c 服务端根据cookie,查找到session和之前生成的随机数,并校验加密结果,从而验证客户端合法。
到这里,服务端就可以认为客户端登录成功,当然也可以继续验证,直到验证完成。不过,总的来说,每次交互都是从客户端首先发起,服务端才能响应,这是HTTP1.0的根本规范。HTTP 2.0就不一样了,这就另说了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。