什么是互联网通信
两台计算机通过网络实现文件共享行为,就是【互联网通信】
互联网通信过程角色划分
客户端计算机:用于发送请求,来索要资源文件的计算机
服务端计算机:用于接收请求,并提供对应的资源文件计算机
互联网通信模型
1.C/S通信模型:
C,client software;客户端软件
1)客户端软件专门安装在客户端计算机上
2)帮助客户端计算机向指定服务端计算机发送请求,索要资源文件
3)帮助客户端计算机将服务端计算机发送回来【二进制数据】解析
为【文字,数字,图片,视频,命令】
S,server software;服务器软件
1)服务器软件专门安装在服务端计算机上
2)服务器软件用于接收来自于特定的客户端软件发送请求
3)服务器软件在接收到请求之后自动的在服务端计算机上定位被访问的资源文件
4)服务器软件自动的将定位的文件内容解析为【二进制数据】通过网络发送回
发起请求的客户端软件上
适用场景:C/S通信模型普遍用于个人娱乐市场,比如【微信,淘宝/京东,视频(优酷/B站),大型网络游戏(魔兽/英雄联盟)】
企业办公领域相对应用较少
优缺点:
优点:
1.安全性较高
2.有效降低服务端计算机工作压力
缺点:
1.增加客户获得服务的成本
2.更新较为繁琐
2.B/S通信模型:
B:browser,浏览器
1)浏览器安装在客户端计算机软件
2)可以向任意服务器发送请求,索要资源文件
3)可以将服务器返回的【二进制数据】解析为
【文字,数字,图片,视频,命令】
S: server software 服务器软件
1)服务器软件专门安装在服务端计算机上
2)可以接收任意浏览器发送请求
3)自动的在服务端计算机上定位被访问的资源文件
4)自动的将定位的资源文件内容以二进制形式发送回发起请求浏览器上
适用场景: 既适用于个人娱乐市场,又广泛适用于企业日常活动
优缺点:
优点:
1.不会增加用户获得服务的成本
2.几乎不需要更新浏览器
缺点:
1.几乎无法有效对服务端计算机资源文件进行保护
2.服务端计算机工作压力异常巨大----->【B/S通信下高并发解决方案】
共享资源文件
1.什么是共享资源文件:
可以通过网络进行传输的文件,都被称为共享资源文件
所有的文件内容都可以通过网络传输,所有文件都是共享资源文件
2.Http服务器下对于共享资源文件分类
静态资源文件
动态资源文件
3.静态资源文件:
1) 如果文件内容是固定,这种文件可以被称为【静态资源文件】
(文档,图片,视频)
2) 如果文件存放不是内容而是命令,这些命令只能在浏览器编译与执行
这种文件可以被称为【静态资源文件】
(.html,.css,.js)
4.动态资源文件:
如果文件存放命令,并且命令不能在浏览器编译与执行;只能在服务端
计算机编译执行,这样的文件可以被称为【动态资源文件】
(.class)
5.静态资源文件与动态资源文件调用区别
静态文件被索要时,Http服务器直接通过【输出流】将静态文件中内容或则命令
以【二进制形式】推送给发起请求浏览器
动态文件被索要时,Http服务器需要创建当前class文件的实例对象,通过实例对象
调用对应的方法处理用户请求,通过【输出流】将运行结果以【二进制形式】推送
给发起请求浏览器
class Student{
public int add(int num1,int num2){
int sum = num1 + num2;
return sum;
}
}
Http服务器(自动)
Student stu = new Student();
int 结果 = stu.add(10,20);
out.print(结果)
开发人员在互联网通信流程担负职责:
1.控制浏览器行为
2.开发动态资源文件来解决用户请求
Http网络协议包
网络协议包
1.在网络中传递信息都是以【二进制】形式存在的。
2.接收方【浏览器/服务器】在接收信息后,要做第一件事
就是将【二进制数据】进行编译【文字,图片,视频,命令】
3.传递信息数据量往往比较巨大,导致接收方很难在一组连续
二进制得到对应数据
比如 浏览器发送一个请求: http://192.168.100.2:8080/index.html
这个请求信息以二进制形式发送 01010101010110101010101101010
Http服务器很难从二进制数据得到相关信息
4.网络协议包一组有规律二进制数据,在这组数据存在了固定空间
每一个空间专门存放特定信息,这样接收方在接收网络协议包之后
就可以到固定空间得到对应信息,网络协议包出现极大降低了
接收方对接收二进制数据编译难度
【0000(ip地址)0000(端口号)0000(资源文件名)0000】
常见网络协议
1.FTP网络协议包
2.Http网络协议包
Http网络协议包
在基于B/S结构下互联网通信过程中,所有在网络中传递信息都是
保存在Http网络协议包
分类:
Http请求协议包
Http响应协议包
Http请求协议包与Http响应协议包介绍
1.Http请求协议包:
在浏览器准备发送请求时,负责创建一个Http请求协议包
浏览器将请求信息以二进制形式保存在Http请求协议包各个空间
由浏览器负责将Http请求协议包推送到指定服务端计算机
2.Http响应协议包:
Http服务器在定位到被访问的资源文件之后。
负责创建一个Http响应协议包
Http服务器将定位文件内容或则文件命令以
二进制形式写入到Http响应协议包各个空间
由Http服务器负责将Http响应协议包推送回
发起请求的浏览器上。
Http请求协议包内部空间
1.按照自上而下划分,分为4个空间
2.空间划分:
请求行:[
url:请求地址(http://192.168.100.2:8080/index.html)
method:请求方式(POST/GET)
]
请求头:[
请求参数信息【GET】
]
空白行:[
没有任何内容,起到隔离作用
]
请求体:[
请求参数信息【POST】
]
Http响应协议包内部结构
1.按照自上而下划分,分为4个空间
2.空间划分:
状态行:[
Http状态码
]
响应头:[
content-type: 指定浏览器采用对应编译器
对响应体二进制数据进行解析
]
空白行:[
没有任何内容,起到隔离作用
]
响应体:[
可能被访问静态资源文件内容
可能被访问的静态资源文件命令
可能被访问的动态资源文件运行结果
*****都是以二进制形式***
]
Tomcat服务器创建网站
Tomcat获取地址:http://tomcat.apache.org/
下载后解压直接可以使用
配置环境变量
CATALINA_HOME:apache-tomcat-9.0.30
JAVA_HOME:jdk1.8.0_101
在webapps目录下创建自己的目录
检测是否能打开
在apache-tomcat-9.0.30的bin目录下运行cmd
分别输入startup和shutdown命令
以上表示打开成功
关闭后如果没有报异常,重新再关闭一次
使用浏览器访问Tomcat服务器
idea中配置Tomcat
新建一个module
在web目录下插入图片
在project structure中配置Tomcat
在run目录下创建一个开关,并在deployment中发布网站
使用debug启动服务器
在弹出的浏览器中访问响应的图片
以上实现了浏览器访问Tomcat服务器的一个过程