MVC POST和WebApi POST之间的区别

时间:2016-06-07 14:21:06

标签: c# jquery ajax asp.net-mvc

使用MVC v / s $ .ajax,$.ajax$http使用XMLHTTPRequest向服务器发送请求的POST之间有什么区别?但ASP.NET MVC使用什么机制

具体是什么区别

@using( Html.BeginForm("LoginMethod", "Login", FormMethod.Post) {
// form here
}

        $.ajax({
            url: '....',
            type: 'post',
        });

我组织的一名高级成员表示,我们不应在银行应用程序中使用$.ajax。那么MVC POST是否更安全?

因此下面的问题

  
      
  1. MVC POST v / s $ .ajax post
  2. 之间有什么区别   
  3. 为什么/如何/真的是MVC POST更安全吗?
  4.   
  5. 为什么我无法在DevTools的网络选项卡中看到MVC POST的详细信息
  6.   

2 个答案:

答案 0 :(得分:6)

哇。没有冒犯,但你需要退后一步,熟悉你正在努力开发的平台:互联网。阅读TCP / IP和HTTP协议等内容。另请参阅REST。它实际上是一种并行的哲学,它不仅可以应用于HTTP上的交互,而且它几乎可以编纂HTTP的工作方式以及如何设计Web应用程序。

那就是说,我会尝试回答你提出的三个问题:

  
      
  1. MVC POST v / s $ .ajax post
  2. 之间有什么区别   

我必须真正解构这一点,因为你对游戏术语的理解很困惑。首先,POST是POST是POST。没有不同的种类。 POST是一个HTTP动词,就像GET一样。它携带一个称为请求 body 的有效负载,而GET没有正文。标准HTML表单POST和AJAX POST之间的区别($.ajax是一个jQuery函数,与此处没有任何关系),都在客户端或Web浏览器中。使用传统帖子,整个选项卡或窗口上下文将更改为新页面,而AJAX请求可以被视为由所谓的瘦客户端创建。它是一个JavaScript对象XMLHttpRequest,它在浏览器中充当了一种迷你浏览器。它会像浏览器一样发出请求并接收响应,但处于较低级别。它不会自动呈现HTML,加载相关资源等。它只会返回响应,然后由您和您的应用程序根据该响应执行某些

  
      
  1. 为什么/如何/真的是MVC POST更安全吗?
  2.   

不知道那是从哪里来的,但事实并非如此。就像我上面说的那样,POST是一个POST就是POST。而且就其而言,没有POST是“安全的”。在HTTP协议中,所有数据都以纯文本形式通过网络传输,并且可以由源和目标之间的任何中间服务器或代理查看。 HTTPS或HTTP 安全是将一层安全性添加到HTTP的方式。 HTTPS连接需要SSL(安全套接字层)证书。所有这些都是由CA(证书颁发机构)认证属于特定域和组织的公钥。建立HTTPS连接后,客户端和服务器将启动握手,它们基​​本上交换公钥。客户端使用服务器的公钥来加密请求标头和正文,然后发送请求。公钥仅适用于加密。要解密,您需要一个私钥,只有服务器才有。服务器解密请求,创建响应,使用客户端的公钥对其进行加密,然后将其发送到客户端。同样,客户端使用其私钥来解密响应,然后呈现网页或其他任何内容。

  
      
  1. 为什么我无法在DevTools的网络选项卡中看到MVC POST的详细信息
  2.   

同样,我将“MVC POST”称为传统的HTML表单POST。 MVC真的与它无关。您无法在浏览器的开发控制台的网络选项卡中看到详细信息,因为开发控制台是页面特定的,如上所述,传统的HTML表单POST会导致浏览器选项卡或窗口的视图完全改变。网络选项卡记录网页流量生成页面:加载JS,CSS,图像等,并发出AJAX请求。

答案 1 :(得分:1)

这是关于所有ajax帖子还是特定网络API帖子的问题?

  1. ajax的基本功能是创建WebRequest就像 一个正常的同步,但直接没有得到响应 显示在浏览器中,它允许您处理响应 你想要它。结果是用户可以留在页面中 在后台你可以做一些服务器活动而不改变 整页。
  2. 这是有争议的。如果你可以正确加密你的数据(考虑到你说一个需要更高安全性的银行网站)并且你的客户对它感到满意,我就不会将它视为一个问题....而对于MVC帖子你可以使用很多框架选项和第三方数据安全工具..
  3. 最后

    1. 为什么你不能在那里看到细节?你到底在那里做什么?