博客
关于我
网络编程中的socket、TCP和HTTP的区别
阅读量:393 次
发布时间:2019-03-05

本文共 1568 字,大约阅读时间需要 5 分钟。

一、七层网络模型

       在了解socket、TCP和HTTP之前,首先要了解一下七层网络模型,这三种的区别也体现在了这七层网络模型当中。

在这里插入图片描述
每层的协议举例:
7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP
6 表示层 例如XDR、ASN.1、SMB、AFP、NCP
5 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
4 传输层 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL
3 网络层 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25
2 数据链路层 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP
1 物理层 例如线路、无线电、光纤、信鸽

二、三者的区别

       概念的不同就不做详细的述说了,百度一下就可以知道了。

区别1:网络层次不同

socket: 会话层;

TCP/IP: 传输层;
HTTP : 应用层。
       因为所处的网络层次不同,导致了它们的用作不同。

区别2:作用不同

socket: 套接字是网络通信的基石,即用来创建网络通信接口;

TCP/IP: 可以理解为一种网络传输协议,用来传输数据;
HTTP : 用来解析从服务器传来的数据(使用TCP/IP 传输),让浏览器可以识别,就是给浏览器做翻译。

区别3:连接方式不一样

socket: 连接方式并不固定,因为它只提供通信接口,一般有两种传输协议(TCP或UDP),当选择了相应的传输协议时,就有不同的连接方式;

TCP/IP: 需要经过三次握手和四次挥手来建立连接(握手)和断开连接(挥手),连接比较可靠;
HTTP : 与前者最大区别就是 HTTP 采用短连接的方式,即发送一次数据就连接一次,然后断开,而TCP连接之后可以不断地收发数据。

三、总结

       我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。 实际上,Socket跟TCP/IP协议没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。

       所以说,Socket的出现 只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、
listen、connect、accept、send、read和write等等。网络有一段关于socket和TCP/IP协议关系的说法比较容易理
解:
       “TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”
       实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。socket是对端口通信开发的工具,它要更底层一些.
有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

       两个计算机之间的交流无非是两个端口之间的数据通信,具体的数据会以什么样的形式展现是以不同的应用层协议来定义的如HTTP、FTP…

摘自:
师承:上官可编程

转载地址:http://vtlwz.baihongyu.com/

你可能感兴趣的文章
Nginx配置ssl实现https
查看>>
nginx配置ssl证书https解决公网ip可以访问但是域名不行的问题
查看>>
Nginx配置TCP代理指南
查看>>
NGINX配置TCP连接双向SSL
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
Nginx配置中root和alias分不清?本文3分钟帮你解惑!
查看>>
nginx配置中的服务器名称
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置多个不同端口服务共用80端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-动静分离实例:搭建静态资源服务器
查看>>
Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中
查看>>
Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>