ChromeDriver与httpRequest切换

现在正学习着 无头浏览器与http协议之间互相切换使用。
我想一开始用无头浏览器去访问首面,然后拿出他的cookies 把他放进我的http里,然后去访问获取验证码的地址。调用识别验证码库(识别出来是准备的),然后把验证码输入到无头浏览器中登录。但还是报验证码错误。请问这是什么原因导致的呢?

你试试看看网站的js,答案就在里面

由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保存Session的方法很多,内存、数据库、文件都有。集群的时候也要考虑Session的转移,在大型的网站,一般会有专门的Session服务器集群,用来保存用户会话,这个时候 Session 信息都是放在内存的,使用一些缓存服务比如Memcached之类的来放 Session。

作者:知乎用户
链接:https://www.zhihu.com/question/19786827/answer/28752144
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

服务器端在生成验证码前,会将验证码放在session中,用户填入验证码后,比对session中保存的值是否一致,不一致就会报验证码错误,服务器端通过jessionId来识别不同的客户端,你的两个客户端的jessionID不一致,会被认为是两个客户端,第一个客户端的session保存了验证码的值,第二个客户端提交是不同的session

这个应该是获取验证码时候的Session标识和提交时的Session标识不一致造成的,建议把获取和提交放在一起,解析可以单独进行。