- 1、网络通信了解
- 1.1 CS/BS架构
- 1.2 网络通信三要素
- 1.2.1 IP地址
- 1.2.2 端口号
- 1.2.3 通信协议
- 1.3 UDP协议
- 1.4 TCP协议
- 1.4.1 TCP协议特点
- 1.4.2 三次握手
- 1.4.3 四次挥手
- 1.4.4 总结
- 1.5 HTTP协议
- 1.5.1 HTTP协议特点
- 1.5.2 HTTP协议的组成
什么是CS/BS?
CS/BS是指两种不同的软件结构的表现形式
- C/S结构: 全称为Client/Server,是指客户端和服务器结构,常见比如QQ、百度网盘
特点:一般服务端只安装数据库和数据存储,所有的程序代码都编写在客户端中
优点:直观,体验好
缺点:每次升级,需要重新安装,移植性比较低
- B/S结构:全称为Browser/Server,是指浏览器和服务器结构,常见的比如谷歌,火狐等等
特点:在服务端编写代码,业务逻辑由服务端完成
优点:可移植性好,开发维护方便
缺点:安全性相对较低
- 新型BS结构:CS+BS,页面华丽,服务端负责业务处理,客户端负责页面渲染和少量逻辑处理
以上几种架构各有各的优势,但无论哪种架构,都离不开网络的支持,网络通信,就是在一定协议下,实现两台计算机中程序之间的数据传输
- IP地址
- 端口号
- 通信协议
IP地址:互联网协议地址(Internet Protocol Address),俗称IP。IP地址是用来给网络中的计算机设备做唯一编号的
IP地址分类:
- IPv4:是一个32位的二进制数,通常被分为4个字节,表示成 a.b.c.d 的形式,例如192.168.65.100 。其中a、b、c、d都是0~255之间的十进制整数,那么最多可以表示大约43亿个。
- IPv6:由于互联网的蓬勃发展,IP 地址的需求量愈来愈大,但是网络地址资源有限,使得 IP 的分配越发紧张。有资料显示,全球 IPv4 地址在在这里插入代码片2011年2月分配完毕。
为了扩大地址空间,拟通过 IPv6 重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 ,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题。
域名:映射到某个IP地址上的一组英文单词组合(www.baidu.com),为了方便记忆
常用命令
- 查看本机IP地址,打开cmd输入
ipconfig
- 检查网络是否连通,输入
ping 空格 IP地址/域名
- 本机ip
127.0.0.1 或者 localhost1.2.2 端口号
网路的通信,本质上是两个进程之间的通信,每台计算机中有很多的进程,那么在网络通信时,如何区分这些进程呢?
如果说IP地址可以唯一标识网络中的设备,那么端口号就可以标识设备中的进程了
- 端口号:用两个字节表示的整数,它的取值范围是0-65535。其中,0-1023用于一些知名的网络服务和应用,普通的应用程序需要使用1024以上的端口号,如果端口号被另外的程序或应用所占用,则会导致当前的应用启动失败
- 网络通信协议: 通信协议是计算机必须遵守的准则,只有遵守这样的规则,计算机之间才能互相通信,协议中对数据的传输格式、传输速率、传输步骤做了统一的规定
- java.net包中提供了两种常见的网络协议支持:UDP和TCP
UDP(User Datagram Prorocol) 是无链接通信协议,不建立逻辑连接,当一台计算机向另一台计算机发送数据时,发送端不会确认接收方是否存在,直接发送数据,同样接收方在接收数据时也不会通知发送方是否已经接收到数据
特点: 面向无连接的协议,资源消耗少,通信效率高
缺点: 存在数据丢失的可能,不能传输重要数据
TCP(Transmission Control Protocol) 是面向连接的通信协议,即在数据传输之前现在客户端和服务端建立逻辑连接,然后再传输数据
1.4.1 TCP协议特点- 面向连接的协议
- 建立连接,形成数据传输通道
- 传输数据的大小不受限制
- 通过三次握手完成连接
- 通过四次挥手断开连接
- TCP是基于IO流传输数据
- 因为需要先建立连接,相对效率较低但可靠性比较高
- 第一次握手:客户端询问服务端是否在线
- 第二次握手:服务端通知客户端在线并询问客户端是否还在线
- 第三次握手:客户端通知服务端还在线
至此完成三次握手建立连接,开始数据传输
1.4.3 四次挥手- 第一次挥手:客户端请求断开连接
- 第二次挥手:服务端发送已经知道断开连接,继续将数据传输完
- 第三次挥手:服务端发送数据完毕通知客户端断开连接
- 第四次挥手:客户端告知服务端确定断开,等待一定时间后断开连接
至此完成四次挥手,断开连接
涉及到重要数据的传输,选择TCP协议!BS结构底层就是TCP协议。
1.5 HTTP协议HTTP(HyperText Transfer Protocol) 是超文本传输协议的简写。它是TCP/IP协议之上的一个应用层协议,简单理解就是HTTP是对TCP协议的进一步封装
- 作用:用于规定浏览器和服务端之间数据传输的格式
- 无状态:协议对客户端没有状态存储,没有"记忆"能力
- HTTP1.0:每次请求都需要通过TCP三次握手完成连接,请求结束通过四次挥手断开连接,一次连接只能处理一个请求数据的传输
- HTTP1.1:一次连接可以处理多个请求的数据传输
- 基于请求和相应:基本的特性,由客户端发起请求,服务端相应
- 简单快速、灵活
- 请求: 浏览器访问服务器的过程
- 响应: 服务器响应数据给浏览器的过程
如有不正确的,欢迎指出!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)