开发者社区> 问答> 正文

httpClient能不能在一次post请求中进行多次数据交换?

如题,最近刚刚学习http。在一个应用中使用http协议与服务器进行数据传输。现在遇到的问题是,在登录中密码进行多次加密,这个过程需要和服务器不断地进行数据交互才能完成。有没有办法可以实现?就是在服务器返回第一次数据的时候继续等待客户端返回一串处理后的数据,如此不断地进行交互。如果可以的话,怎么实现?如果不行的话有没有别的方式可以实现?

展开
收起
蛮大人123 2016-03-11 16:10:01 4162 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    从连接的角度,只能是一次请求,一次响应。第二次请求和第一次请求没有直接关联。不过,服务器和客户端可以通过某种机制来保持状态,从而关联多次请求。比如cookie+session。
    对于你这个场景,比如可以这么设计:
    c-->s 客户端发起登录请求
    s-->c 服务器生成一个唯一session保存,并将对应的cookie和产生的随机数发送给客户端。session和cookie和随机数到对应关系应该由服务端保存
    c-->s 客户端收到随机数加密后得到密文,将密文跟cookie一起发给服务端
    s-->c 服务端根据cookie,查找到session和之前生成的随机数,并校验加密结果,从而验证客户端合法。
    到这里,服务端就可以认为客户端登录成功,当然也可以继续验证,直到验证完成。不过,总的来说,每次交互都是从客户端首先发起,服务端才能响应,这是HTTP1.0的根本规范。HTTP 2.0就不一样了,这就另说了。

    2019-07-17 18:59:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载