互联网通信

学习目的

  1. 了解互联网通信的概念
  2. 了解互联网通信在网络世界和现实开发中的作用
  3. 了解互联网通信的角色组成及定位
  4. 掌握互联网通信的流程细节
  5. 掌握互联网通信模型及其使用场景
  6. 了解互联网通信下的共享文件方式

一、互联网通信

  1. 概念
    两台计算机通过网络实现文件共享行为,就是互联网通信。也可以理解为从浏览器客户端 获取 服务器端文件的行为就是互联网通信,互联网通信本质就是通过 互联网这个媒介 来传输文件。
  2. 互联网通信过程角色划分
  • 客户端计算机:用于发送请求,来请求获得资源文件的计算机;
  • 服务端计算机:用于接收请求,并提供与请求对应的资源文件计算机。
  1. 开发人员在互联网通信流程担负职责
  • 控制浏览器行为:Web工程师、前端工程师;
  • 开发动态资源文件来解决用户请求:java工程师,后台开发工程师。

1.1 互联网通信与开发

  1. 作用
    互联网通信在java开发中的作用是将java语言开发的系统可以完成用户通信,而不仅限于静态或本地资源的共享,所有的系统开发出来都是为了更广大范围的使用。而让java系统更广泛的应用的手段就是互联网通信。

  2. 本质
    使用互联网通信技术将java系统贯通于更多的用户和应用场景。

  3. 涉及技术

  • 控制浏览器行为技术: HTML(静态页面) ,CSS(页面渲染) ,JavaScript(页面动态交互);
  • 控制硬盘上数据库行为技术:MySql数据库服务器管理使用(SQL重点),JDBC规范(将由Mybatis取代);
  • 控制服务端Java行为技术: Http服务器(已升级为HTTPS服务器),Servlet(java接口的实现类,将由SpringMVC取代),JSP;
  • 互联网通信流程开发规则: MVC模型(将Java类分类,分工合作,各司其职)。

1.2 开发人员职责

  1. 职责分类
  • 控制浏览器请求行为职责:
  • 控制浏览器处理接受结果行为职责:
  • 控制服务器行为职责:
  1. 浏览器请求职责
  • 控制浏览器的请求链接(请求地址):
  • 控制浏览器提交请求的方式:
  • 控制浏览器请求中的携带参数:
  1. 浏览器接受结果职责
  • 控制浏览器解析返回结果的方式:控制浏览器采用对应的 编译器 解析返回的二进制结果,将返回的二进制解析成 文字、图片、视频、命令等浏览器可显示数据;
  • 控制浏览器数据的展示方式:控制浏览器使用不同的展示方式,显示解析完成的内容或命令,通常有 全局刷新展示局部刷新展示
  1. 服务器职责

二、互联网通信模型

互联网通信本质.png

2.1 C/S通信模型

  1. 概念
    C/S通信模型指的是客户端软件与服务器软件进行通信的模型。
    C是client software--客户端软件,S是server software--服务器软件。

  2. client software--客户端软件

  • 客户端软件是专门安装在客户端计算机上的软件,如微信、QQ等;
  • 帮助客户端计算机向指定服务端计算机发送请求,索要资源文件;
  • 帮助客户端计算机将服务端计算机发送回来【二进制数据】解析为【文字,数字,图片,视频,命令】
  1. server software--服务器软件
  • 服务器软件专门安装在服务端计算机上,如Tomcat等;
  • 服务器软件用于接收来自于特定的客户端软件发送请求
  • 服务器软件在接收到请求之后自动的在服务端计算机上定位被访问的资源文件
  • 服务器软件自动的将定位的文件内容解析为【二进制数据】通过网络发送回发起请求的客户端软件上
  1. 适用场景
    C/S通信模型普遍用于个人娱乐市场,比如微信,淘宝、京东,视频(优酷、B站),大型网络游戏(魔兽、英雄联盟),企业办公领域相对应用较少
  2. 优点
  • 安全性较高(数据在本地硬盘上,外界难以获取)
  • 有效降低服务端计算机工作压力(将数据下载到客户端上)
  1. 缺点
  • 增加客户获得服务的成本
  • 更新较为繁琐

2.2 B/S通信模型

  1. 概念
    B/S通信模型指的是浏览器与服务器软件进行通信的模型。B是browser--浏览器,S:是server software--服务器软件。
  2. browser--浏览器
  • 浏览器安装在客户端计算机软件
  • 可以向任意服务器发送请求,索要资源文件
  • 可以将服务器返回的【二进制数据】解析为【文字,数字,图片,视频,命令】
  1. server software--服务器软件
  • 服务器软件专门安装在服务端计算机上
  • 可以接收任意浏览器发送请求
  • 自动的在服务端计算机上定位被访问的资源文件
  • 自动的将定位的资源文件内容以二进制形式发送回发起请求浏览器上
  1. 适用场景
    既适用于个人娱乐市场,又广泛适用于企业日常活动.
  2. 优点
  • 不会增加用户获得服务的成本
  • 几乎不需要更新浏览器
  1. 缺点
  • 几乎无法有效对服务端计算机资源文件进行保护,原因是发起请求的浏览器来自四面八方,服务器前面没有一堵墙可以防护保护;
  • 服务端计算机工作压力异常巨大(多个浏览器共同向同一个服务器请求资源)。

2.2.1 B/S通信下高并发解决方案

三、互联网通信协议

四、共享资源文件

  1. 概念
    可以通过网络进行传输的文件,都被称为共享资源文件。所有的文件内容都可以通过网络传输,所有文件都是共享资源文件

  2. Http服务器下的共享资源文件分类

  • 静态资源文件
  • 动态资源文件
  1. 资源共享文件方式


    互联网共享资源文件.png

4.1 静态资源文件

  1. 概念
    如果文件内容是固定的,这种文件可以被称为静态资源文件,如文档,图片,视频等。
    如果文件存放不是内容而是命令,但这些命令只能在浏览器编译与执行,这种文件也可以称为 静态资源文件,如 .html、.css、.js等。

4.2 动态资源文件

  1. 概念
    如果文件存放命令,并且命令不能在浏览器编译与执行,只能在服务端计算机编译执行,这样的文件可以被称为动态资源文件,如 .class字节码文件等。

4.3 静态资源文件与动态资源文件调用区别

  1. 区别
  • 静态文件被索要时,Http服务器直接通过【输出流】将静态文件中内容或则命令以【二进制形式】推送给发起请求浏览器。
  • 动态文件被索要时,Http服务器需要创建当前class文件的实例对象,通过实例对象调用对应的方法处理用户请求,通过【输出流】将运行结果以【二进制形式】推送给发起请求浏览器。
  1. 代码示例
// 第一步:在服务器端创建 Student.class类文件
          class Student{
             public int add(int num1,int num2){
                int sum = num1 + num2;
            return sum;
             }
          }
// 第二步:从客户端/浏览器向 服务器发起请求索取
// 第三步:Http服务器启动(自动启动)
// 第四步:创建可以访问 Student.class类文件的实例对象
          Student stu = new Student();
          int 结果 = stu.add(10,20);
          System.out.print(结果)
// 第五步:将访问的结果通过【输出流】以【二进制形式】推送给发起请求浏览器。

你可能感兴趣的:(互联网通信)