在介绍Socket 套接字之前我们先简单介绍一下网络OSI参考模型
OSI 网络参考模型:
五层 : 应用层 传输层 网络层 数据链路层 物理层
七层 :主要把应用层分成了三层 应用层 表示层 会话层 ,传输层 网络层 数据链路层 物理层
TCP 和 UDP
TCP: 三次握手 点对点进行连接 安全 效率低 数据无上限
UDP:不安全 效率高 数据64kb
IP协议
IP地址:确定网络的绝对路径 可以确定具体位置
端口号
端口号用于区分计算机中的软件 2个字节 0-65535 65536个端口号
1.在同一个协议下端口号不能重复
2.1024以下端口奥不建议使用,这些端口是操作系统给某些厂商预留的
http:80 ftp:21
TCP:IO流 **
Socket:客户端套接字类
ServerSocket:服务端套接字类
客户端
1.创建客户端套接字(IP地址 端口号)
2.获取流 socket.getInputStream() socket.getOutputStream();
3.处理数据 完成流的读写
4.关闭流和套接字
服务器端
1.创建服务器端套接字 (端口号)
2.启动监听 阻塞方法
3.获取流 socket.getInputStream() socket.getOutputStream();
4.处理数据 完成流的读写
5.关闭流和套接字
UDP: **
DatagramSocket:此类标识用来发送和接受数据报包的套接字
DatagramPacket:
客户端
发送端发送数据的步骤
1.创建客户端发送对象(可以带端口号 也可以不带)
2.明确发送数据
3.把数据打包DatagramPacket:
4.发送数据 socket.send(packet);
5.关闭客户端资源
服务器端
接受端接收发送类的信息
1.创建接收端对象(包里的端口号)
2.准备容器(>=64kb)
3.封装成数据包
4.接收数据
5.分析数据
6.处理获得的数据
7.释放接收端的资源
HTTP
超文本传输协议
HTTP 协议承载在TCP协议之上,有时候在TCP协议之上还承载了两种协议 :TLS 协议 SSL协议 如果包含了以上的两个协议 我们就称之为 HTTPS 协议。
TTP协议:通过服务器传送文本到本地浏览器端的传送协议
HTTP协议 :属于应用层的协议 由请求和相应两个部分组成的,是一个标准客户端服务器模型 C/S B/S
SSL 协议 安全套接字层协议
它位于可靠的面向连接的网络层的协议与应用层之间的一层
SSL 协议 :需要相互认证 ,一般通过数据签名保证数据的完整性,使用加密技术确保私密性。 实现客户端与服务器端的安全通讯
SSL协议 :由两个部分组成 SSL协议记录 SSL 握手协议
TLS 协议 : (传输层安全协议) 通过应用层传送数据 提供数据保密性完整性。
TLS协议 由两个部分组成 TLS 记录协议 TLS 握手协议
SSL协议提供了那些服务
A 认证了用户和服务器,确保数据发送到正确的客户端和服务器。
B 加密了数据以防数据在中途被窃取
C 维护了数据完整性
HTTP 协议还被称为请求相应模型
HTTP永远都是客户端发送请求,服务器端回复请求
这样做限制了http协议无法实现客户端发送请求的时候,服务器端同送信息给服务器。
HTTP协议是无状态协议,主要体现在同一个用户想服务器发送两次请求,没有对应关系的,
HTTP 协议客户端向服务器端发送请求的工作流程
A客户端和服务器要建立连接 然后客户端点击某个连接之后 http 就开始工作了
B 建立连接之后 客户端会发送请求给服务器端 这个请求要求要统一格式 格式URL
C 服务器端在接受请求的时候回给出响应信息
D 客户端接受服务器端响应的信息,处理响应信息 ,处理之后客户端与服务器端就断开了连接
数据处理一般有两种情况
1.通过浏览器 把信息展示给用户看
2.通过客户端 吧信息发布在指定控件上
以上无论是哪个部分出错,都会把错误信息返回给客户端,客户端通过各种手段展示给用户看。
HTTP协议传输数据是短连接 ,服务器端应用数据后会自动断开连接
TCP和UDP 是长连接 如果不自动关闭的话 会一直保持连接状态。