【前言】
應(yīng)朋友們的請求,我還是寫一篇關(guān)于服務(wù)器日志法進(jìn)行網(wǎng)站分析的原理以及它的優(yōu)毛病是什么。請朋友們注意,網(wǎng)站服務(wù)器日志法并不輕易進(jìn)行,初學(xué)者,以及在盡大多數(shù)情況下,進(jìn)行以用戶行動分析為核心的網(wǎng)站分析,用不到服務(wù)器日志法。不過,作為網(wǎng)站分析歷史不可分割的一部分以及重要的基礎(chǔ)篇章,服務(wù)器日志法仍然值得一書。下面的這篇文章也是我要撰寫的書中截取的內(nèi)容(我要快馬加鞭快快寫了,已經(jīng)辜負(fù)了太多朋友的重托,負(fù)疚負(fù)疚?。?。
【正文】
網(wǎng)站分析收集數(shù)據(jù)的方法實在有五、六種之多,我們最常見的有三種,分辨是:服務(wù)器日志(Server Log)、頁面標(biāo)記(Page Tag)和客戶端監(jiān)測軟件收集(Client End/Desktop)。我的CWA博客(http://www.chinawebanalytics.cn)中重要講解的都是頁面標(biāo)記法,今天則跟大家講解一下服務(wù)器日志方法的原理及優(yōu)毛病。
1. 服務(wù)器日志是什么
真正意義上的網(wǎng)站分析是從服務(wù)器日志開端的,而且直到今天,分析服務(wù)器(也稱為server log file,或簡稱log file)日志仍然是網(wǎng)站分析的重要方法。
這里的服務(wù)器指的是網(wǎng)站服務(wù)器(Web Server),而服務(wù)器日志跟飛機的黑匣子一樣,是用來記錄網(wǎng)站服務(wù)器的運行信息的,或者簡略說,是用來記錄服務(wù)器中的什么頁面在什么時候被誰拜訪了。例如,假如你拜訪一次我的網(wǎng)站:http://www.chinawebanalytics.cn,那么一般情況下,網(wǎng)站服務(wù)器的日志就會記錄在某時某刻來自某個IP的拜訪者索引了網(wǎng)頁“/index.php”。當(dāng)然,網(wǎng)站服務(wù)器日志還會記錄其他很多內(nèi)容,這些內(nèi)容能夠幫助我們分析網(wǎng)站的流量和拜訪者在網(wǎng)站上的行動。
下面這個圖闡明了網(wǎng)站日志是如何產(chǎn)生的。當(dāng)用戶拜訪一個網(wǎng)站的時候,事實上是拜訪這個網(wǎng)站的某一個具體的頁面,我們假設(shè)這個頁面叫Page 1。這時,我們的這個拜訪行動會懇求服務(wù)器中Page 1的實際的文件,隨之把這個文件下載到瀏覽器上。由于懇求和下載行動都會引起服務(wù)器的響應(yīng)和相應(yīng)的舉動,因此就有必要記錄下服務(wù)器的這些舉動。
你會問,為什么需要記錄服務(wù)器的舉動呢?原因很簡略,由于我們不想讓這個服務(wù)器變成“哈爾9000”(哈爾9000是庫布里克《2001太空奧德賽》里面有了自我意識的電腦,它直接要挾到了電影中的宇航員)啊!這當(dāng)然只是開玩笑,不過目標(biāo)并無差別,就是能夠通過服務(wù)器日志,對服務(wù)器的運行歷史進(jìn)行記錄,這樣當(dāng)有任何異常情況產(chǎn)生的時候,我們都能夠通過日志探尋標(biāo)題產(chǎn)生的原因——跟記錄飛機運行狀態(tài)的黑匣子的作用十分類似。
原理看起來并不復(fù)雜,不過log file實際上并不簡略。為了讓log file具有可讀性,log file并不可以按照各個網(wǎng)站所有者的愛好隨便記錄的,而是有自己的規(guī)范。W3C組織定義了server log file的通用格局(假如你有愛好,可以在這里看看這些格局都是如何定義的:http://www.w3.org/Daemon/User/Config/Logging.html#common_logfile_format),而其他一些組織或者個人又根據(jù)自己的需要額外擴大了這個格局,使log file能夠比擬全面地記錄網(wǎng)站服務(wù)器進(jìn)行的各種運動。
一條尺度的web server log記錄通常包含如下信息:
l 遠(yuǎn)程主機(Remote Host)的IP地址/名字
l 登錄名(Log Name)
l 登錄全名(Full Name)
l 懇求產(chǎn)生的日期(Date)
l 懇求產(chǎn)生的時間(Time)
l 和尺度格林威治時間的差值(GMT Offset)
l 懇求的方法(Request Method)
l 懇求的文件的地址(File)
l 懇求遵照的協(xié)議(Protocol)
l 懇求的狀態(tài)(Status)
l 被懇求文檔的長度(Length)
下面是一條尺度的log file記錄:
202.71.113.38 – - [03/Jan/2010:01:56:12 +0800] “GET /Chinawebanalytics/Sidney.htm HTTP/1.0” 200 5122
從左到右,202.71.113.38就是遠(yuǎn)程主機的IP;而登錄名和登錄全名指的是發(fā)起這個懇求的用戶的名字,這個一般大家當(dāng)然是不想要流露的了,所以遠(yuǎn)程主機會禁止給出這兩個信息,log file當(dāng)然就記錄不下來了,用兩個短中劃線代替。然后,03/Jan/2010是懇求產(chǎn)生的日期,01:56:12則是時間,之后的+0800是指比格林威治時間要晚8個小時,就是我們北京時間了。再之后的GET是懇求的方法,另一種方法是POST,可以簡略懂得為GET就是索取,POST就是提交。接著:/Chinawebanalytics/Sidney.htm是被懇求文件的地址,可以是盡對地址也可以是相對地址。HTTP/1.0是懇求所遵照的協(xié)議,這里的協(xié)議是HTTP 1.0。全部記錄的結(jié)尾是兩個數(shù)字,其中200表現(xiàn)一種懇求的狀態(tài),意思是懇求一切正常。有時候這個數(shù)字會顯示為404,信任大家一看到這個數(shù)字就頭痛,它表現(xiàn)懇求的文件無法找到(file not found);又有時候,這個數(shù)字會顯示為301,表現(xiàn)頁面被重新定向到了別的地址。最后的一個數(shù)字5593,表現(xiàn)所懇求的文檔的長度為5122 bytes。
通用格局實在很簡略,但是里面的這11類記錄往往不足夠幫助我們進(jìn)行更深進(jìn)的分析,因此其他的一些記錄被參加進(jìn)來,其中最重要的一些是:
l 懇求起源(Referrer):指連接到被懇求資源的網(wǎng)站的URL。假如懇求時通過點擊一個鏈接時產(chǎn)生,那么這個項目就會被記錄;
l 客戶端(User Agent):記錄用戶的瀏覽器或者發(fā)出懇求的程序的相干信息;
l 所需時間(Time Taken):從懇求的發(fā)出到懇求的資源全部傳輸完畢所需花費的時間;
l Cookie。
看起來,網(wǎng)站服務(wù)器日志所記錄的內(nèi)容是很有限的,比起我們動輒上萬行的編程實在是九牛一毛。但是,千萬別認(rèn)為網(wǎng)站服務(wù)器日志文件會很小,對于一些大網(wǎng)站,每分每秒都有很多拜訪者對網(wǎng)站服務(wù)器進(jìn)行懇求,所以日志文件會積少成多,成為巨型的數(shù)據(jù)文件。有時候,一個小時的記錄就能超過數(shù)G。什么,你網(wǎng)站的服務(wù)器日志一個月才1M?要加油啊,沒有人氣的網(wǎng)站可沒有生命力。
講到這兒,該說說歷史了。網(wǎng)站分析就是從網(wǎng)站服務(wù)器日志開端的,或者更準(zhǔn)確的說,網(wǎng)站服務(wù)器日志自出生之日起,就是為網(wǎng)站分析所用的。最早,人們可是把所有的記錄都拿出來,然后導(dǎo)進(jìn)到數(shù)據(jù)軟件中往進(jìn)行分析,辛苦程度自不用說;但這個苦楚的階段不會持續(xù)太久,哪兒有苦楚,哪兒就有生意,所以網(wǎng)站日志分析軟件就呈現(xiàn)了,解決了很大的標(biāo)題,以至于大小互聯(lián)網(wǎng)服務(wù)供給商(ISP)們都為租用他們空間的用戶供給一款免費的網(wǎng)站日志分析軟件。盡管如此,分析網(wǎng)站日志一直都是一個相當(dāng)不輕易的事情,所以,人們不得不尋找一些更方便的方法,這樣便發(fā)明了網(wǎng)站分析的新的數(shù)據(jù)獲取方法,這是后話了。
假如你問我什么情況下選擇用網(wǎng)站服務(wù)器日志來進(jìn)行網(wǎng)站分析,我建議你如非必需,那么還是尋找一些更輕易的方法能夠事半功倍??纯春竺娴膬?nèi)容,你就能知道我為什么這么說。
2. 用網(wǎng)站服務(wù)器日志進(jìn)行網(wǎng)站分析的長處
盡管是個技巧活,但是利用網(wǎng)站服務(wù)器日志進(jìn)行網(wǎng)站分析還是有不少利益的。
1. 網(wǎng)站服務(wù)器的日志是被你完整掌控的數(shù)據(jù)。
所謂放在自己手心最放心,這些日志在你的服務(wù)器中,假如不是黑客進(jìn)侵,數(shù)據(jù)不可能被你不盼看的人獲取。而且,只要你不刪除,它們永遠(yuǎn)都在那里,在任何時候你都可以回溯歷史數(shù)據(jù),無論這些數(shù)占領(lǐng)多么久遠(yuǎn)。有朝一日,你的網(wǎng)站大獲成功,這些日志也是一份奮斗歷史的見證。
2. 能夠記錄機器人/主動程序?qū)W(wǎng)站的拜訪。
其次,前面講過,網(wǎng)站服務(wù)器的日志是記錄網(wǎng)站服務(wù)器行動的,因此任何服務(wù)器響應(yīng)的懇求都會被記錄下來。這些響應(yīng)可能是應(yīng)答用戶發(fā)出的懇求,也完整可能是應(yīng)答一些互聯(lián)網(wǎng)上主動程序發(fā)出的懇求。最常見的一種互聯(lián)網(wǎng)上的主動程序是搜索引擎的機器人,例如Google的Googlebot,這意味著網(wǎng)站服務(wù)器日志能夠用來分析搜索引擎的拜訪,并幫助我們優(yōu)化搜索引擎對網(wǎng)站的拜訪。講到這里,請大家注意,并不是每一種網(wǎng)站分析方法都能做到這一點,我們最常用的為網(wǎng)站頁面參加標(biāo)簽的方法是不能獲取搜索引擎流量的。
3. 終端無關(guān)
網(wǎng)站服務(wù)器的日志能夠記錄網(wǎng)站服務(wù)器全部響應(yīng)行動的特點還延伸出另外一個長處,那就是無論是何種終端拜訪服務(wù)器,都能把相干數(shù)據(jù)記錄下來?,F(xiàn)在,能夠拜訪網(wǎng)站的終端越來越多了,我無聊的時候也試著用Sony的PSP上網(wǎng),用手機的GPRS也能輕松的瀏覽網(wǎng)頁,這些形形色色的終真?zhèn)€拜訪,服務(wù)器日志都會忠誠的記錄,但頁面參加標(biāo)簽的方法就可能完整行不通。
4. 能夠探知文件是否完整下載
日志方法的另一個利益是能夠記錄文件下載的情況。假如你在網(wǎng)高低載一個MP3音樂,你在發(fā)出這個響應(yīng)的時候,日志會記錄一個狀態(tài);你在下載完整的時候,日志照樣會記錄一個狀態(tài);假如你沒有下載完整,日志還是會記錄下來。這個,我想對那些供給下載服務(wù)的網(wǎng)站很有用。
5. 數(shù)據(jù)獲取不依附于第三方
通過日志獲取數(shù)據(jù)本身不需要額外的第三方的幫助。只要你的服務(wù)器在運轉(zhuǎn),日志就會源源不斷的被創(chuàng)立、保留。不過,請注意,這里我所指的是數(shù)據(jù)的獲取不需要額外的支撐,但是數(shù)據(jù)的分析一般而言,還是需要第三方的幫助的。直接往用肉眼讀日志文件中的數(shù)據(jù)進(jìn)行分析是不可想象的。
6. 不怕防火墻
最后,日志方法不害怕防火墻或客戶端安全軟件的屏蔽,由于數(shù)據(jù)都是從服務(wù)器端獲取的。
看起來似乎不錯,不過凡事有利有弊,日志方法也確定有它不能克服的不足。
3. 用網(wǎng)站服務(wù)器日志方法進(jìn)行網(wǎng)站分析的毛病
日志方法能夠起到作用的條件是服務(wù)器要響應(yīng)來自客戶真?zhèn)€懇求,假如客戶真?zhèn)€懇求不通過服務(wù)器就得到了響應(yīng)(這實在是經(jīng)常產(chǎn)生的),那么服務(wù)器日志法就無能為力了。
1. 害怕網(wǎng)頁緩存(Cache)
為了提高網(wǎng)站頁面的載進(jìn)速度,人們發(fā)明了網(wǎng)頁緩存(Cache)。在臺灣,Cache被翻譯作“快取”,似乎兼?zhèn)淞艘袅x。
網(wǎng)頁緩存的原理很輕易懂得,但卻是個了不起的發(fā)明。在緩存呈現(xiàn)之前,人們拜訪網(wǎng)站每次都需要把網(wǎng)頁從網(wǎng)站的服務(wù)器傳輸?shù)娇蛻粽鎮(zhèn)€瀏覽器中,這個速度當(dāng)然會有點兒慢,尤其是網(wǎng)絡(luò)條件不好的時候。于是善動頭腦的人們發(fā)明,每次拜訪的網(wǎng)站實在有很多內(nèi)容是沒有更新的,假如能夠把那些不經(jīng)常更新的部分放在自己的電腦里面,每次打開網(wǎng)頁的時候,首先搜索自己電腦里面已經(jīng)有的內(nèi)容,然后再往服務(wù)器往尋找那些被更新了的部分,這樣服務(wù)器傳輸?shù)臄?shù)據(jù)量就會大大減少了,全部網(wǎng)頁也會被更快地顯示出來。
現(xiàn)在,我們大部分人的瀏覽器都設(shè)置了緩存。所以,有時候,你會發(fā)明,即使網(wǎng)絡(luò)沒有接通,你拜訪的網(wǎng)站似乎也能“正常”打開,只不過瀏覽器會顯示“脫機”狀態(tài),告訴你,這些內(nèi)容不是真正從服務(wù)器傳輸過來的。
除了客戶端(瀏覽器)能夠存放緩存的內(nèi)容外,代理服務(wù)器(Proxy)也能夠存放網(wǎng)頁緩存,目標(biāo)同樣是為了提速。你可以把代理服務(wù)器的緩存想象成CPU的“二級緩存”——當(dāng)客戶端沒有存儲某個網(wǎng)頁的緩存的時候(“一級緩存”沒有內(nèi)容),瀏覽器就會尋找代理服務(wù)器緩存,看看有沒有內(nèi)容。假如還沒有,那才會再往尋找真正存放網(wǎng)頁內(nèi)容的網(wǎng)站服務(wù)器。
有了緩存,當(dāng)你點擊瀏覽器的“回退按鈕”的時候,回退的上一個頁面就不需要再重新從服務(wù)器中下載一次,而是立即就浮現(xiàn)在你的眼前。你常用的網(wǎng)站的打開速度也明顯晉升了。
可是,對于通過服務(wù)器日志來獲取網(wǎng)站拜訪數(shù)據(jù)的方法而言,這可不是一個好事情。由于緩存的存在,本來應(yīng)當(dāng)懇求服務(wù)器的成果不需要懇求了,服務(wù)器的日志什么也不會記錄下來,可是對頁面的拜訪卻又實實在在的產(chǎn)生了。
所以,緩存的存在會使日志方法低估網(wǎng)站的實際拜訪量。
2. 害怕Flash等“客戶端交互”內(nèi)容
現(xiàn)在,為了更具沖擊力的視覺后果和更豐富的網(wǎng)頁互動,應(yīng)用Flash、參加視頻、設(shè)計很多互動程序在網(wǎng)頁上已經(jīng)稀疏平常。而這些元素,它們太獨立了,以至于當(dāng)它們被載進(jìn)到瀏覽器端了之后,完整可以在瀏覽器端運行而不再與服務(wù)器產(chǎn)生交互,或者只需要在必要的時候才與服務(wù)器產(chǎn)生交互。
比如,你玩兒普通網(wǎng)頁版的Flash小游戲,一旦游戲下載完畢,你在玩兒的過程中跟網(wǎng)站服務(wù)器就不會有什么接洽了,或者你看網(wǎng)頁上的視頻,你在播放器上進(jìn)行的暫停把持,一般也不會跟服務(wù)器進(jìn)行互動。還有,有一些腳本語言編寫的網(wǎng)頁程序,是在瀏覽器上被說明履行的,比如用JavaScript實現(xiàn)的網(wǎng)頁Tab標(biāo)簽切換,在頁面全部載完后,無論你怎么切換Tab,服務(wù)器都感到不到了。
服務(wù)器感到不到,也就不會存在什么服務(wù)器日志記錄,也就不會有數(shù)據(jù),因此用日志方法是無法準(zhǔn)確獲取“客戶端交互”類型的網(wǎng)站拜訪行動的。這種情況下,必需選擇其他的數(shù)據(jù)收集方法。
3. 不準(zhǔn)確的拜訪者記錄
日志方法分辨獨立拜訪者需要依附客戶真?zhèn)€IP地址,也只能依附它。不過,IP地址顯然不代表真正的拜訪者。上班族的全部辦公室的IP地址都可能是一個(應(yīng)用代理服務(wù)器),而這個辦公室可能坐著十多個人。這可能使拜訪者的數(shù)目被低估。
同樣,在家中,假如你購置了公共網(wǎng)絡(luò)服務(wù),那么你的IP地址存在動態(tài)分配的標(biāo)題。你今天上網(wǎng)的IP地址和明天的可能就會不同,這個時候日志方法只能判定為兩個不同的拜訪者。這又可能使拜訪者的數(shù)目被高估。
此外,前面提到過日志是能夠忠誠記錄機器(非人為)的拜訪運動的,但是機器不是人,它們的運動混在真實的人的拜訪之中,同樣會使真實拜訪者的數(shù)目,或者拜訪數(shù)本身被高估。
在這正反兩相反方向的共同作用下,成果只能一個,那就是對于拜訪者數(shù)目標(biāo)估算是非常含混的。當(dāng)然,我們必需要承認(rèn),無論用什么方法,網(wǎng)站拜訪者的準(zhǔn)確數(shù)目都無法獲得,但相對而言,日志方法要更不準(zhǔn)確些。
4. 較弱的實時性
沒錯,網(wǎng)站服務(wù)器日志是記錄服務(wù)器運行的實時數(shù)據(jù)的,但是這些數(shù)據(jù)想要被取出分析,實時性就沒有那么好了。常見的情況是,你必需首先把服務(wù)器日志文件(log file)從服務(wù)器中取出來,而這些文件確定不會是服務(wù)器正在運行過程中的數(shù)據(jù),一般都是隔天的(需要驗證),然后再把這些日志文件導(dǎo)進(jìn)到專門針對日志分析的工具中才干進(jìn)行分析。這個過程的快慢依附于你的熟練程度,但要尋求實時,頗有難度。
有技巧高超的站長或者工程師通過架設(shè)內(nèi)部網(wǎng)絡(luò)、組建專門的日志分析服務(wù)器,并且編寫特定的程序來解決日志分析的實時性標(biāo)題(http://www.phparticle.net/htmldata/36462/1/),但是,對于普通的中小網(wǎng)站,這種方法難度頗大,花費不菲,所以可行性不強。因此,實時性是盡大部分通過日志方法來分析網(wǎng)站數(shù)據(jù)時要面對的標(biāo)題。
5. 海量的數(shù)據(jù)存儲
服務(wù)器日志是忠誠的,所以它會如實記錄下來每一分每一秒產(chǎn)生的每一條服務(wù)器響應(yīng)。對于一些流量稍大的網(wǎng)站,一天的網(wǎng)站日志記錄超過數(shù)個G(Gigabytes)是非常正常的,而那些最大的網(wǎng)站,一個小時就可能產(chǎn)生數(shù)G的記錄。我們沒有詹姆斯·卡梅隆的超級團隊(他的《阿凡達(dá)》殊效需要處理超過500,000G的數(shù)據(jù)),所以假如要回溯網(wǎng)站一個月的流量就可能變成一個相當(dāng)棘手的標(biāo)題,需要投進(jìn)相當(dāng)?shù)臅r間和耐心,假如你沒有相當(dāng)?shù)募记珊徒?jīng)驗,效率就會很低。
6. 日志文件獲取繁瑣
我們不能把日志文件的獲取想象的太簡略,畢竟這不是在自己臥室的電腦中點開一個MP3文件那么輕易。有些網(wǎng)站有鏡像服務(wù)器,有些服務(wù)器在境外,有些服務(wù)器是由處在多個不同地理地位的物理服務(wù)器邏輯組合而成。這些情況下,在進(jìn)行日志分析之前需要集中所有的日志文件,這是一個很有些麻煩的事情,尤其是當(dāng)日志文件的體積極為宏大的時候。另外,假如是租用的ISP服務(wù)器空間,假如沒有權(quán)限獲取日志數(shù)據(jù),那么實際上連進(jìn)行分析的可能性都沒有了。
現(xiàn)在,你完整懂得了日志方法收集網(wǎng)站分析數(shù)據(jù)的優(yōu)毛病,那么,什么情況下你應(yīng)當(dāng)選擇這種方法進(jìn)行網(wǎng)站分析呢?
4. 什么情況下該用日志分析方法
假如你有如下的數(shù)據(jù)監(jiān)測和分析的需要,你應(yīng)當(dāng)用日志分析方法:
1. 需要懂得搜索引擎機器人或者其他非人為拜訪流量,并且盼看據(jù)此對網(wǎng)站進(jìn)行針對性的優(yōu)化,如通過火析搜索引擎的拜訪行動來進(jìn)行SEO;
2. 需要懂得除了普通的PC客戶端之外的上網(wǎng)設(shè)備對網(wǎng)站的拜訪情況;
3. 需要懂得網(wǎng)站的文件資源是否被用戶完整的下載索??;
4. 對網(wǎng)站流量信息具有極高的保密需要,不答應(yīng)讓任何第三方染指或幫忙;
5. 對于網(wǎng)站服務(wù)器的安全性和可保護(hù)性有請求,以及有非常明顯的對抗黑客或其他非授權(quán)拜訪需求的。
假如有如下需求,你不應(yīng)當(dāng)用日志分析方法:
1. 你的網(wǎng)站有重要的Flash之類的“非網(wǎng)頁類型的互動”,用戶和這些內(nèi)容的互動是你想要懂得的內(nèi)容;
2. 不愛好麻煩,對大數(shù)據(jù)量文件的處理不擅長,對日志文件不熟悉,沒有好的日志數(shù)據(jù)處理軟硬件資源;
3. 需要更準(zhǔn)確的懂得網(wǎng)站被真正的人拜訪的情況,而不需要懂得“非人”的機器對網(wǎng)站的拜訪并且不盼看受到網(wǎng)頁緩存的干擾;
4. 需要更好的實時性、更規(guī)律更直觀的數(shù)據(jù)浮現(xiàn)。
現(xiàn)在,拿著這個清單,你可以做出輕易的選擇了。由于我的博客(http://www.chinawebanalytics.cn)的流量很多來自搜索引擎,因此分析服務(wù)器日志并懂得搜索引擎爬蟲的工作實在是非常必要的一個分析工作之一。
就我的經(jīng)驗而言,我們國家應(yīng)用日志來分析網(wǎng)站仍然占領(lǐng)相當(dāng)?shù)谋壤?,尤其是對于一些大型網(wǎng)站,他們會開發(fā)專門的軟件,劃撥專門的硬件資源來分析網(wǎng)站日志。不過,這不僅僅是從分析拜訪者行動的角度來考慮,更是從網(wǎng)站服務(wù)器的安全性和可保護(hù)性角度來考慮的。
不過,假如你把網(wǎng)站分析的重心放在對于網(wǎng)站真實拜訪者行動的追蹤和分析上,那么,通過日志方法來實現(xiàn)相對而言難度相對照較大,把持也比擬繁瑣,我們可以利用另一種方法,即頁面標(biāo)記法(Page Tag)來實現(xiàn)對網(wǎng)站拜訪數(shù)據(jù)的收集。
好了,先容完了,盼看大家感到看完后還算高興!現(xiàn)在是大家的時間了,請您留言,任何標(biāo)題,想法,不確實之處,都非常歡迎!謝謝!
[版權(quán)回Sidney Song(宋星)所有,歡迎轉(zhuǎn)載]