1. socket
1/ socket 是一个针对TCP和UDP编程的接口 可以借助它建立TCP连接(TCP和UDP协议属于传输层) 提供了网络通信能力
2/ socket 是对TCP / IP协议的封装 ( socket本身并不是协议 是一个调用接口(API)) 通过socket 才能使用TCP / IP协议
socket建立网络连接的步骤
建立socket连接至少需要一对套接字 其中一个运行于客户端--ClientSocket 另一个运行与服务器端--ServerSocket
1/ 服务器监听
服务器套接字病不定位具体的客户端套接字 而是出于等待连接的状态 实时监控网络状态 等待客户端的连接请求
2/ 客户端请求 客户端的套接字提出连接请求 要连接的目标是服务端的套接字
客户端的套接字必须首先描述它要连接的服务器的套接字 指出服务器端套接字的的地址和端口号 然后就向服务器端套接字提出连接请求
3/ 连接确认
但服务器端套接字监听到或者说接收到客户端套接字的连接请求时 就想赢客户端套接字的请求 建立一个新的线程 把服务器端套接字的描述发送给客户端 一旦客户端确认了词描述 双方就正式建立连接
而服务器套接字继续处于监听状态 继续接收其他客户端套接字的请求
2. http
http协议 是属于应用层的面向对象协议 基于TCP连接 基于请求与响应模式的协议
主要解决如何包装数据 提供了封装或者显示数据的具体形式
http协议的主要特点
1/ 支持客户/服务器模式
2/ 简单快速
客户向服务器请求服务时 只需要传送请求方法(GET HEAD POST)和路径
由于http协议简单使得HTTP服务器的程序规模小 所以通信速度很快
3/ 灵活
http允许传输任意类型的数据对象 正在传输的类型由Content-Type加以标记
4/ 无连接
限制每次连接只处理一个请求 服务器处理完客户的请求 并受到客户的应答后 端来连接
可以节省传输时间
5/ 无状态协议
对事物处理没有记忆能力
吐过后续处理需要前面的信息 则必须重传 可能是每次连接传送的数据量增大 但是如果不需要先前的子女系则应答的很快
socket和http连接区别
1/ socket连接
长连接 --客户端和服务器端一旦建立起来连接将不会主动断掉 但由于各种环境因素可能会是连接断开
2/ http连接
短连接 --客户端向服务器端发送一次请求 服务器端响应后连接会立即断掉