C/S通信模型
C:client 客户端软件
(1)安装在客户端上的软件
(2)用于向指定客户端请求资源,索要文件
(3)帮助客户端软件将从服务器上接收的二进制数据解析为文字、数字、视频、图片、命令
S:server 服务端软件
(1)安装在服务器上的软件
(2)接收客户端软件传来的请求
(3)定位被访问的文件
(4)将定位的文件解析为二进制数据
适用场景:
普遍适用于娱乐(微信、qq、京东、淘宝、B站)、大型游戏(魔兽、lol)、
优点:
1.安全性较高
2.降低服务器压力(部分命令放置在客户端上)
缺点:
1.增加客户端获得服务的成本(如某些游戏等软件有配置要求)
2.更新繁琐
B/S通信模型
B:browser 浏览器
(1)浏览器是安装在客户端的软件
(2)可以向任意的服务器发送请求
(3)将服务器返回的二进制数据解析为图片、数字、视频、命令、
S:server 客户端软件
(1)安装在服务器上的软件
(2)可以接收任意浏览器发送的请求
(3)定位文件、并将文件转化为二进制数据返回给浏览器
适用场景:既适用于娱乐市场,又适用于企业日常,应用范围更广
优点:
1.不会增加获得服务的成本
2.几乎不需要更新浏览器
缺点:
1.几乎无法对服务端资源文件进行保护(爬虫),服务端“裸奔”
2.服务端工作压力异常巨大【B/S下高并发解决方案】
B/S下共享资源文件
1.HTTP下共享资源文件分类:
- 静态资源文件(视频、图片、文档、html、css、js【后三者只能在浏览器编译执行】)
- 动态资源文件(java里面的.class)
2.静态资源文件和动态资源文件调用区别
静态资源文件被索要时,转化为二进制推送给发起请求的浏览器
动态资源文件被索要时,http服务器创建当前class的实例对象,用实例对象调用方法,通过输出流将运行结果以二进制数据传输给浏览器
3.在B/S结构下,所有在网络通信信息都是保存在http协议包中
分类:http请求协议包 、http响应协议包
4.http请求协议包内部空间:
按照自上而下划分为四个空间
- 请求行:
[
url:请求地址
method:请求方式(GET/POST)
] - 请求头:请求参数信息【GET】
- 空白行:没有任何内容,隔离作用
- 请求体:请求参数信息【POST】

5.http响应协议包内部空间:
自上而下划分为四个空间
-
状态行
[
http状态码
] -
响应头
[
content-type:指定浏览器采用对应编译器对二进制数据进行解析
] -
空白行:没有内容,起隔离作用
-
响应体
[
可能被访问的静态资源文件内容
可能被访问的静态资源文件命令
可能被访问的动态资源文件内容
(都是以二进制形式)
]
Http状态码
状态码作用:
(1)如果HTTP服务器返回了相关资源文件,状态码则告诉浏览器应该怎么处理这个结果
(2)如果HTTP服务器没有返回相关资源文件,状态码则告诉浏览器不能提供的原因
分类:
- 1xx:最具特征 100:通知浏览器返回的不是一个独立的资源文件
- 2xx:最具特征 200:通知浏览器返回的是一个独立完整的资源文件
- 3xx:最具特征 302:通知浏览器返回的是一个资源文件的地址
- 4xx:最具特征 404:通知浏览器,服务端没有定位到被访问的资源文件;405 方式不允许,比如采用get方式访问,而servlet里面只实现了post
- 5xx:最具特征 500 java代码抛出了异常