V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
onice
V2EX  ›  Java

请教大家下前后端分离问题

  •  
  •   onice · 2017-03-31 12:12:26 +08:00 · 3788 次点击
    这是一个创建于 2799 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想问下所谓的前后端的分离,大家是怎么分离的?

    题主是做 Java 的,有的项目是前端直接拿的静态页面过来,然后我这边套成 jsp 。

    还有的项目是后端做一个 restful 接口向前端提供 json 数据。然后前端可以直接请求接口拿到数据进行页面加载。

    基于这两种方法,问题来了。

    基于后端提供接口的方案,加上前端的跨域请求,能够做到前后端完全分离。但是这样后端部署起来有些麻烦。每次完成一个新的接口,都得上传项目到 web 服务器再重新部署。这一点,想问下有没有比较快捷的方式?

    还有一个问题是,基于后端接口的话,后端怎么保证数据的安全性呢?例如实现权限控制,靠 cookie 么?

    11 条回复    2017-04-05 21:45:49 +08:00
    xuzywozz
        1
    xuzywozz  
       2017-03-31 12:16:13 +08:00
    权限控制 要做到无状态的话 好像只有 token ?
    pwcong
        2
    pwcong  
       2017-03-31 12:18:27 +08:00   ❤️ 1
    linghutf
        3
    linghutf  
       2017-03-31 12:21:54 +08:00 via Android
    我的理解是前后分离可以靠虚拟的中间层传输数据,安全性由 token 保证
    iot
        4
    iot  
       2017-03-31 12:36:03 +08:00
    jwt
    willakira
        5
    willakira  
       2017-03-31 12:58:18 +08:00   ❤️ 1
    第一个问题的话,着重解决的应该是部署流程。代码发布的时候应该尽可能自动化。最好新的接口使用灰度发布,例如 AB test

    安全问题的话 token ,然后 HTTPS 尽可能保证没有中间人
    armoni
        6
    armoni  
       2017-03-31 13:17:24 +08:00
    前后端分离又不需要跨域
    hantsy
        7
    hantsy  
       2017-03-31 13:26:49 +08:00
    后端 Java REST API (安全用简单 JWT Token , 或者单独的 OAuth 2+ JWT 服务)
    前端 Angular 等 SPA 就行了

    参考 https://github.com/hantsy/angularjs-springmvc-sample-boot

    如果嫌运行麻烦就用 Docker , Vagrant 在本机运行, 生产环境也可以 CI/CD 服务器实现 Docker 部署。
    hantsy
        8
    hantsy  
       2017-03-31 13:30:54 +08:00   ❤️ 1
    MrLin
        9
    MrLin  
       2017-03-31 13:38:28 +08:00
    jwt+1
    banksiae
        10
    banksiae  
       2017-03-31 15:23:03 +08:00
    jenkins 试试看呢
    Ouyangan
        11
    Ouyangan  
       2017-04-05 21:45:49 +08:00
    1. 第一个问题属于部署问题 . 上 Jenkins, 自动发布 /手动发布随你, 花半天时间看下中文教程即可 , 非常简单 .
    2.第二个属于认证,权限问题. 这个其实是不分什么前后端分离的, 你要简简单单的话自己定义注解,用 aop 实现即可, 框架的话现在比较通用的是采用 Shiro ,提供一整套完善的认证权限方案 , 可能需要几天的时间来上手.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1114 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:31 · PVG 03:31 · LAX 11:31 · JFK 14:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.