Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 与数据库通信的最佳实践是POST还是GET?_Database_Post_Get - Fatal编程技术网

Database 与数据库通信的最佳实践是POST还是GET?

Database 与数据库通信的最佳实践是POST还是GET?,database,post,get,Database,Post,Get,例如,我想从数据库中搜索/插入/获取/删除数据,我正在使用wcf RESTful服务。 我有一种从表中获取数据的方法,一种在表中搜索的方法,一种在表中插入数据的方法和一种从表中删除数据的方法 我知道这些方法都可以通过POST或GET实现 但是,什么是最聪明的?最佳做法是什么 我的意见是搜索和get方法应该是get。插入和删除方法应为POST 我说得对吗?你说得对。GET的问题是它应该是幂等的,因为客户端(浏览器)可以随时发送重复的GET。但是,根据规则,邮件只能发送一次 所以任何能改变任何事情的

例如,我想从数据库中搜索/插入/获取/删除数据,我正在使用wcf RESTful服务。 我有一种从表中获取数据的方法,一种在表中搜索的方法,一种在表中插入数据的方法和一种从表中删除数据的方法

我知道这些方法都可以通过POST或GET实现

但是,什么是最聪明的?最佳做法是什么

我的意见是搜索和get方法应该是get。插入和删除方法应为POST


我说得对吗?

你说得对。GET的问题是它应该是幂等的,因为客户端(浏览器)可以随时发送重复的GET。但是,根据规则,邮件只能发送一次


所以任何能改变任何事情的东西都可能是帖子。严格地说,删除也可以是GET,因为重新发送GET不会影响删除,但一般来说,如果您尊重HTTP协议的精神就更好了。有关详细信息,请参阅。

你说得对。GET的问题是它应该是幂等的,因为客户端(浏览器)可以随时发送重复的GET。但是,根据规则,邮件只能发送一次


所以任何能改变任何事情的东西都可能是帖子。严格地说,删除也可以是GET,因为重新发送GET不会影响删除,但一般来说,如果您尊重HTTP协议的精神就更好了。有关详细信息,请参见。

是的,这是惯例

对更改数据或系统状态的操作使用POST。对不改变任何内容的查询使用GET

例如,通过使用PUT和DELETE增强了这一点,但大多数Web服务器不支持这一点(因此有一种解决方法)

参考资料:

  • Nginx默认不支持PUT和DELETE:
  • 我也是
  • 这两个有

  • 是的,这是惯例

    对更改数据或系统状态的操作使用POST。对不改变任何内容的查询使用GET

    例如,通过使用PUT和DELETE增强了这一点,但大多数Web服务器不支持这一点(因此有一种解决方法)

    参考资料:

    • Nginx默认不支持PUT和DELETE:
    • 我也是
    • 这两个有

    如果我是你,我会用:

    GET
    用于搜索和获取操作(因为它们不会修改数据;可以多次调用这些操作)

    插入操作的
    POST

    DELETE
    用于删除操作

    (IIS对
    删除
    动词没有问题。)

    如果我是你,我会用:

    GET
    用于搜索和获取操作(因为它们不会修改数据;可以多次调用这些操作)

    插入操作的
    POST

    DELETE
    用于删除操作



    (IIS对
    DELETE
    动词没有问题。)

    是的,我知道有比POST和GET更多的选项,但我把它限制在这两个:)“
    PUT
    DELETE
    [大多数Web服务器不支持]”[引文需要]是的,我知道有比POST和GET更多的选项,但我把它限制在这两个:)“
    PUT
    DELETE
    [都]不受大多数Web服务器的支持”--[需要引用]你的意思不是“与数据库的通信”。你的意思是“与web服务器的通信”,对吗?@SergeiTulentsev不,我的意思是与数据库的通信,因为我的方法都是处理数据库中的表。@SergeiTulentsev好的,你认为标题应该是“从web服务器到web服务器的通信”吗?我认为应该又是“从web服务器到数据库的通信”,你向数据库发送HTTP请求了吗?@SergeiTulentsev你是什么意思?你不是真的指“与数据库的通信”。你指的是“与web服务器的通信”,对吧?@SergeiTulentsev不,我指的是与数据库的通信,因为我的方法都是用于处理表from数据库。@SergeiTulentsev好的,你认为标题应该是“从web服务器到web服务器的通信”吗?我还以为应该是“从web服务器到数据库的通信”,你是否向数据库发送HTTP请求?@SergeiTulentsev这是什么意思?你是什么意思?这篇文章只能发送一次?我可以随时调用我的删除方法我想要,对吗?很抱歉澄清,最多只能发送一次。浏览器将永远不会重新发送HTTP POST方法,如果它没有收到响应或检测到通信故障,它可能会重置GET方法。你怎么说帖子只能发送一次?我可以随时调用我的delete方法,对吗?很抱歉澄清,最多只能发送一次。浏览器我永远不会重新发送HTTP POST方法,如果它没有得到响应或检测到通信故障,它可能会重置GET方法。