render html 在客户端或服务器端的优缺点

Pros and Cons of render html in client-side or server-side

我需要了解在客户端(Java脚本)或服务器端(PHP、C#、Java 中呈现 html 页面的优缺点, Python, 冷聚变, 其他).

安全性、性能、良好做法如何?

提前致谢!

试试这个..

服务器端HTML渲染:

最快的浏览器渲染

页面缓存可以作为一种快速而肮脏的性能提升方式

对于 "standard" 个应用,许多 UI 功能是预构建的

有时被认为更稳定,因为组件通常要经过编译时验证

依靠后端专业知识

有时开发速度更快*

*当UI 要求很适合框架时。

客户端HTML渲染:

带宽使用率降低

初始页面呈现速度较慢。在现代桌面浏览器中甚至可能不会引人注意。如果你需要支持IE6-7,或者很多手机浏览器(手机webkit也不错)可能会遇到瓶颈。

构建 API-first 意味着客户端可以很容易地成为专有应用程序、瘦客户端、另一个 Web 服务等。

依靠 JS 专业知识

有时开发速度更快**

**当 UI 很大程度上是自定义的,具有更有趣的交互。此外,我发现在浏览器中使用解释代码进行编码比等待编译和服务器重启要快得多。

安全性:

您想要保护的任何数据操作都需要在服务器上完成。在客户端处理的任何数据都是绝对开放的。例如,如果您有一个 javascript 函数来处理一些信息,然后将这些信息发送回系统——即使您有典型的后端,也可以很容易地在结果发送回之前对其进行操作安全

服务器端验证将所有传入数据视为不受信任,它是进入系统其余部分的网关。客户端验证有助于为最终用户提供流畅的体验,并尝试减少服务器的一些负载。两者都准备就绪后,您就可以满足上面的所有选项。

但是,如果您必须牺牲一个,则应该选择客户端验证。客户端提供了更好的用户体验和稍微更少的服务器负载,但这是以服务器端验证解决的所有安全问题为代价的。从另一个角度来看,服务器端验证可以防止可能让您破产的问题类型,客户端验证可以改善体验。

客户端

是的——它可以防止对有良好意图的用户产生不良价值

是的——它可以帮助善意的用户更正他们的价值,而不需要服务器往返的开销

否 – 当脚本无法加载时防止出现错误值(如 jQuery)

否 – 它可以防止由于恶意编辑网络表单(开发人员工具)而导致的错误值

否 – 它防止将错误值直接提交到端点(例如:跨站点请求伪造)

否 – 防止在帧中访问错误值

否 – 当通过中间人攻击更改数据时,它可以防止错误的值

服务器端

这与客户端方法相比如何?

是的——它可以防止对有良好意图的用户产生不良价值

否 – 它可以帮助善意的用户更正他们的值,而无需服务器往返的开销

是的——当脚本加载失败时它可以防止错误的值(比如jQuery)

是 – 它可以防止由于恶意编辑网络表单(开发人员工具)而导致的错误值

是 – 它防止将错误值直接提交到端点(例如:跨站点请求伪造)

是——在帧中访问时防止出现错误值

是的——当数据被中间人攻击更改时,它可以防止错误的值

参考:

http://technologyconversations.com/2014/07/10/server-vs-client-side-rendering-angularjs-vs-server-side-mvc/

http://blogs.lessthandot.com/index.php/webdev/client-side-vs-server-side-validation-in-web-applications/