目录
1.什么是socket
socket就是套接字,是网络通信的基石,是支持TCP/IP通信的基本操作单元。
socket对程序员来说就是对Tcp/ip的封装,因为无法直接操控TCP/ip来进行通信。
socket是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。(其实就是bind绑定)
2.如何进行socket连接
(1)建立一对socket() 函数一个运行在client 一个运行在server。
(2)使用bind函数进行绑定
(3)监听 客户端请求连接 接受
3.HTTP协议(基于TCP)
3.1概念
HTTP协议是超文本传输协议,是web通信的基础,是建立在TCP协议上的一种应用,属于应用层协议
3.2特点
客户端发送的每次请求服务器都需要回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
(1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
(2)在HTTP> 1.1中,则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
由于HTTP在每次请求结束后服务端都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,客户端需要向服务器不断地发起连接请求。 socket是长连接。
若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一保持连接的请求(心跳包),服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。
4.TCP/IP协议族
TCP/IP并不是只有TCP协议和IP协议。而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇。
5.HTTP Socket TCP的联系和区别
(1)socket是tcp的封装
(2)Http基于Tcp
(3)socket是长连接,http是短连接
(4)socket 在会话层
(5)Http在应用层
(6)tcp在传输层
5.什么时候用Http什么时候用socket
Http:在双方不需要时刻保持连接,比如上传和下载文件
Socket:双方需要时刻保持,比如在线聊天。