作者:海鹰
此教程讲述如何对前端后台进行隔离,以及隔离之后的操作
版权所有,未经允许,请勿随意转载。
为什么要进行前端后台隔离
大部分Java后台开发的程序猿们都遇到这样的情况:前端开发的同事做好了页面的样式之后,你需要将页面复制到你的WEB-INF目录对应的子目录下,然后将页面的某些内容去掉,然后换上相关的代码。当某个页面需要进行修改,又得对页面进行调整修改,在整个开发过程中,这样做会将后台与前端的工作捆绑在一起。假设,后台返回的数据并没有任何改变,但是,前端的页面为了能够贴近时尚潮流,不断地更新样式及脚本,然后后台又要进行页面的替换,这样的捆绑工作会使得前端的工作很受束缚,也增加了后台的工作。
如何进行隔离
对于后台
拒绝操作任何前端页面
是的,WEB-INF下不要再保存任何相关的jsp或其他网页文件。身份的变化
常规的做法是,浏览器访问某个URL之后,将会进入某个对应的action进行处理,但是,现在,后台将不直接接收来自浏览器的请求。而是由前端页面接收请求,并通过脚本的方式直接请求或访问后台action接口。所有的接口将返回格式化的报文
所有接口,都返回格式化的报文,就是说,返回XML或JSON格式的报文。
原来的做法,肯定是,访问某个URL之后,就会进入某个action,然后action将会把数据将给jsp页面,页面的各个表达式或标签对action返回的数据进行解析渲染,最终,将渲染完的数据返回显示。
但是,现在是,进入某个action之后,action将数据以XML或JSON格式的报文返回即可。
对于前端
将负责接收并处理请求
前端将要负责接收来自浏览器的URL请求,接收到请求之后,将判断用户访问的是什么功能或接口,进而对后台接口发起请求。解析后台报文
后台将不再渲染页面,并且直接返回格式化报文,这样做之后,前端访问后台接口之后,将获取的是普通文本的格式化报文,而不是网页格式的数据,因此,前端将要对返回的报文进行解析和显示。
隔离的好处
很多时候,常规的做法会有这样的问题:在并发量稍微大一点点,action的处理速度一般是可以接受,但是页面的渲染却花了很多时间。想想,如果一千个客户端发起请求,那么,一个后台就要渲染一千次页面。但是,如果,后台仅仅返回简单的文本数据,由前端页面自己解析、渲染及显示,那么,后台渲染的压力就释放了,从而利用客户端来分摊这样的压力。
后期,还可以对前端页面及脚本进行缓存、加速,这样,前端页面的加载速度将达到一个全新的级别。
导致的新问题
安全问题
前端将会直接对后台接口进行访问,请求的数据或返回的数据,是可以直接从脚本中进行查看。不过,可以采用HTTPS的请求方式,从而防止请求拦截并探查到请求数据。
跨域问题
很明显,前端页面将独立为一个工程,而后台也是一个工程,两个工程是不同名的,这样的话,前端访问后台是会产生跨域安全问题要处理。