JavaWeb
1.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: 指定浏览器采用对应编译器 对响应体二进制数据进行解析 ] 空白行:[ 没有任何内容,起到隔离作用 ] 响应体:[ 可能被访问静态资源文件内容 可能被访问的静态资源文件命令 可能被访问的动态资源文件运行结果 *****都是以二进制形式*** ]
2.互联网通信流程
-
什么是互联网通信:
两台计算机通过网络实现文件资源共享行为,就是【互联网通信】
-
互联网通信过程角色划分:
1.客户端计算机:用于发送请求,来索要资源文件的计算机 2.服务端计算机:用于接收请求,并提供对应的资源文件计算机
-
互联网通信模型:【重点】
1.C/S通信模型: C:client 客户端 1)客户端软件专门安装在客户端计算机上 2)帮助客户端计算机向指定服务端计算机发送请求,索要资源文件 3)帮助客户端计算机将服务端计算机发送回来【二进制数据】解析为【文字,数字,图片,视频,命令】 S:server 服务端 1)服务器软件专门安装在服务端计算机上 2)服务器软件用于接收来自于特定的客户端软件发送请求 3)服务器软件在接收到请求之后自动的在服务端计算机上定位被访问的资源文件 4)服务器软件自动的将定位的文件内容解析为【二进制数据】通过网络发送回发起请求的客户端软件上 适用场景:C/S通信模型普遍用于个人娱乐市场,比如【微信,淘宝/京东,视频(优酷/B站),大型网络游戏(魔兽/英雄联盟)】,企业办公领域相对应用较少。 优点: 1.安全性较高,可以对权限多次校验,提供更加安全的数据存储模式。 2.响应速度快,能有效降低服务端计算机工作压力。 3.个性化程度高,能满足客户的定制需求。 缺点: 1.需要专门的客户端安装程序。 2.兼容性差,不同的开发工具需要重新修改程序。 3.开发,维护成本高,更新系统需要重新安装客户端。 4.不同的操作系统需要安装不同的客户端 2.B/S通信模型: B:browser 浏览器 1)浏览器安装在客户端计算机软件 2)可以向任意服务器发送请求,索要资源文件 3)可以将服务器返回的【二进制数据】解析为【文字,数字,图片,视频,命令】 S: server software 服务器软件 1)服务器软件专门安装在服务端计算机上 2)可以接收任意浏览器发送请求 3)自动的在服务端计算机上定位被访问的资源文件 4)自动的将定位的资源文件内容以二进制形式发送回发起请求浏览器上 适用场景: 既适用于个人娱乐市场,又广泛适用于企业日常活动 优点: 1.分布性强,客户端零维护。只要有网络、浏览器可以随时随地进行操作。 2.业务扩展简单方便,通过增加网页就可以实现增加功能。 3.维护方便,通过修改网页即可实现所有用户的更新。 4.开发简单,共享性强。 缺点: 1.个性化特点明显降低,无法实现具有个性化的功能要求。 2.在跨浏览器上,BS架构不尽如人意。 3.客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降低(Ajax可以一定 程度上解决这个问题)。无法实现分页显示,给数据库访问造成较大的压力。 4.在速度和安全性上需要花费巨大的设计成本。 5.功能弱化,难以实现传统模式下的特殊功能要求。 6.几乎无法有效对服务端计算机资源文件进行保护 7.服务端计算机工作压力异常巨大-----》【B/S通信下高并发解决方案】
-
共享资源文件:
1.什么是共享资源文件: 可以通过网络进行传输的文件,都被称为共享资源文件 所有的文件内容都可以通过网络传输,所有文件都是共享资源文件 2.Http服务器下对于共享资源文件分类: 1)静态资源文件 2)动态资源文件 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(结果)