我需要了解客户端(JavaScript)或服务器端(PHP,C#,Java,Python,Cold Fusion,其他)中的render html页面的优缺点。
安全性,性能,良好实践如何?
提前致谢!
答案 0 :(得分:4)
试试这个..
服务器端HTML呈现:
最快的浏览器呈现
页面缓存可以作为快速而肮脏的性能提升
对于"标准"应用程序,许多UI功能是预先构建的
有时被认为更稳定,因为组件通常需要进行编译时验证
依靠后端专业知识
有时开发速度更快*
*当UI要求适合框架时。
客户端HTML呈现:
降低带宽使用率
较慢的初始页面渲染。在现代桌面浏览器中甚至可能不会引人注意。如果您需要支持IE6-7或许多移动浏览器(移动webkit也不错),您可能会遇到瓶颈。
构建API优先意味着客户端可以轻松地成为专有应用程序,瘦客户端,其他Web服务等。
倾向于JS专业知识
有时候开发得更快**
**当UI主要是自定义时,会有更有趣的互动。此外,我发现在浏览器中使用解释代码进行编码比等待编译和服务器重启速度明显更快。
安全强>
您要保护的任何数据操作都需要在服务器上完成。在客户端处理的任何数据都绝对可以进行操作。例如,如果你有一个javascript函数来处理一些然后被发回系统的信息 - 即使你有一个示例性的后端安全性,在它被回发之前操作结果也很容易
服务器端验证将所有传入数据视为不可信,它是进入系统其余部分的网关。客户端验证有助于为最终用户提供顺畅的体验,并尝试减少服务器的负载。有了这两个选项,你就可以找到上面所有选项。
但是,如果你不得不牺牲一个,那么客户端验证应该是最好的。客户端提供了更好的用户体验和稍微减少的服务器负载,但这是以服务器端验证所解决的所有安全问题为代价的。从另一个角度来看,服务器端验证可以防止可能导致您破产的问题类型,客户端验证可以改善体验。
<强>客户端强>
是 - 它可以防止具有良好意图的用户的错误值
是 - 它可以帮助优秀用户更正其价值而无需服务器往返的开销
否 - 当脚本加载失败时(例如jQuery)
,它会阻止错误值否 - 它可以防止恶意编辑Web表单(开发人员工具)导致的错误值
否 - 它可以防止直接提交给端点的错误值(例如:跨站点请求伪造)
否 - 在框架中访问时可以防止错误值
否 - 当通过中间人攻击改变数据时,它可以防止错误值
服务器端强>
如何与客户端方法叠加?
是 - 它可以防止具有良好意图的用户的错误值
否 - 它可以帮助好意图的用户在没有服务器往返的开销的情况下纠正他们的价值
是 - 当脚本无法加载(如jQuery)
时,它会阻止错误值是 - 它可以防止恶意编辑Web表单(开发人员工具)导致的错误值
是 - 它可以防止直接提交给端点的错误值(例如:跨站点请求伪造)
是 - 它可以防止在框架中访问时出现错误值
是 - 当通过中间人攻击改变数据时,它可以防止错误值
参见: