Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
景知識(shí)簡(jiǎn)介
虛擬機(jī)的VNC是非常重要的功能,能夠不依賴于虛擬機(jī)操作系統(tǒng)的網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程訪問與控制。當(dāng)虛擬機(jī)操作系統(tǒng)出現(xiàn)故障或者網(wǎng)絡(luò)不通等情況時(shí),往往需要通過VNC進(jìn)行遠(yuǎn)程連接修復(fù)。
noVNC是一個(gè)支持HTML5的VNC客戶端,主要作用就是與遠(yuǎn)端的vnc server進(jìn)行互通,從而實(shí)現(xiàn)對(duì)于遠(yuǎn)端主機(jī)的控制。我們可以通過VNC客戶端或者支持HTML5的瀏覽器訪問遠(yuǎn)端安裝了vnc server的服務(wù)器桌面從而進(jìn)行控制。
而在使用vnc這種便捷的遠(yuǎn)程訪問技術(shù)的過程中,敏感數(shù)據(jù)的安全保障一直是開發(fā)人員繞不開的一個(gè)話題。而使用密碼對(duì)用戶進(jìn)行身份認(rèn)證是保護(hù)數(shù)據(jù)安全的常用手段之一。同時(shí),為了進(jìn)一步提升安全性能,防止密碼被非授權(quán)用戶輕易獲取利用,我們通常會(huì)采取對(duì)明文密碼進(jìn)行加密的方式,這樣既達(dá)到了數(shù)據(jù)安全性的要求,同時(shí)也可以避免明文密碼保存在服務(wù)器上,極大地提高了系統(tǒng)的安全性。讓用戶在使用時(shí)可以更加放心。
問題場(chǎng)景
在業(yè)務(wù)的開發(fā)測(cè)試過程中,很多同事使用noVNC后不會(huì)退出終端,總是用完了就直接關(guān)閉窗口。而使用nmap命令可以獲取節(jié)點(diǎn)的端口信息,這樣的話,如果非授權(quán)人員知道了宿主機(jī)的IP和端口,是完全可以登錄這臺(tái)虛擬機(jī)進(jìn)行篡改、泄露信息等非法操作的。這對(duì)于存放有重要信息的虛擬機(jī)來(lái)說(shuō)顯然是存在安全隱患的。
VNC密碼加解密流程分析
對(duì)VNC登錄密碼加解密流程參考如下:
1、用戶創(chuàng)建虛擬機(jī)時(shí),需要配置vnc密碼;
2、用戶自定義密碼明文P;
3、使用公鑰對(duì)明文密碼P進(jìn)行加密,輸出密文并存儲(chǔ)起來(lái);
4、當(dāng)用戶執(zhí)行vnc登錄等操作,需要身份驗(yàn)證時(shí),系統(tǒng)獲取密文;
5、使用私鑰對(duì)密文進(jìn)行解密操作,得到明文;
6、對(duì)用戶輸入的密碼與解密得到的明文進(jìn)行比較,如果一樣,則用戶通過身份驗(yàn)證,可以進(jìn)入vnc操作虛擬機(jī)。
WebSocket 是一個(gè)持久化的協(xié)議,通過第一次 HTTP Request 建立連接之后,再把通信協(xié)議升級(jí)成 websocket,保持連接狀態(tài),后續(xù)的數(shù)據(jù)交換不需要再重復(fù)請(qǐng)求。websocket 可以看成一種類似 TCP/IP 的 socke t技術(shù),在 web 應(yīng)用中實(shí)現(xiàn)、并獲得同 TCP/IP 通信一樣的雙向通信功能,因此客戶端既和服務(wù)器可以發(fā)送消息也可以接收消息,同時(shí)還支持多路復(fù)用的功能,由于它借用了 HTTP 協(xié)議的一些概念,所以被稱為 WebSocket。
webSocket API定義了web應(yīng)用和服務(wù)器進(jìn)行通信的公共接口,具體的構(gòu)造函數(shù)創(chuàng)建對(duì)象、對(duì)象的屬性、方法、事件及它的意義,在上一篇《HTML5(十一)——WebSocket 基礎(chǔ)教程》文章中已詳細(xì)介紹。
WebSocket 協(xié)議可分為兩部分:握手階段和數(shù)據(jù)通信階段。
WebSocket 為應(yīng)用層協(xié)議,定義在 TCP/IP 協(xié)議棧之上,連接服務(wù)器的 url 是以 ws 或 wss 開頭的。ws 開頭的默認(rèn)TCP端口為80,wss 開頭的默認(rèn)端口為443。
ws(websocket)是不安全的,容易被竊聽,只要?jiǎng)e人知道你的ip和端口號(hào),任何人都可以去連接通訊。
wss(web socket secure)是websocket的加密版本。
2.1、建立連接
客戶端去與服務(wù)器建立 TCP 連接,客戶端生成 websocket 對(duì)象,然后使用 API 建立連接,代碼如下:
let ws=new WebSocket('ws://localhost:8888')
ws.onopen=function(){
console.log("連接")
}
2.2、握手階段
客戶端與服務(wù)器建立連接之后,客戶端發(fā)送握手請(qǐng)求,隨后服務(wù)器發(fā)送握手響應(yīng)即完成握手階段。
客戶端握手請(qǐng)求如下:
'GET / HTTP/1.1',
'Host: localhost:8888',
'Connection: Upgrade',
'Pragma: no-cache',
'Cache-Control: no-cache',
'Upgrade: websocket',
'Origin: file://',
'Sec-WebSocket-Version: 13',
'Accept-Encoding: gzip, deflate, br',
'Accept-Language: zh-CN,zh;q=0.9',
'Sec-WebSocket-Key: In1aAp/ya9Lkv+tsUtXLXQ==',
'Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits',
服務(wù)器握手響應(yīng)如下:
Status Code: 101 Switching Protocols
Connection: Upgrade
sec-websocket-Accept: HBMDBbZMiS59r3aAITpGtJ64Mfc=Upgrade: websocket
2.3、數(shù)據(jù)通訊
WebSocket 握手連接成功之后。可以使用 send 進(jìn)行發(fā)送數(shù)據(jù),onmessage 接收數(shù)據(jù),如下發(fā)送“你好”:
let ws=new WebSocket('ws://localhost:8888')
ws.onopen=function(){
console.log("連接成功")
ws.send("你好")
}
ws.onmessage=function(res){
console.log('接收到的消息',res)
}
服務(wù)器打印接收到的數(shù)據(jù),如:<Buffer 81 86 af 87 53 b4 4b 3a f3 51 0a 3a>。
websocket 在發(fā)送數(shù)據(jù)時(shí),被組織為一串?dāng)?shù)據(jù)幀,然后進(jìn)行發(fā)送。傳送的幀包含兩部分:數(shù)據(jù)幀和控制幀。數(shù)據(jù)幀可以攜帶文本數(shù)據(jù)或者二進(jìn)制數(shù)據(jù),控制幀包含關(guān)閉幀和 Ping/Pong 幀。
把接收到的buffer十六進(jìn)制數(shù)據(jù)轉(zhuǎn)成二進(jìn)制數(shù)據(jù),控制幀與上述各個(gè)類型幀進(jìn)行對(duì)比解析其意義。
2.4、關(guān)閉連接
任何一端可以關(guān)閉連接。客戶端關(guān)閉連接如下:
ws.close()
然后發(fā)送關(guān)閉幀給對(duì)方,通常會(huì)帶有關(guān)閉連接的狀態(tài)碼,常見的狀態(tài)碼如下:
3.1、客戶端創(chuàng)建websocket對(duì)象,并建立連接之后發(fā)送數(shù)據(jù)。其中 ws 地址根據(jù)后臺(tái)服務(wù)端口對(duì)應(yīng)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let ws=new WebSocket('ws://localhost:8888')
ws.onopen=function(){
console.log("連接")
ws.send("你好")
}
ws.onmessage=function(res){
console.log('res',res)
}
</script>
</body>
</html>
3.2、使用 node.js 創(chuàng)建一個(gè) websocket 服務(wù),如創(chuàng)建一個(gè)serve.js文件,代碼如下:
const http=require("http")
const net=require("net") //原生的websocket
const crypto=require('crypto') // 安全性校驗(yàn)
let serve=net.createServer(sock=>{
//只握手一次
sock.once('data',(data)=>{
console.log("hand shake start") // 開始握手
let str=data.toString();
let lines=str.split('\r\n')
//舍棄第一行和最后兩行
lines=lines.slice(1,lines.length-2)
let headers={}
lines.forEach(line=>{
let [key,val]=line.split(': ')
headers[key.toLowerCase()]=val
})
if( headers['upgrade']!='websocket' ){
console.log("其他協(xié)議")
sock.end()
}else if(headers['sec-websocket-version']!=13){
console.log("版本不對(duì)")
sock.end()
}else{
let key=headers['sec-websocket-key']
let mask='258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
//sha1(key+mask) -> base64=>client
let hash=crypto.createHash('sha1')
hash.update(key+mask)
let key2=hash.digest('base64')
sock.write(`HTTP/1.1 101 Switching Protocols\r\nUpgrade:websocket\r\nConnection:Upgrade\r\nsec-websocket-Accept:${key2}\r\n\r\n` )
console.log("hand shake end") // 握手結(jié)束
//真正的數(shù)據(jù)
sock.on('data',res=>{
console.log("真正接收數(shù)據(jù)",res)
//數(shù)據(jù)解析
let FIN=res[0]&0x001;
let opcode=data[0]&0x0F0;
let msak=data[1]&0x001;
let payload=data[1]&0x0FE;
})
}
})
//斷開
sock.on('end',()=>{
console.log("連接已斷開")
})
})
serve.listen("8888")
使用命令 node serve.js 或node serve 啟動(dòng)服務(wù),服務(wù)啟動(dòng)成功之后可以使用localhost:8888訪問服務(wù)。
啟動(dòng)服務(wù)之后,訪問前邊創(chuàng)建的html文件訪問websocket服務(wù)。
互聯(lián)網(wǎng)歷史長(zhǎng)河里,能夠留下大名的技術(shù)并不多,而Adobe Flash注定是其中一個(gè)。在被官方宣布在2020年壽終正寢之后,F(xiàn)lash這款曾經(jīng)最為普及的軟件也只能無(wú)奈離去。這款軟件叱咤互聯(lián)網(wǎng)超過20年,也曾經(jīng)被蘋果掌門人喬布斯痛罵,那么他的崛起和衰落是怎樣的經(jīng)歷呢?
如果把Flash的發(fā)展履歷做一個(gè)總結(jié)的,大致可分為四個(gè)階段,
第一階段,萌芽期,1995年到1999年,這段時(shí)間是Flash從一個(gè)插件發(fā)展到擁有大量粉絲的工具;
第二階段,發(fā)展期,1999年到2008年,這段時(shí)間Flash借助動(dòng)畫的發(fā)展一舉蛻變成為互聯(lián)網(wǎng)中不可或缺的一部分;
第三階段,繁盛期,2008年到2011年,這段時(shí)間Flash涉足各個(gè)領(lǐng)域,達(dá)到了制高點(diǎn);
第四階段,衰落期,2011年到2020年,在這段時(shí)間中,由于移動(dòng)互聯(lián)網(wǎng)的興起和網(wǎng)絡(luò)世界的發(fā)展,F(xiàn)lash失去了存在的必然性,也逐步開始被遺棄,慶幸的在于,F(xiàn)lash的東家Adobe給出了他的最終死亡時(shí)間。
一代宗師的崛起
1995年,一款由簡(jiǎn)單工具和時(shí)間線組成的軟件工具Future Splash Animator出現(xiàn),它作為交互制作軟件Director和Authorware的一個(gè)小型插件得到了應(yīng)用,而當(dāng)時(shí)正處于現(xiàn)代互聯(lián)網(wǎng)的萌芽時(shí)期,Windows系統(tǒng)剛剛從DOS系統(tǒng)手中奪權(quán)成功,而相應(yīng)的,Windows系統(tǒng)配套軟件開發(fā)完善度不足,這就給了flash興起一個(gè)機(jī)會(huì)。
Macromedia Flash是Flash的乳名
1996年11月,美國(guó)Macromedia公司收購(gòu)了Future Wave,并將這款軟件改名為Flash。這款軟件也真的像閃電一樣迅速得到了各方的認(rèn)可。由于當(dāng)時(shí)互聯(lián)網(wǎng)的限制性,HTML的功能限制性很大,而且很難達(dá)到人們預(yù)期的設(shè)計(jì),因此,各種腳本語(yǔ)言開始發(fā)掘,網(wǎng)頁(yè)的設(shè)計(jì)多樣化需求增強(qiáng),而程序設(shè)計(jì)需要flash這樣一種簡(jiǎn)單、直觀、功能強(qiáng)大的動(dòng)畫設(shè)計(jì)工具。
Macromedia Flash在推出后,先后在工具中加入了庫(kù)、影片剪輯,Javascript插件,透明度,獨(dú)立播放器,文本輸入框流媒體,MP3,智能剪輯和HTML文本格式等功能,讓flash player幾乎成為網(wǎng)絡(luò)的標(biāo)準(zhǔn)。尤其在1999年flash 4中嵌入的ActionScript函數(shù)調(diào)用功能,讓flash在交互應(yīng)用中的便捷得到了網(wǎng)絡(luò)認(rèn)可,從而發(fā)展為全球性方便易用的矢量工具、動(dòng)畫工具、結(jié)合矢量位圖動(dòng)畫的編程工具。
Flash的崛起與21世紀(jì)初的網(wǎng)絡(luò)狀況有密切關(guān)聯(lián),在當(dāng)時(shí),網(wǎng)絡(luò)速度遠(yuǎn)沒有現(xiàn)如今光纖和高速寬帶的便捷,用戶網(wǎng)絡(luò)速度普遍在64K/128K/512K/1024K的情況下,稱霸互聯(lián)網(wǎng)的還是各種各樣的GIF圖片,而想要通過瀏覽器看視頻還需要下載各種各樣的播放器插件,這些插件普適性較差,這也給了flash機(jī)會(huì)。
Flash插件的大小僅有數(shù)百KB到幾MB大小,卻可以提供基于矢量的放大畫質(zhì)保真效果,支持流式播放,支持截取播放等各種播放方式。而且,flash是當(dāng)時(shí)網(wǎng)絡(luò)上僅有的可以網(wǎng)絡(luò)在線流暢播放視頻的插件,因此其成為了當(dāng)時(shí)時(shí)代最火爆的網(wǎng)絡(luò)插件。
二、網(wǎng)頁(yè)游戲助飛升空
2005年12月3日,Macromedia Flash 正式被被Adobe公司收購(gòu),Adobe Flash的名號(hào)打響的同時(shí),也將這款軟件推向了最高峰。
2015年Flash改換門庭
Adobe Flash采用的是遮罩、補(bǔ)間動(dòng)畫、逐幀動(dòng)畫和以影片剪輯為主的原件混合后而形成的畫質(zhì),這種動(dòng)畫中由于不同元素的搭配,形成了多種多樣的變化效果。同時(shí),F(xiàn)lash以流式控制技術(shù)和矢量技術(shù)為基礎(chǔ),制造的動(dòng)畫小而逼真,精度較高,從而在網(wǎng)頁(yè)動(dòng)畫行業(yè)領(lǐng)域中成為了頂梁柱。
而網(wǎng)頁(yè)動(dòng)畫技術(shù)的成熟引發(fā)了另一個(gè)行業(yè)的震動(dòng),那就是游戲行業(yè)。游戲行業(yè)從來(lái)與動(dòng)畫行業(yè)都是密不可分的,在flash崛起之前,因?yàn)楫嬞|(zhì)和寬帶等問題的限制,網(wǎng)頁(yè)游戲一直都是以文字和簡(jiǎn)單圖片為主體的。
Flash Player可以將工作成果輸出為exe格式文件,從而即便是在沒有安裝Flash播放器的電腦上也可以流暢的瀏覽Flash動(dòng)畫。而且,在巔峰時(shí)期,Adobe宣稱全世界97%的網(wǎng)絡(luò)瀏覽器都內(nèi)置Flash播放器。有了動(dòng)畫的支持,各類頁(yè)游開始大肆成長(zhǎng)。
QQ農(nóng)場(chǎng)是典型的flash游戲
在Flash為基礎(chǔ)的頁(yè)游中,騰訊的qq農(nóng)場(chǎng)可謂個(gè)中翹楚。在當(dāng)時(shí),偷菜成為了網(wǎng)絡(luò)中最為流行的游戲之一,其火爆程度和話題性甚至能與現(xiàn)如今騰訊的另一款游戲《王者榮耀》相提并論。偷菜的成功便是得益于Flash技術(shù)的成熟,F(xiàn)lash擁有完善的IDE工具和活躍的社區(qū),兼容性強(qiáng),編程語(yǔ)言簡(jiǎn)單,綜合性能強(qiáng)大,直接成為引爆網(wǎng)頁(yè)游戲的關(guān)鍵。
三、成也蕭何敗也蕭何
軟件技術(shù)的發(fā)展普遍是存在上限的,F(xiàn)lash也不例外。Flash因動(dòng)畫、游戲等崛起,也因其而衰落,由于Flash自身的限制性因素的存在,這款軟件逐步進(jìn)入了消退的時(shí)期。
Flash以小而精著稱,這一點(diǎn)對(duì)于最初的發(fā)展年代十分重要。而隨著網(wǎng)絡(luò)情況的不斷改良,F(xiàn)lash技術(shù)也隨之進(jìn)行的變革,例如增強(qiáng)了性能水準(zhǔn),強(qiáng)化語(yǔ)言能力,并且在企業(yè)開發(fā)和交互站點(diǎn)中進(jìn)行了更多層次上的嘗試和推廣。
Flash Player 7提出了FLV格式視頻
Flash已經(jīng)發(fā)展的足夠迅速,而問題在于,環(huán)境也是變化的。從Flash player 7開始,視頻被單獨(dú)作為一種文件格式開始提取出來(lái),這就是FLV格式的視頻。FLV這種視頻格式迅速引燃互聯(lián)網(wǎng),各種播放器和視頻網(wǎng)站如雨后春筍般迅速冒出;更重要的是,支持FLV格式的兩套代碼是開源的,各大網(wǎng)站間都在后臺(tái)運(yùn)行視頻格式的轉(zhuǎn)化工具,而在前臺(tái)以Flash Player播放。這一技術(shù)在當(dāng)時(shí)成為了主流,但是在網(wǎng)速不斷提升的時(shí)代,也事實(shí)上架空了Flash。
而另外一個(gè)戰(zhàn)場(chǎng)網(wǎng)頁(yè)游戲中,F(xiàn)lash的限制性也開始出現(xiàn)。一些Flash用戶發(fā)現(xiàn),在游戲的運(yùn)行過程中,F(xiàn)lash游戲越玩越卡,這一點(diǎn)是因?yàn)镕lash棄用了DirectX和OpenGL等底層圖形加速,在運(yùn)算時(shí)編譯和解釋的速度都很難跟上,圖形處理速度成為了其最大瓶頸。
Flash動(dòng)畫開始落后
Flash基于二維平面的開發(fā)環(huán)境而設(shè)計(jì),三維效果雖然能達(dá)到但是會(huì)增加設(shè)計(jì)的復(fù)雜程度和實(shí)時(shí)計(jì)算量從而導(dǎo)致更為卡頓。Flash不能隨意訪問本地硬盤數(shù)據(jù),讀寫數(shù)據(jù)量都十分有限,采用的本地共享對(duì)象雖然能夠提供一些存儲(chǔ)能力,但是其無(wú)法大量存儲(chǔ)游戲進(jìn)度與玩家信息,從而使得游戲體驗(yàn)感差強(qiáng)人意。
這些原因的存在,決定了Flash只能打造簡(jiǎn)單的小型游戲,大型頁(yè)游顯然不是他的菜。而就在Flash的原有疆域被壓縮時(shí),一個(gè)更麻煩的情況來(lái)了,F(xiàn)lash的根基PC的網(wǎng)絡(luò)地位遭到了強(qiáng)有力的挑戰(zhàn),這就是移動(dòng)互聯(lián)網(wǎng)的崛起。
四,決戰(zhàn)移動(dòng)端的慘敗
Flash最火爆的時(shí)代里,手機(jī)的功能還只是簡(jiǎn)單的收發(fā)短信、接打電話,即便上網(wǎng)也不過就是瀏覽一些圖片、音樂或者新聞。誰(shuí)能想到,智能手機(jī)的異軍突起幾乎顛覆了整個(gè)互聯(lián)網(wǎng)的基礎(chǔ),F(xiàn)lash所依賴的根基也被動(dòng)搖。
Adobe Flash Platform進(jìn)軍移動(dòng)端的策略是由PC向移動(dòng)設(shè)備滲透,通過Flash Player授權(quán)進(jìn)行收費(fèi),然后在每臺(tái)移動(dòng)設(shè)備中嵌入Flash Player,預(yù)收一美金,包括了諾基亞、安卓和蘋果都是這個(gè)規(guī)矩。問題在于,F(xiàn)lash本身就是一個(gè)完全封閉的系統(tǒng),以PC的滲透率來(lái)參考移動(dòng)端顯然是個(gè)完全失敗的想法,而問題在于,當(dāng)時(shí)的智能手機(jī)領(lǐng)頭羊諾基亞接受了這一條款,這讓Adobe堅(jiān)定了這一策略。可是馬上喬布斯老爺子就不干了。
喬布斯:Flash你走吧我不想罵你
談及Flash的倒下,2010年喬布斯的炮轟可謂是一個(gè)轉(zhuǎn)折點(diǎn)。喬布斯的公開信中明確將iPhone、IPad、iPod Touch與Flash劃清了界限。盡管蘋果在PC領(lǐng)域與Flash的合作不少,可是喬布斯在移動(dòng)端毅然封殺了Flash。因?yàn)樘O果也iPhone和iOS系統(tǒng)形成的也是封閉生態(tài),兩種完全封閉的生態(tài)碰撞很難相容。
蘋果的拒絕讓人們認(rèn)清了Flash在移動(dòng)端絕非不可替代,F(xiàn)lash本身就是為了PC時(shí)代而生的產(chǎn)物,一旦用于移動(dòng)端將變得格格不入。Flash的問題是全方面的, 除了封閉問題外,移動(dòng)端的生態(tài)體系完全與pc端不同,PC端盛行的Flash游戲和視頻在移動(dòng)端既沒有需求也沒有必要,移動(dòng)端新興的手機(jī)游戲完全可以擺脫Flash進(jìn)行。
一山不容二封閉
Flash作為一種陳舊的技術(shù),對(duì)性能消耗用于移動(dòng)端時(shí)并不合適。而且從網(wǎng)絡(luò)安全重視度開始后,F(xiàn)lash的精簡(jiǎn)變的漏洞百出,安全記錄常年倒數(shù)。而且在智能手機(jī)的觸摸屏中,F(xiàn)lash為鼠標(biāo)而設(shè)計(jì)的很多功能并不適用,這給相關(guān)應(yīng)用的開發(fā)造成了困難。
綜合來(lái)看,移動(dòng)時(shí)代適用于低功耗、觸摸屏和開放網(wǎng)絡(luò)的技術(shù),F(xiàn)lash已經(jīng)落后。而真正給予了Flash致命一擊的,還當(dāng)屬HTML5技術(shù)的成熟。
HTML5:Flash的掘墓人
2012年,Adobe正式宣布放棄移動(dòng)端僅有的支撐安卓系統(tǒng),而轉(zhuǎn)為支持HTML5,這意味著Flash在移動(dòng)端戰(zhàn)場(chǎng)的潰敗,也意味著HTML5在一個(gè)戰(zhàn)場(chǎng)中徹底的擊潰了Flash。
HTML5之所以成功取代Flash,是因?yàn)槠涮峁┝诵碌目蚣芎推脚_(tái),包括免插件音視頻、圖像動(dòng)畫、本體存儲(chǔ)以及其他功能,這些功能使得應(yīng)用標(biāo)準(zhǔn)化和開放化,貼切用戶的使用習(xí)慣,優(yōu)化用戶體驗(yàn)。換言之,HTML5是一種新的技術(shù),而Flash受到框架限制多年來(lái)缺乏變革和新意。
HTML5需要成為下一代傳奇
HTML5的兼容性極強(qiáng)。Flash需要插件支持,而且不支持跨平臺(tái),應(yīng)用環(huán)境窄。而HTML5搭建的站點(diǎn)和應(yīng)用能夠兼容PC端與移動(dòng)端、Windows與Linux、安卓與IOS。HTML5可以移植到不同的開放平臺(tái)及應(yīng)用平臺(tái)中,與目前主流的編程語(yǔ)言HTML、CSS、DOM、JS等無(wú)縫結(jié)合,也得到了開發(fā)者的認(rèn)可。
在性能方面,HTML5注重各種引擎的優(yōu)化,加載速度要比需要插件的Flash快許多。同時(shí),因?yàn)楦鞔鬄g覽器注重javascript引擎的優(yōu)化,在代碼運(yùn)行效率上足夠高,因而應(yīng)用范圍寬廣,運(yùn)行效果優(yōu)質(zhì)。
安全方面,F(xiàn)lash與HTML5無(wú)法相提并論。Adobe Flash的漏洞之多基本已經(jīng)是公認(rèn)的,其中很大一部分可能導(dǎo)致嚴(yán)重后果,可致用戶遭遇木馬病毒的攻擊。HTML5可以將代碼全部加密,應(yīng)用時(shí)只需解密就可以,提高了安全性能。從開發(fā)者培養(yǎng)角度來(lái)看,學(xué)習(xí)Flash成本要大些,而HTML5與原本熟悉的HTML語(yǔ)法相似度很高,無(wú)需花費(fèi)太多時(shí)間研習(xí)。
基于這些問題的存在,HTML5在移動(dòng)端徹底趕跑了Flash以后,在PC領(lǐng)域也基本完成了取代。在Adobe宣布了Flash的大限之后,這款超過20歲的軟件終于要迎來(lái)他生命的終點(diǎn)。從興起到衰落,F(xiàn)lash經(jīng)歷了PC時(shí)代的狂歡,也經(jīng)歷了移動(dòng)時(shí)代的蛻變,這款軟件的離去是一代經(jīng)典的終結(jié),但也是開啟下一代經(jīng)典的鑰匙。
Flash,王熙鳳,終為聰明累
在最后,用《紅樓夢(mèng)》中王熙鳳的曲子形容如今的Flash可謂十分貼切,
“枉費(fèi)了、意懸懸半世心,
好一似、蕩悠悠三更夢(mèng)。
忽喇喇似大廈傾,
昏慘慘似燈將盡。
呀!一場(chǎng)歡喜忽悲辛。
嘆人世,終難定!”
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。