我读过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方法,因为我只检索数据?
答案 0 :(得分:0)
当您检索用于修改数据的表单时,通常将其视为GET请求。获取表单来修改数据尚未修改任何内容。您只是以可能提交或未提交的形式查看数据。但是这些事情是固执己见的,你可以用任何一种方式实现你的应用程序。
提交表单通常是在您修改数据时使用POST完成的。作为旁注:修改现有资源应该使用PUT请求来完成,但是对于没有JavaScript的HTML表单来说这是不可能的,并且它实际上都是有效的。
至于安全性:将敏感数据放入GET查询参数确实不是一种好方法,但员工ID真的很敏感吗?如果是,则应使用另一个ID在Web应用程序中引用它们。
AJAX是否调用,同样适用于表单。如果检索数据,GET是自然选择。