Socket,TCP/UDP和HTTP之间的关系简谈
1.Socket Socket是一种套接字,可以实现不同虚拟机或不同计算机之间的通信,创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接(一般来讲都是建立的TCP连接,其实就是“三次握手”操作),因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。
socket的生命周期为3个阶段:打开socket、使用socket收发数据、关闭socket
,读写操作是IO的事情,socket只是接收对方写好的数据和发送自己写好的数据(聊天室就是这样的原理)。
在客户端创建socket用:Socket socket = new Socket(“IP地址”,端口号);
服务器端创建socket用:ServerSocket server = new ServerSocket(端口号);
??????????? Socket socket = server.accept();
//服务器端向客户端发回accpet消息,在队列中返回一个socket对象。
2.TCP/UDP TCP/UDP是运输层的协议(按五层划分为:物理层,数据链路层,网络层,运输车,应用层),TCP是面向连接的传输,数据安全;UDP是面向无连接的传输,数据不安全。
3.HTTP 【Socket,TCP/UDP和HTTP之间的关系简谈】HTTP是应用层的协议(超文本传输协议),他是定义浏览器是如何跟服务器如何通信以及通信的数据格式。HTTP和TCP的关系为:HTTP是在TCP连接的基础上建立连接的,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。HTTP是用来收发数据,即实际应用上来的。
在客户端和应用服务器建立TCP连接之后,就需要用HTTP协议来传送数据了,HTTP协议简单来说,还是请求,确认,连接。总体就是C发送一个HTTP请求给S,S收到了这个HTTP请求,然后返回给CHTTP响应,然后C的中间件或者说浏览器把这些数据渲染成为了网页,展示在用户面前。
总之:TCP是定义连接的方式和规范,HTTP是定义传输数据的内容和形式