为什么要用HTTP而不直接用TCP

一句话概括:HTTP连接 = 以HTTP协议为通信协议的TCP连接

       TCP/IP协议可以两个进程通过三次握手建立稳定的通信信道,发送字节流;而HTTP协议建立在TCP/IP协议之上,也就是说TCP/IP协议可以让两个程序说话,而HTTP协议定义了说话的规则。

举个栗子:

        A想要B左边口袋的糖,A和B通过TCP进行连接后,A发给B:我想要你左边口袋的糖,此时进程B如果没和A做过任何约定,那么可能就无法理解这句话;

        如果A和B提前做好了约定:你发给我的话我会按以下格式理解:“动作:位置/资源”,那么约定好后,A就必须发送“获取:左边口袋/糖”,B就可以理解这句话,返回给A左边口袋的糖;

        但是互联网上数以亿计的节点,是不可能互相都两两约定好的,为了让大家都能顺畅的交流,就产生了HTTP协议,他说:发送方都按我规定的格式说话,接收方都按我规定的格式理解,这样所有的两端在通信时,都按这个规定的格式进行通信。

        我们在传输数据时,可以只使用TCP/IP协议进行传输,但是这样没有应用层的参与,会导致两端无法识别数据内容,这样传输的数据也就没有意义了。因此如果想让传输的数据有意义,那么就必须要用到应用层的协议(HTTP、FTP、TELNET等),也可以自己定义应用层的协议。

       WEB使用HTTP协议作为应用层的协议,以封装HTTP文本信息,然后使用TCP/IP作为传输层的协议将它发到网络上。


Socket:

  • socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。实际上,Socket跟TCP/IP协议没有必然的联系。
  • TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。

参考知乎用户:@渣硕

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值