记一次失败的 Go 面试

147 天前
 biu7

一番自我介绍之后:

面试官:说一下进程和线程和协程的区别

我:(???我简历写的不是八年经验吗?)巴拉巴拉类比了一下

面试官:那进程间通讯方式有哪些?

我:不记得了

面试官:get 和 post 有什么区别?

我:get 和 post 一般只是请求方式的不同巴拉巴拉(一些差异)

面试官:还有吗?

我:你想听什么?

面试官:说一下 http2...

我打断:今天面试就到这里吧

挂断之后整个人都清爽了

6814 次点击
所在节点    程序员
92 条回复
stormtrooperx5
147 天前
@wy315700 我只会在前端问我这个接口用 post 还是 get 的时候,告诉他都可以
Ayanokouji
147 天前
get / post 只有语义区别吧。es 的 dsl 还拿 post 当查询用。
hmxxmh
147 天前
@foolishcrab 虽然但是,背这个对写代码有什么帮助?现在绝大部分开发者应该都是通用 post 一把梭,什么 get post delete 都用 post 去实现。都八年了问的不应该是项目或者业务,问这些背一背就能知道的有啥用,这种题能筛选出人才嘛。。。
iyaozhen
147 天前
@hhhhhh123 也不完全对,POST 也有限制,也有配置的。GET 也可以没限制。不过大多数情况,POST 确实能传递的内容更多。2 安全性我觉得不是浏览器里面能不能看见,是中间层记录日志的时候通常会把 url 都记录下来 3. GET 比 POST 快,这个没有根据
bronyakaka
147 天前
八年经验不能问简单的问题了?面试流程就是由简入难先试试水平,简单的都回答不上来后面就不问了不浪费时间。我面过不少多年的很简单的都答不上来,后面也就走过场了,也有你这样主动挂断的
biu7
147 天前
@bronyakaka 我也没说不可以啊,这不主动结束了么,节约一下对面时间
wyntalgeer
147 天前
@lepig 我真被问过,我说 js post get dns gateway 啥的,它说再想想,我想不起来,最后反问得知它下想听 CDN ,我当年面的是 JAVA ,开心就好
hessian
147 天前
十几年经验的摸鱼选手也很多,不知道具体面试过程,单看楼主的描述。还是感觉太傲慢了
面试官:那进程间通讯方式有哪些?
我:不记得了

如果是我也会给面试者的评价降级,都 8 年了,这不是随便就能说几个
后面自然会抛出更简单的问题确认面试者的真实水平
justtokankan
147 天前
都是站在巨人的肩膀上开发,能干事就行了,非得巴拉巴拉,还是太卷了
hhhhhh123
147 天前
@iyaozhen #24 GPT 回答:
1. 协议交互步骤差异
GET 请求流程:
浏览器发起 TCP 三次握手(建立连接)。
浏览器发送请求头和请求体(数据直接附加在 URL 中)。
服务器返回响应(如 200 OK )。
总步骤:3 次握手 + 1 次数据传输。
POST 请求流程:
浏览器发起 TCP 三次握手(建立连接)。
浏览器发送请求头(不含数据)。
服务器返回 100 Continue 确认(可选,但某些浏览器/服务器会执行此步骤)。
浏览器发送请求体(实际数据)。
服务器返回响应(如 200 OK )。
总步骤:3 次握手 + 2 次数据传输(比 GET 多一次交互)。
结论:POST 需要额外的确认步骤( 100 Continue ),导致总耗时增加。
Jinnrry
147 天前
面试官水平不行,这种题问问应届生还行,问 8 年工作经验的人纯有病。
abc1310054026
147 天前
@hhhhhh123 请不要在 V2EX 的回复中粘贴复制来自 AI 生成的文本。
zzdz
147 天前
不知道我说的对不对,GET 和 POST 的某些区别确实是由浏览器行为或常见用法导致的,而非 HTTP 协议本身的强制规定,我代码用啥其实都可以,
spritecn
147 天前
考验知识面吧,三年以上应该都能说点啥吧,但一连四个题都问这些,这个面试官应该不会 go...
Jinnrry
147 天前
@hhhhhh123 在 https 的场景下,post 和 get 的区别仅仅就这几个字母的区别而已了。get 请求也可以带 body 体,比如 es 就这样用的。post 也可以不带 body 体,只带 url 参数

实际使用中,区别更多在于网关日志记录,转发规则差异。以及楼上说到的 cdn 缓存。
wy315700
147 天前
@zzdz
@hhhhhh123 #18

了解一些协议约定俗成的用法,能在 debug 的时候省下来很多事情。比如


比如 nginx 的 proxy_next_upstream 默认是不会重新请求非幂等性方法的。
biu7
147 天前
@zzdz http 协议其实对 get 和 post 的语义和行为是有规定的,不过实际使用的时候还是看人
snxq1995
147 天前
面过很多家公司,也作为面试官面试过很多同学。浅谈一点看法:

1. 非常能够理解长时间不用的基础知识不记得了,比如说进程间通信,做太久应用层,忘记了很正常。不过有些基础知识在日常工作中也非常常见,比如说 http method 。

2. 作为面试者,我觉得在准备面试的过程中,背八股以及刷题很有必要,因为能够提高你自己能力与面试岗位的匹配度。

3. 作为面试官,面试的题目也不是说越难越好,面试官的目的是筛选出与这个岗位最匹配的候选者,而不是能力最强等等条件。

PS. 对社招来说,如果面试的岗位和过往的工作经验重合度不高,非常建议从 0 开始过一遍自己的技术栈。
bbao
147 天前
@wy315700 哈哈哈哈哈,看来这种幼儿园问题,对一些同学还是有用的,起码这个帖子下来能筛选出来一个不知道的~~~~~~~
Jinnrry
147 天前
@zzdz 是的,按协议规定,post 和 get 的区别就只有这几个字母的区别,其他细节都完全一致。如果是后端通信,两边都是你的代码,中间又没有网关转发,你甚至不叫 get post ,你改成叫其他名字都是没问题的

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

https://ex.noerr.eu.org/t/1128388

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

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

© 2021 V2EX