socket和http

移动app 为什么选择socket通信而不选择http??
全部评论
这个问题.....要是面试时候这么反问一下,基本面试就跪了。
点赞
送花
回复
分享
发布于 2017-09-09 20:37
1. http协议中是使用tcp进行连接的,经过三次握手进行连接,TCP连接的直接目标是什么?是目的IP+端口号,目的IP+端口号是啥?就是socket。。按照这样的问题来说,本来就是一回事,所以,这个问题是哪个公司面试官问的? 2.如果你是说在应用层的协议(或者是说使用应用层的API来说),Socket封装的api和httpURLConnection、httpclient啥的都可以进行连接。问题是socket是长连接,http是短连接(接口访问)。socket速度快,http解析慢点...http已经很完善了,对于客户端或者是服务器来说的的话,开发效率高。我接触这么长时间的android也没见过哪个框架源码用的是socket进行网络通讯的。。。所以,这个问题是哪个公司面试官问的?
点赞
送花
回复
分享
发布于 2017-09-09 21:55
秋招专场
校招火热招聘中
官网直投
感觉面试官应该想问的是: socket是长链接的,有状态,在移动app对实时性要求比较高的情况下要使用这个; http虽然简单方便成熟,但是实时通信不是很方便。
点赞
送花
回复
分享
发布于 2017-09-09 22:30
楼上说得差不多, http是请求应答式,如果某人发送消息给服务器,服务器要发给你,你用http岂不是要去轮询服务器是否有消息? (或则用rabbitmq等中间件)
点赞
送花
回复
分享
发布于 2017-09-09 22:37
这个问题很有意思,之前自己也思考过。但这里确实应该更正下题目,改成tcp与http之间的关系比较好,因为socket只是起到建立客户端与服务器连接的作用,TCP与http才是协议,tcp的话上层有很多协议,http是其中的一种,他对tcp的数据包进行了进一步的封装,因此我们使用起来也更加方便。
点赞
送花
回复
分享
发布于 2017-09-10 08:50
这个问题今天也被问到了,为什么要有http协议,直接用tcp不行吗?
点赞
送花
回复
分享
发布于 2017-09-09 20:44
流量,解析速度,安全性,还有消息推送之类的。
点赞
送花
回复
分享
发布于 2017-09-09 20:59
socket只是通讯方式,相当于管子,而http是通讯协议,相当于管子里面的水,我不知道问这个问题想要考什么,
点赞
送花
回复
分享
发布于 2017-09-09 20:59
socket是应用进程端口,http是协议
点赞
送花
回复
分享
发布于 2017-09-09 21:00
个人理解tcp是传输层协议主要作用是把信息传输给对面。http是应用层协议,其中定义了报文结构,主要作用是双方能够理解报文内容。相当于你把信息传输给对方tcp指的是传输的方式是,http指的是你使用的语言
点赞
送花
回复
分享
发布于 2017-09-10 01:02
会不会是因为http的请求行,请求头对于移动app来说完全没用,移动app不允许太多流量消耗,所以不应该使用http,而应该用socket,并自定义最省流量的报文传输格式?
点赞
送花
回复
分享
发布于 2017-09-10 13:04
我感觉是用socket之后你就可以定义自己的应用层协议,它还是基于tcp的。你自己定义一个类似http是一个客户端服务器可以直接用的协议来满足你自己的需求。http可能不能满足你的需求。
点赞
送花
回复
分享
发布于 2017-09-10 14:35
哈哈, 我知道你是谁
点赞
送花
回复
分享
发布于 2017-09-10 14:47

相关推荐

点赞 21 评论
分享
牛客网
牛客企业服务