【问题标题】:REST Calls from Javascript VS ASP.NET Controller REST Calls来自 Javascript VS ASP.NET 控制器的 REST 调用 REST 调用
【发布时间】:2012-11-30 09:51:13
【问题描述】:

我是 REST 世界的新手。我正在编写一个 ASP.NET MVC 应用程序。我的要求是从客户端进行一些 REST 调用。我可以选择从 Javascript 进行这些 REST 调用,也可以在 Controller 的 C# 代码中进行。推荐哪种方法?据我了解,Controller 运行在 Web Server 上,Javascript 运行在浏览器上。如果 REST 调用是从 Web 服务器进行的,那么性能是否会下降。

有人可以建议我解决这个问题的一般做法吗?是否有任何相同的安全问题?

谢谢

【问题讨论】:

    标签: javascript asp.net-mvc rest controller


    【解决方案1】:

    让我们考虑一下做这个服务器端的利弊

    专业人士:

    • 您可以利用服务器的力量对数据进行其他处理
    • 您不会像在 ajax 中那样受到跨域限制
    • 通常您不必担心您的服务器能够访问资源,而在客户端上,您会受到用户网络限制、防火墙等的摆布
    • 更好地控制您的 http 响应\请求生命周期

    缺点:

    • 您将不得不消耗更多带宽将结果数据发送到客户端。
    • 您可能需要做更多工作才能利用良好的缓存实践
    • 依赖于某些服务器端库\框架元素

    虽然我们的优点列表比缺点列表要多得多...在大多数情况下,您仍然希望在客户端上执行此操作...因为双重处理数据的问题实际上是一个非常大的问题,并且会花费您的时间和金钱。

    您实际上应该在服务器端执行此操作的唯一原因是您需要对数据进行大量处理,或者您无法规避 CORS(跨域)限制。

    如果你只是做一些简单的事情,比如在网页上显示信息,那么客户端是更可取的。

    【讨论】:

    • Roysvork,您能详细解释一下跨域部分吗?这对用户有何影响?如果我的网络服务器和我托管 REST 服务的服务器在同一个域中,访问时会不会有问题?
    • 如果他们都在同一个域中,那么你不会有问题。基本上它是现代浏览器的一个安全特性,它们不会自动允许 ajax 调用从 Web 服务器到不同的域......但是有一些方法可以让它工作。
    【解决方案2】:

    这在很大程度上取决于您的情况。如果您简单地在页面中显示此数据而不进行任何操作,则可以从 javascript 获取它。如果您想处理这些数据,对其进行转换,将其与其他数据结合起来,我建议在服务器上执行此操作,以便在服务器上获取此数据。

    【讨论】:

      猜你喜欢
      • 2013-04-14
      • 1970-01-01
      • 2018-07-30
      • 2017-05-06
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多