前端后台隔离(一)

作者:海鹰
此教程讲述如何对前端后台进行隔离,以及隔离之后的操作
版权所有,未经允许,请勿随意转载。

为什么要进行前端后台隔离

大部分Java后台开发的程序猿们都遇到这样的情况:前端开发的同事做好了页面的样式之后,你需要将页面复制到你的WEB-INF目录对应的子目录下,然后将页面的某些内容去掉,然后换上相关的代码。当某个页面需要进行修改,又得对页面进行调整修改,在整个开发过程中,这样做会将后台与前端的工作捆绑在一起。假设,后台返回的数据并没有任何改变,但是,前端的页面为了能够贴近时尚潮流,不断地更新样式及脚本,然后后台又要进行页面的替换,这样的捆绑工作会使得前端的工作很受束缚,也增加了后台的工作。

如何进行隔离

对于后台
  1. 拒绝操作任何前端页面
    是的,WEB-INF下不要再保存任何相关的jsp或其他网页文件。

  2. 身份的变化
    常规的做法是,浏览器访问某个URL之后,将会进入某个对应的action进行处理,但是,现在,后台将不直接接收来自浏览器的请求。而是由前端页面接收请求,并通过脚本的方式直接请求或访问后台action接口。

  3. 所有的接口将返回格式化的报文
    所有接口,都返回格式化的报文,就是说,返回XML或JSON格式的报文。
    原来的做法,肯定是,访问某个URL之后,就会进入某个action,然后action将会把数据将给jsp页面,页面的各个表达式或标签对action返回的数据进行解析渲染,最终,将渲染完的数据返回显示。
    但是,现在是,进入某个action之后,action将数据以XML或JSON格式的报文返回即可。

对于前端
  1. 将负责接收并处理请求
    前端将要负责接收来自浏览器的URL请求,接收到请求之后,将判断用户访问的是什么功能或接口,进而对后台接口发起请求。

  2. 解析后台报文
    后台将不再渲染页面,并且直接返回格式化报文,这样做之后,前端访问后台接口之后,将获取的是普通文本的格式化报文,而不是网页格式的数据,因此,前端将要对返回的报文进行解析和显示。

隔离的好处

很多时候,常规的做法会有这样的问题:在并发量稍微大一点点,action的处理速度一般是可以接受,但是页面的渲染却花了很多时间。想想,如果一千个客户端发起请求,那么,一个后台就要渲染一千次页面。但是,如果,后台仅仅返回简单的文本数据,由前端页面自己解析、渲染及显示,那么,后台渲染的压力就释放了,从而利用客户端来分摊这样的压力。

后期,还可以对前端页面及脚本进行缓存、加速,这样,前端页面的加载速度将达到一个全新的级别。

导致的新问题

安全问题

前端将会直接对后台接口进行访问,请求的数据或返回的数据,是可以直接从脚本中进行查看。不过,可以采用HTTPS的请求方式,从而防止请求拦截并探查到请求数据。

跨域问题

很明显,前端页面将独立为一个工程,而后台也是一个工程,两个工程是不同名的,这样的话,前端访问后台是会产生跨域安全问题要处理。