互联网通信流程
背住互联网通信流程中每一个细节
- 控制浏览器行为的技术:html css js
- 控制硬盘上数据库技术,mysql jdbc规范(mybatis替代)
- 控制服务端 java行为的技术 http服务器,servlet接口—> sprint mvc
- 互联网通信流程开发规则 mvc
- 在线考试管理系统
通信流程
什么是互联网通信?
两台计算机通过网络实现文件共享的行为,就是互联网通信。
互联网通信过程 角色划分
第一个角色:客户端计算机:用于发送请求,来索要资源文件的计算机
第二个角色:服务端计算机:用于接收请求,并提供对应的资源文件的计算机。
互联网通信模型
c/s通信模型
client sofware客户端软件
- 安装在客户端计算机上
- 帮助客户端计算机向指定服务端计算机发送请求,索要资源文件
- 帮助客户端计算机将服务器端计算机发送回来的【二进制数据】解析为【文字,数字,图片,视频,相关命令】
server software服务器软件
- 专门安装在服务端计算机上
- 主要用于接收来自特定的客户端软件发送的请求
- 服务器软件接收到请求之后,自动的在服务器端计算机上定位被访问的资源文件
- 服务器软件自动的将定位的文件内容解析为【二进制数据】通过网络发送给发起请求的客户端软件
c/s通信模型适用场景:普遍用于个人娱乐市场:微信,淘宝京东,优酷/b站,大型网络游戏
企业办公领域应用较少(缺点第一条,成本高)
优缺点
优点:安全性较高(合法的客户端才能发起请求)
有效的降低服务端计算机的工作压力(一部分命令会交给客户端去执行)
缺点:增加客户获得服务的成本(对客户端的配置有要求,大型游戏,cpu,内存,显卡等)
更新较为繁琐,不能实时更新。
b/s通信模型
browser:浏览器
- 安装在客户端计算机上的一个软件
- 可以向任意的服务器发起请求(向百度,向淘宝)
- 可以将服务器返回的【二进制数据】解析为【文字,数字,图片,视频,命令】
适用场景:既适用于个人娱乐,也广泛适用于企业日常活动
优缺点
优点:不会增加用户获得服务的成本
几乎不需要更新浏览器(在服务器端更新好了,实时返回给浏览器界面)
缺点:几乎无法有效对服务端计算机资源文件进行保护(任何人都可以给服务器发请求,服务器不管认不认识都会response)
服务器端计算机工作压力异常巨大(很多人一起向服务端请求,高并发问题)
共享资源文件
什么是共享资源文件?
可以通过网络传输的文件,都被称为共享资源文件。
所有的文件内容都可以通过网络传输,所有的文件都是共享资源。
http服务器(8080)下对于共享资源文件的分类
静态资源文件
- 文件内容是固定的
- 文档,图片,视频
- 文件中存放的不是内容,而是命令,这些命令只能在浏览器中编译与执行。
- html css js
动态资源文件
- 如果文件存放的是命令,并且命令不能在浏览器中编译与运行,只能在服务端计算机进行编译执行。(java类文件 .class)
静态与动态文件调用的区别
静态文件被索要时,http服务器直接通过**【输出流】**将静态文件中内容或者命令以【二进制形式】推送给发起请求的浏览器。
动态文件被索要时:http服务器需要创建当前class文件的实例对象,通过实例对象调用对应的方法处理用户请求,通过输出流将运行结果以二进制的形式推送给发起请求的浏览器
//被索要的动态文件 student类
class Student(){
public int add(int num1,int num2){
int sum = num1+num2;
return sum;
}
}
//服务器端通过创建student的实例对象,然后通过实例对象调用add方法
Student stu = new Student();
int result = stu.add(1,2);
out.print(result)
互联网通信流程图
开发人员在互联网通信流程担负的职责
浏览器
控制浏览器的行为【三要素】(客户端计算机)
- 控制浏览器发送的请求地址:
<a><a/>
< form/>` - 控制浏览器发送请求的方式:Post/get
- 控制浏览器发送请求时所携带的参数:超链接标签携带参数,表单域标签携带参数(input,select,textarea)
既可以由前端工程师负责,也可以由服务端工程师负责。
控制浏览器接收结果行为(服务端工程师)
- 控制浏览器采用对应【编译器】将接收的二进制数据解析为【文件,视频,图片,命令】
- 控制浏览器将解析后的内容或者命令进行执行与展示(全局刷新展示,局部刷新展示)
- 控制用户与浏览器之间的交流(js—>jquery)
服务器端计算机(http服务器)8080
静态资源文件
开发动态资源文件,来解决用户的请求
-
java世界中 class文件才是动态资源文件
-
http服务器接收请求后负责创建类文件实例对象,Servlet sercvlet = new servlet
-
http服务器通过实例对象调用方法处理用户请求
servlet.doget(){
}返回结果
-
http服务器负责将方法运行结果以二进制形式推送给发送请求的浏览器
mysql数据库服务器 3306
不能接收浏览器的直接请求,只能接收特殊客户端的请求(dos窗口,idea等 c/s通信模型)