验证码的实现思路

验证码的实现思路流程

最近学习了下这方面的内容,就简单的理一下思路,这里就拿12306的图片验证码举例子其实大致的实现思路可以是这样子的

  • 去数据库随机抽取八张图片
  • 数据存入session,关于session的解释session 是一个抽象概念,由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是session
  • 生成验证图形,客户端进行对图片组合,比如拿12306来讲,可以取到图片随机组合,然后随机产生一个图片中的名字,然后以及那个名字所对应的图片的坐标,这个坐标就是答案了。
  • 发送图像给客户端
  • 根据返回来的坐标,比较验证码正确性

具体流程如下所示

验证码的实现思路

关于12306验证码是如何验证,其实是这样的

验证码的实现思路

通过调试工具找到它的这个图片的标签
验证码的实现思路

其实它发送给服务器的就是这些坐标来进行验证的

验证码的实现思路

我们进行提交,传送给服务器的数据
验证码的实现思路