互联网通信

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请求协议包内部空间:
按照自上而下划分为四个空间

  1. 请求行:
    [
    url:请求地址
    method:请求方式(GET/POST)
    ]
  2. 请求头:请求参数信息【GET】
  3. 空白行:没有任何内容,隔离作用
  4. 请求体:请求参数信息【POST】

5.http响应协议包内部空间:
自上而下划分为四个空间

  1. 状态行
    [
    http状态码
    ]

  2. 响应头
    [
    content-type:指定浏览器采用对应编译器对二进制数据进行解析
    ]

  3. 空白行:没有内容,起隔离作用

  4. 响应体
    [
    可能被访问的静态资源文件内容
    可能被访问的静态资源文件命令
    可能被访问的动态资源文件内容
    (都是以二进制形式)
    ]

Http状态码

状态码作用:
(1)如果HTTP服务器返回了相关资源文件,状态码则告诉浏览器应该怎么处理这个结果
(2)如果HTTP服务器没有返回相关资源文件,状态码则告诉浏览器不能提供的原因

分类:

  • 1xx:最具特征 100:通知浏览器返回的不是一个独立的资源文件
  • 2xx:最具特征 200:通知浏览器返回的是一个独立完整的资源文件
  • 3xx:最具特征 302:通知浏览器返回的是一个资源文件的地址
  • 4xx:最具特征 404:通知浏览器,服务端没有定位到被访问的资源文件;405 方式不允许,比如采用get方式访问,而servlet里面只实现了post
  • 5xx:最具特征 500 java代码抛出了异常

猜你喜欢

转载自blog.csdn.net/weixin_39666736/article/details/107339899