秋招网络-REST-RPC-开发/测试/运维

这是不同方向的共同点,开发考察对RPC的熟悉程度。测试考查基本网络知识和接口的理解。运维考查网络和原理和相关部署调优,排故障。

这是之前写的文章的一部分。
更新-网络篇-后端/测试/运维-秋招八股文提高篇

3.1.1 restful的用法是怎样的,说下get 和post的区别和常见场景。

  • RESTFUL 是一种API的表现风格,REST中文是表征状态转移,就是将增删改查动作转换为GET,POST,PUT,DELETE请求,同时将需要操作的对象转换到一个URL上。

  • 区别和场景参见 网络篇,这里不做赘述。

3.1.2 现在restful你感觉有什么优缺点,有些公司只使用post,不使用常规的rest模式,只使用http协议作为api调用方式,这是为什么?

rest模式使得用户调用API,了解API上更加方便,易于通过swagger等文档生成工具自动生成文档,通过约定的方式降低用户的使用成本。

但是约定接口的方式会带来可猜测和攻击面范围的扩大,使得安全机制较差。同时在复杂环境下,HTTP的动词较少,不太适合映射。此外,在一些需要会话保持的情况下,HTTP不太适合,然而大多数的REST都是用的HTTP。

一般公司内部的环境或者部分对外API会只使用post,将操作动词写入json中,后端解析相关json,这样可以规避黑客探测,同时post在整个过程中不会有太多的痕迹,因为记录requestBody的功能比较少。例如日志一般不记录。同时post没有长度限制,可以传递一些图片而无需使用文件服务器。等等。

3.1.3 听说过graphQL吗?有相关的尝试吗?

这个一般只有在简历中写到量使用或者了解才会问,因为目前graphQL只在部分环境下使用。

一种是前端需要更多的数据库权限,而且开发速度有要求,这样直接把操作数据库的权限放到前端。

前端需要更多时间调整代码,并注意查询和操作数据库的可用性。

3.1.4 了解RPC协议吗,说说看,为什么不直接使用HTTPS协议呢?用WebSocket不行吗?

RPC 远程方法调用,在各个后端组件的相互调用中常见。常见的有java的 dubbo,多语言的gRPC,Facebook的thrift。

RPC有着xxxx的特点,在内部场景和SDK书写中常用。(这个在后端开发中问的很多,视情况单开一章)

其实gRPC底层用的就是HTTPS协议,说明RPC也是可以使用HTTPS的,但是通过一些改进可以更好适配RPC需求。最大的改进是Protobuf,序列化和反序列化极大地增强了其性能。部分RPC的特性如压缩,认证都部分使用HTTP/2的协议内容。

可以使用websocket,对应的协议栈是HTTP,在常见的消息交换时比较适合,但是RPC有其他的功能更加适配服务之间的信息交换。

3.1.5 gRPC的特点有哪些,为什么会这样设计(解决了什么问题)

#秋招##测试##运维工程师##2023秋招#
全部评论

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
2 14 评论
分享
牛客网
牛客企业服务