Http 中 get 和 post 的区别?

2018-01-21 20:33:46 +08:00
 okzpy9425

前几天去面试,被问道一个这样的问题。。 我回答的是主要区别是 一个是幂等的 一个不是。然后他说还有其他。我一时半会儿也没想出来。。然后就 GG 了。

7001 次点击
所在节点    HTTP
70 条回复
throns
2018-01-21 20:50:40 +08:00
不是没啥区别吗?
est
2018-01-21 20:59:50 +08:00
没区别。都是数据传输

说 get 幂等的。你说网页访问计数器如何实现甩他一脸。
zhlssg
2018-01-21 21:00:37 +08:00
GG 也不会因为一个问题吧,安全,请求数据大小限制? rest 风格的意义?缓存?
okzpy9425
2018-01-21 21:15:44 +08:00
@throns 我说我知道的就这一点。。。然后那个人一直说就这一点? 言外之意就是还有了。。
okzpy9425
2018-01-21 21:16:20 +08:00
@zhlssg 还有一个 csrf 的问题。。我忘了。然后 GG 了。
thundernet8
2018-01-21 21:21:18 +08:00
post 可以 body 负载较多数据 get 没有这么用的
brickyang
2018-01-21 21:21:31 +08:00
你的面试官是不是看过这篇文章: https://zhuanlan.zhihu.com/p/22536382
eslizn
2018-01-21 21:23:15 +08:00
querystring 和 body 的区别
tongz
2018-01-21 21:24:54 +08:00
GET 长度受限于浏览器,POST 长度和服务端配置有关。

然后,语意上的不同?

GET 携带参数是以 queryString 的形式,POST 有多种可选?
okzpy9425
2018-01-21 21:33:43 +08:00
@brickyang 这篇文章是错的把。。。
okzpy9425
2018-01-21 21:34:40 +08:00
@tongz 我也不知道人家要什么答案。。他也没说。。
tomczhen
2018-01-21 21:35:20 +08:00
get 也可以带 body,只要 client 支持,server 处理。同理,post 也可以有 query string。

get 幂等与否要看 server 端如何处理,说到底各种差异是 client 和 server 如何处理造成的,协议本身来讲就只有语义差异,但本质上没区别。
okzpy9425
2018-01-21 21:35:23 +08:00
@thundernet8 这个我倒是没说。。
dobelee
2018-01-21 21:42:30 +08:00
从协议角度讲,没啥区别,正如 12 楼所讲。往往区别在于一些客观因素,如 get query 安全问题,get query 长度问题,post 不能浏览器访问等。
Kilerd
2018-01-21 21:57:06 +08:00
@brickyang 反正都是 01 串,啥协议都是没区别的。
yoke123
2018-01-21 22:04:06 +08:00
怕不是过渡理解了 面试官就是想你回答 7 楼那篇文章里的东西
估计面试官想的是百度就能了解到的区别 不是你理解的那种区别 仅此而已
双方思路都不在一个频道
sheep3
2018-01-21 22:31:17 +08:00
@tomczhen 正解
hlwjia
2018-01-21 22:37:36 +08:00
感觉面试官也一知半解
hjc4869
2018-01-21 22:40:22 +08:00
我猜面试官认为一个是发一个包,一个是发两个包。还有可能认为 POST 的内容不会显示在浏览器地址栏,更安全。(笑
glues
2018-01-21 22:51:24 +08:00
说没区别的就别装逼了,一个是三个字母,一个是四个字母,怎么就没区别了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/424734

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX