在WEB架构的系统中,通常是浏览器发出请求,服务端完成相应操作并发出新的页面给客户端。但是常常,用户或系统要完成一个操作,并不需改变客户端的页面显示。即,这个操作它是安静的。
如果调用者是系统好办,直接调用函数就行了。可是由用户来发出的指令,要完成一个功能,都需从客户端发出一个HTTP请求,这个请求也就是一个url request。又不想影响页面表现,如只需更新一下数据库。那该怎么样设计这个结构呢。
不使客户端所看到的页面发生跳转,而又要通过HTTP发出操作请求,有以下方法:
1)新开一个IE窗口,请求指定URL,缺点:客户端会感觉新弹出窗口,而且经常会被拦截
2)使用当前页面内嵌的框架,请求指定URL。缺点:要改变原网页的结构
3)使用AJAX中的异步请求。
这些操作,即“存储过程”肯定是用函数来写,存放在相应文件中,操作名可以是文件名加上函数名,来实现这些函数的动态加载。
但不管怎样,这些操作的请求还是要通过客户端发出HTTP请求来完成的,怎样限制这个请求的入口,避免客户端随意地通过模拟请求调用呢,当然要隐藏请求的参数。
1)将调用的参数存储在SESSION里,既服务端;
2)给存储过程加上前置权限过滤器,对请求的操作先进行权限判断;
3)有一种前置权限定义为,窗口KEY,即提供请求的一方,提供了有一定寿命的KEY,用该KEY只在指定的时间内去调用操作才有效;
阅读(987) | 评论(0) | 转发(0) |