get post delete patch put使用的不同区比是什么?

使用Express搭建后端,get post delete patch put使用的不同区比是什么?
目前使用Express&&MySQL使用GET和POST能实现大数功能,不过发现还有delete patch put这些,是如何使用,又有什么区别呢?

对于编程者来说,其实完全可以把所有的功能都是用POST或者GET或者任意一种方式来实现,只要我们在响应函数中写上正确的逻辑就行,区分这么多方法更多的是为了规范和安全,各个方法的具体讲解如下所述。而对于浏览器来说它们也有一些细致的区别,如Get请求的参数都会放到url中,所以参数大小是有限制的,其他的方法参数是放在请求body中,大小没有限制。

  1. GET 用于信息获取,而且是安全的和幂等的
    GET请求是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变。该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

  2. POST 用于创建数据,不是安全和幂等的
    POST请求既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。

  3. PUT 用于创建或完整更新数据,而且是安全和幂等的
    PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改完整的数据内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。

  4. DELETE 用于删除数据,而且是安全和幂等的
    DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作,无论进行多少次DELETE操作,其结果并没有不同。

  5. PATCH 用于更新部分数据,不是安全和幂等的
    PATCH请求是对PUT请求的补充,一般用来对已知资源部分更新,是后来新出的标准,GitHub Api也开始使用。

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
在使用 Express 和 MySQL 搭建后端时,GET、POST、DELETE、PATCH 和 PUT 都是 HTTP 请求方法,它们的不同区别如下:

1、 GET 方法

GET 方法用于获取指定资源的信息,通常用于查询数据,URL 中会包含查询参数,例如:

GET /users?name=john

这个请求会获取名字为 john 的用户信息。

在 Express 中,可以使用 app.get() 方法来注册 GET 请求的路由处理程序,例如:

app.get('/users', (req, res) => {
  // 处理查询用户信息的请求
});

2、 POST 方法

POST 方法用于向指定资源提交数据,通常用于创建数据,例如:

POST /users

这个请求会创建一个新的用户信息。

在 Express 中,可以使用 app.post() 方法来注册 POST 请求的路由处理程序,例如:

app.post('/users', (req, res) => {
  // 处理创建新用户的请求
});

3、 DELETE 方法

DELETE 方法用于删除指定资源,例如:

DELETE /users/123

这个请求会删除 ID 为 123 的用户信息。

在 Express 中,可以使用 app.delete() 方法来注册 DELETE 请求的路由处理程序,例如:

app.delete('/users/:id', (req, res) => {
  const userId = req.params.id;
  // 处理删除用户的请求
});

注意这里使用了路由参数(:id)来指定要删除的用户 ID。

4、 PATCH 方法

PATCH 方法用于更新指定资源的部分信息,例如:

PATCH /users/123

这个请求会更新 ID 为 123 的用户信息的部分属性。

在 Express 中,可以使用 app.patch() 方法来注册 PATCH 请求的路由处理程序,例如:

app.patch('/users/:id', (req, res) => {
  const userId = req.params.id;
  // 处理更新用户信息的请求
});

5、 PUT 方法

PUT 方法用于更新指定资源的所有信息,例如:

PUT /users/123

这个请求会更新 ID 为 123 的用户信息的所有属性。

在 Express 中,可以使用 app.put() 方法来注册 PUT 请求的路由处理程序,例如:

app.put('/users/:id', (req, res) => {
  const userId = req.params.id;
  // 处理更新用户信息的请求
});

在使用 Express 和 MySQL 进行数据操作时,需要注意:

  • GET 和 POST 方法可以直接使用 MySQL 进行查询和插入操作;
  • DELETE、PATCH 和 PUT 方法需要使用 MySQL 进行更新和删除操作,需要根据请求中的参数来确定要更新或删除的数据;
  • PATCH 方法只会更新指定资源的部分信息,而 PUT 方法会更新所有信息,需要根据具体需求选择使用。

总之,HTTP 请求方法的不同区别在于其语义和用途,需要根据具体需求选择合适的方法来进行开发。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    这些不同类型的请求在HTTP协议中有不同的定义,Express框架根据请求类型不同,会调用不同的处理函数来处理请求。具体的区别如下:

    1. GET请求:用于从服务器获取资源,一般用于读取数据。在Express中可以通过app.get()来注册处理函数。例如:
    app.get('/users', (req, res) => {
      const users = getUsersFromDatabase(); // 从数据库中获取用户信息
      res.json(users); // 返回json格式的用户列表
    });
    
    1. POST请求:用于向服务器提交数据,一般用于新建数据。在Express中可以通过app.post()来注册处理函数。例如:
    app.post('/users', (req, res) => {
      const newUser = req.body; // 获取请求中的用户信息
      addUserToDatabase(newUser); // 添加用户到数据库
      res.status(201).send('User created'); // 返回创建成功的状态码和提示信息
    });
    
    1. DELETE请求:用于从服务器删除资源。在Express中可以通过app.delete()来注册处理函数,并且可以通过路由参数获取要删除的资源的ID。例如:
    app.delete('/users/:id', (req, res) => {
      const userId = req.params.id; // 获取要删除的用户ID
      deleteUserFromDatabase(userId); // 从数据库中删除用户
      res.send('User deleted'); // 返回删除成功的提示信息
    });
    
    1. PUT请求:用于更新服务器上的资源。在Express中可以通过app.put()来注册处理函数,并且可以通过路由参数获取要更新的资源的ID。例如:
    app.put('/users/:id', (req, res) => {
      const userId = req.params.id; // 获取要更新的用户ID
      const updatedUser = req.body; // 获取更新后的用户信息
      updateUserInDatabase(userId, updatedUser); // 更新用户信息到数据库
      res.send('User updated'); // 返回更新成功的提示信息
    });
    
    1. PATCH请求:用于更新服务器上的资源的部分内容。在Express中可以通过app.patch()来注册处理函数,并且可以通过路由参数获取要更新的资源的ID。例如:
    app.patch('/users/:id', (req, res) => {
      const userId = req.params.id; // 获取要更新的用户ID
      const updates = req.body; // 获取要更新的部分用户信息
      updateUserInDatabase(userId, updates); // 更新用户部分信息到数据库
      res.send('User updated'); // 返回更新成功的提示信息
    });
    

    以上是Express框架中常见的请求类型和使用方法。需要注意,不同类型的请求在实现时需要使用不同的方法名来注册处理函数,例如app.delete()app.put()app.patch()。另外还需要注意的是,在使用PUT和PATCH请求时需要注意数据的格式,一般使用JSON格式的数据来更新数据。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^