TCP/IP、Http、Socket的区别?

作者:渣硕
链接:https://www.zhihu.com/question/39541968/answer/87821283
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http连接=以http协议为通信协议的tcp连接


顺便说说长连接和短连接的问题

tcp连接本身属性是不分长短的,是根据使用方式来决定的,举个例子:

有一把不会损坏的刀(tcp连接),你砍一个人(请求一次)就扔了(断开连接)就叫一次性砍刀(短连接),砍多个人(请求多次)扔了就叫多次性砍刀(长连接),这把刀本身的属性并不包含长短,只是根据使用方法产生了不同的叫法


总结:

http连接=以http协议为通信协议的tcp连接

http短连接=以http协议为通信协议的,请求一次就断开的tcp连接

http长连接=以http协议为通信协议的,请求多次才断开的tcp连接(这个是为了通过减少建立tcp连接的次数达到节省两端资源的目的)

@dreamer

-----------------------------------原答案-------------------------------------

tcpip和http都是协议是约定好的规范,他们位于网络5层模型的传输层(tcp)和应用层(http),tcpip表示的是一系列协议,不过与本题没有太大关系。规定好的协议总要操作系统实现了才能使用,而socket就是操作系统实现的,tcpip协议族的接口,用于创建一个套接字,可以理解为,通过网络读写的文件描述符,socket、bind、listen、accept、connect一系列都是操作系统提供的接口用于实现tcp协议相关的功能。tcp协议可以让两个进程通过三次握手建立稳定的通信信道,发送字节流,而http协议建立在tcp协议之上,也就是说tcp协议可以让两个程序说话,而http协议定义了说话的规则。
例如:
A想要B左边口袋的糖,A和B通过tcp连接后,A发送给B:我想要你左边口袋的糖,这时进程B如果没和A做过任何约定,理解这句话是很困难的,想要理解就要和A提前做约定,比如:你发给我的话我会按以下格式理解:“动作:位置/资源”,那么约定好了后,A就必须发送“获取:左边口袋/糖”,B就可以理解这句话,返回给A糖了,但是互联网上数以亿计的节点,是不可能互相都两两约定好的,为了让大家都能顺畅的交流、http协议出世,他说:发送方都按我规定的格式说话,接收方都按我规定的格式理解,就互相都明白了不是?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值