Post和get的一个小问题

非科班渣渣问问大佬,post和get的区别;今天看到里面讲到post是写入数据的,get是获取数据的。后面又讲到get和post都可以作为提交数据的一种方式。这句话不明白,不是说好的获取数据的吗,怎么又变成提交数据了
全部评论
区别记住一个就好,get 没有请求体,post 相当于 get 请求多了一个请求体,浏览器在发送 post 时header 和 body 分两次发包。像幂等性,安全性不是关键性区别。安全性不就是因为一个有请求体一个没请求体,post 数据可以放 body,get 只能放 header 和 url,导致安全性不同吗? 幂等性只是由于 get 和 post 语意不同导致的,get 在 restful 中表示获取资源,post 表示新建资源,所以 get 对服务器数据有无影响,幂等的,post 新建资源,有影响,所以非幂等 。
点赞 回复 分享
发布于 2019-06-27 00:27
二者本质是一样的,这两个的区别网上一大堆,没必要在这发帖问。
点赞 回复 分享
发布于 2019-06-26 23:08
从本质上说GET和POST都是HTTP的请求方法之一,体现在HTTP报文里就是一个单词的区别,具体行为要看你的服务端对待不同方法的方式,不可一概而论。 通常GET用于获取数据,浏览器使用GET提交的参数是追加在URL后的。 通常POST用于提交数据,参数放进请求正文里。HTML里的表单一般用x-www-form-urlencoded,就是GET的那种参数串。当然你愿意传JSON或者XML也没问题,一切取决于你的后端如何处理。 从浏览器的角度来讲,使用POST最大的不同就是用户刷新页面的时候会有重复提交的警告。 从安全性上来说,如果是HTTP明文传输的话GET和POST的“安全性”是一样的,另外GET的参数对用户可见,且可能留在浏览器历史记录里。 你也不用纠结所谓幂等不幂等的说法,还是一切看后端。事实上很多GET操作根本就不幂等。但是还是建议根据具体的语义选择合适的动词,前后端协商一致。
点赞 回复 分享
发布于 2019-06-27 17:08
约定俗成的东西,就像考试要用黑色笔,但你用铅笔一样能做题而已。
点赞 回复 分享
发布于 2019-06-26 22:29
都可以提交数据,只不过get是放在url里,由此带来的就是数据的长度限制,post的数据放在请求体里,两种方式没有安全性方面的区别
点赞 回复 分享
发布于 2019-06-26 22:30
get通过req.query提交数据,post通过请求体req.body提交数据。对于写入还是获取用这两个哪个都行,只是一般是get获取,post修改,原因是幂等,副总用,详细自己百度下哈。
点赞 回复 分享
发布于 2019-06-26 22:32
都如果一个请求是查询,多以get方式提交请求。如果请求涉及对数据库的增删改,则以post方式提交。建议看一下“get post的幂等性”的博客
点赞 回复 分享
发布于 2019-06-26 22:35
区别还有长度限制、安全性那些,最主要是把get和post的幂等性理解了
点赞 回复 分享
发布于 2019-06-26 22:36
一个幂等一个非幂等
点赞 回复 分享
发布于 2019-06-26 22:57
提交后呢?不都有返回结果吗?返回结果,不就是你获取的数据吗?
点赞 回复 分享
发布于 2019-06-26 23:05
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/GET说 get 请求有请求体的请给出你们的依据,我后端也研究了了两年,从来就没看到过 get 可以设置请求体的。写过服务器的人都知道,对于 get 和 post 请求,服务器的感知区别就只有 method 不同和有无 body,你们写服务器的时候难道这俩还有别的区别?
点赞 回复 分享
发布于 2019-06-27 17:22
其实Fiddler的composer也可以发,如果你选了GET并且填了payload,框背景就会变成红色警告,提示你不是标准的行为
点赞 回复 分享
发布于 2019-06-27 18:04

相关推荐

09-27 14:42
已编辑
浙江大学 Java
未来未临:把浙大放大加粗就行
点赞 评论 收藏
分享
1 6 评论
分享
牛客网
牛客企业服务