确认我对何时使用HTTP POST或GET的理解

时间:2016-01-14 05:08:59

标签: http post get

我读过What is the difference between POST and GET? [duplicate]When should I use GET or POST method? What's the difference between them?

但是,当我打算做某些事情时,我仍然不确定是否应该使用POST或GET。

首先,在我删除或插入记录时,我不应该使用带有查询字符串参数的GET请求,因为这些操作不是幂等。也就是说,如果我发送具有相同记录ID的相同删除请求,它将失败,因为该记录将不再存在。将项目添加到购物车时也是如此,因为每次发出请求时,它都会将另一个项目添加到我的购物车中  我的理解是否正确?

其次,GET方法用于检索资源。但是用于操作记录的资源(表单)呢?

例如,我想对此员工记录,电话号码,地址等进行一些更改。所以我点击“修改”按钮。该按钮应该发送GET请求还是POST请求?如果你必须将记录的主键值(合成)放在查询字符串中,那会不会很糟糕,如

modifyEmployee.do?id=123

我是否应该使用GET方法,因为我只是要求表格,但此时我还没有提交?或者我应该使用POST方法,因为查询字符串中的id对安全性有害/不好?

第三,我有一些ajax调用来获取数据并填充一些下拉框,如地址,城市,州,市等。是否可以使用GET方法,因为我只检索数据?

1 个答案:

答案 0 :(得分:0)

当您检索用于修改数据的表单时,通常将其视为GET请求。获取表单来修改数据尚未修改任何内容。您只是以可能提交或未提交的形式查看数据。但是这些事情是固执己见的,你可以用任何一种方式实现你的应用程序。

提交表单通常是在您修改数据时使用POST完成的。作为旁注:修改现有资源应该使用PUT请求来完成,但是对于没有JavaScript的HTML表单来说这是不可能的,并且它实际上都是有效的。

至于安全性:将敏感数据放入GET查询参数确实不是一种好方法,但员工ID真的很敏感吗?如果是,则应使用另一个ID在Web应用程序中引用它们。

AJAX是否调用,同样适用于表单。如果检索数据,GET是自然选择。