form中的GET与POST

    form标签是强大的:如果没有form标签,Internet将变成一个枯燥文档的只读存储库。Web Forms没有完全利用form标签的强大功能(也可以说是Web Forms为实现自己的目标才管理和利用form标签的)。所以应该原谅那些忘记form标签功能(例如创建HTTP GET请求的功能)的Web Forms开发人员。

  form有两个特性:action和method,action特性用以告知Web浏览器信息发往哪里。method特性可以告知浏览器是使用HTTP GET还是使用HTTP POST。如果没有指定method特性,默认方法HTTP GET。

  如果不想让浏览器把输入值放入查询字符串中,而是想放入HTTP请求的主题中,就可以给method特性赋值post。尽管这样也可以成功地向搜索引擎发送POST请求并能看到相应的搜索结果,但是相对而言,使用HTTP GET请求会更好一些。不像POST请求,GET请求的所有参数都在URL中,因此可以为GET请求建立书签。可以在电子邮件或网页中将这些URL作为超链接来使用,除此之外,还可以保留所有的表单输入值。更重要的是,因为GET方法代表的是幂等操作和只读操作,所以它是做这些工作的最好选择。

  换而言之,因为GET不(或应该不)会改变服务器上的状态,所以客户端可以向服务器重复地发送GET请求而不会产生负面影响。POST请求通常情况下会改变服务器上的状态,重复提交POST请求可能会产生不良后果(比如购物时,由于重复提交两次POST请求,而产生两个订单)。许多浏览器现在都可以帮助用户避免重复提交POST请求。

  通常情况下,在Web应用程序中,GET请求用于读操作,POST请求用于写操作(通常包括更新,创建和删除)。

——摘自《ASP.NET MVC4 高级编程》(第四版)

posted @ 2015-07-15 12:01  「萝卜小兔子头」啊  阅读(271)  评论(0编辑  收藏  举报