美文网首页
GET、POST区别/使用场景

GET、POST区别/使用场景

作者: Artifacts | 来源:发表于2019-10-13 22:42 被阅读0次

    通常错误解释:

    1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
    2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
    3、POST比GET安全,因为数据在地址栏上不可见。

    • 以下情况使用POST方法:

    请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
    若使用GET方法,则表单上收集的数据可能让URL过长。
    要传送的数据不是采用7位的ASCII编码。

    • 以下情况使用GET方法:

    请求是为了查找资源,HTML表单数据仅用来帮助搜索。
    请求结果无持续性的副作用。
    收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。


    GET和POST与数据如何传递没有关系

    GET和POST是由HTTP协议定义的。在HTTP协议中,Method和Data(URL, Body, Header)是正交的两个概念,也就是说,使用哪个Method与应用层的数据如何传输是没有相互关系的。

    HTTP没有要求,如果Method是POST数据就要放在BODY中。也没有要求,如果Method是GET,数据(参数)就一定要放在URL中而不能放在BODY中。

    现代的Web Server都是支持GET中包含BODY这样的请求。虽然这种请求不可能从浏览器发出,但是现在的Web Server又不是只给浏览器用,已经完全地超出了HTML服务器的范畴了。

    HTTP协议对GET和POST都没有对长度的限制

    HTTP协议明确地指出了,HTTP头和Body都没有长度的要求。而对于URL长度上的限制,有两方面的原因造成:

    1、浏览器。早期的浏览器会对URL长度做限制。据说IE对URL长度会限制在2048个字符内。

    2、服务器。URL长了,对服务器处理也是一种负担。多数服务器出于安全啦、稳定方面的考虑,会给URL长度加限制。但是这个限制是针对所有HTTP请求的,与GET、POST没有关系。

    安全不安全和GET、POST没有关系

    服务器开放接口是基于REST理念设计的,使用的协议是HTTP,但是传输的内容不是HTML。这不是Web Server,而是一个Web Service。
    只有一个根本区别,一个用于获取数据,一个用于修改数据。

    相关文章

      网友评论

          本文标题:GET、POST区别/使用场景

          本文链接:https://www.haomeiwen.com/subject/slzkmctx.html