一个数据包在浏览器与服务器之间的传输(java)
我们可以使用富有想象力的大脑想象一下一个数据包在万维网上的传播 我们示范一下 在地址栏输入淘宝的URL,这时候浏览器会向淘宝的Http服务器发送一个Http请求包 那么这个Http请求包内容是什么样子的呢,请看下图 这时候服务器收到浏览器发来的请求包,服务器解析这个请求包,看看都请求了什么文件 1)如果请求了静态资源文件,就这样 2)如果请求了动态资源文件,就这样 3)如果又访问了数据库的话,就这样 最后这些动态资源(.class)静态资源(文字,图片,html,css)都会变成Htttp相应包的形式送回发起请求的浏览器,然后这个响应包是什么样子的,是下图这个样子的 好了,请求响应什么都完毕了,浏览器就正常显示页面了
我上面说的整体是一个B/S通信模型: 1.B/S通信模型 B:browser,浏览器 1)浏览器安装在客户端计算机软件 2)可以向任意服务器发送请求,索要资源文件 3)可以将服务器返回的[二进制数据]解析为[文字,图片,视频,命令] S:server,服务器 1)服务器软件专门安装在服务器端计算机上 2)可以接收任意浏览器发送请求 3)自动的在服务器端计算机定位被访问的资源文件 4) 自动的将定位的资源文件内容以二进制的形式发回发起请求浏览器上
2.优缺点: 优点: 1)几乎不会增加用户获得服务的成本 2)几乎不需要更新浏览器 缺点: 1)几乎无法有效对服务器端计算机资源文件进行保护 2)服务器端计算机工作压力异常巨大-------[B/S通信下高并发解决方案]
我上面还说了一个Http服务器,一个接收数据包和发送数据包的东西 1.介绍 1)Http服务器也是服务器的一种,其行为与Http协议有关 2)Http服务器可以接收来自于浏览器发送的Http请求协议包,并自动对Http请求协议包内容进行解析 3)解析后,自动定位被访问的文件,并将定位的文件内容写入到Http响应文件包中 4)最后,负责将Http响应协议包推送回发起请求的浏览器上
2.静态资源文件与动态资源文件 静态资源文件 1)如果文件内容固定,这种文件可以被称为静态资源文件(文字,图片,视频) 2)如果这些文存放的不是内容而是命令,这些命令只能在浏览器编译与执行这种文件可以被称为静态资源文件(.html,.css,.js) 动态资源文件 如果文件存放命令,并且命令不能在浏览器中执行;只能在服务器端计算机编译执行,这样的文件可以被称为动态资源文件(.class)
3.静态资源文件与动态资源文件调用区别 1)静态文件被索要时,Http服务器直接通过输出流将静态文件中内容或命令以二进制文件推送给发起请求浏览器 2)动态文件被索要时,Http服务器需要创建当前class文件的实例对象,通过实例对象调用对应的方法处理用户请求,通过输出流将运行结果以二进制形式推送给发起请求浏览器