教务系统模拟登陆原理
——先说一下正常从网页访问教务系统页面并登陆的大概流程,首先,我们会访问到登陆页面,然后我们填写,用户名,密码,验证码,然后点击登陆,最后我们等待网页自己响应,若成功则跳转网页,若失败则给出相应提示,然后我们根据提示修改我们的输入信息再次点击登陆等待结果。
那什么是模拟登陆,就是我们的程序模拟网页客户端登陆服务器,那我们就需要做与网页客户端类似的处理,这样服务器才会给我们返回正常客户端登陆后的信息也是我们模拟登陆的目的所在。
模拟登陆的原理是这样的(以模拟登陆教务系统为例):首先我们通过我们的代码去访问登陆页面,同时获取到本次登陆的cookie(里面包含sessionId)和一些后面要用到的键值对数据,具体要用到哪些需要自己去探索,然后把它们保存起来,然后在通过代码去访问验证码的URL,返回的是一张验证码图片,然后让用户输入用户名,密码,验证码,点击登陆,我们的程序则负责带着head和body表单去请求数据,若用户输入无误则登陆成功并返回我们想要的数据,否则,需要重新刷新验证码然后用户再次输入,点击登陆。
cookie和session的区别
同:
它们的功能都是服务器对客户端的身份验证。
异:
1.cookie是客户端本地保存的,session是服务器保存的。
2.cookie不安全,如果本地删除则就没了,session相对cookie就比较安全了,因为用户不能对它修改。
3.cookie有时间限制也可以长久保存,session与网页同灭。
适用场景:
1.如果访问量比较大且不注重安全问题,则使用cookie比较好,因为session保存在服务器上,访问量大会占用大量服务器资源,降低服务器效率。
2.访问量不多又比较注重安全问题,则使用session比较好。
个人认为cookie更好一些,因为sessionId还是保存在cookie里,所以cookie更常用一些。
打开/搜索一个网页的过程中服务器和客户端到底发生了哪些事情?
用户上网输入网址–>浏览器向DNS请求解析IP地址–>域名系统DNS解析出服务器的IP地址–>浏览器和服务器建立TCP连接–>浏览器打包发送请求–>服务器相应并返回文件–>释放TCP连接–>浏览器上显示页面。