]]>cookie鎶鏈笌嬈洪獥http://www.tkk7.com/zhaijianhui/archive/2006/05/19/46953.html铚樿洓铚樿洓Fri, 19 May 2006 00:42:00 GMThttp://www.tkk7.com/zhaijianhui/archive/2006/05/19/46953.htmlhttp://www.tkk7.com/zhaijianhui/comments/46953.htmlhttp://www.tkk7.com/zhaijianhui/archive/2006/05/19/46953.html#Feedback5http://www.tkk7.com/zhaijianhui/comments/commentRss/46953.htmlhttp://www.tkk7.com/zhaijianhui/services/trackbacks/46953.html浠涔堟槸Cookie Cookie鏄竴縐嶅湪瀹㈡埛绔繚鎸丠TTP鐘舵佷俊鎭殑鎶鏈紝瀹冨ソ姣斿晢鍦哄彂鏀劇殑浼樻儬鍗°傞【瀹㈠湪涓涓晢鍦鴻喘鐗╃粨璐︾寮鏃訛紝鍟嗗満鍙互鍐沖畾鏄惁璧犻佺粰欏懼涓寮犱紭鎯犲崱錛屼笉鍚岄【瀹㈢殑浼樻儬鍗′笂璁拌澆鐨勪俊鎭彲浠ヤ笉鍚岋紝渚嬪錛岃杞借欏懼绱璐墿鐨勯噾棰濆拰鏈夋晥鏈熼檺銆傞【瀹㈠彲浠ュ喅瀹氭槸鍚︽帴鍙楄繖寮犱紭鎯犲崱錛屼竴鏃﹂【瀹㈡帴鍙椾簡榪欏紶浼樻儬鍗★紝閭d箞浠栧湪浠ュ悗姣忔鍏夐【璇ュ晢鍦烘椂錛岄兘灝嗘惡甯﹁繖寮犱紭鎯犲崱錛屽晢鍦轟篃灝嗘牴鎹繖寮犱紭鎯犲崱涓婅杞界殑淇℃伅榪涜涓浜涚壒孌婄殑浜嬪姟澶勭悊錛屼緥濡傦紝璁$畻鎶樻墸鐜囧拰绱姞鏈璐墿閲戦銆侰ookie鏄湪嫻忚鍣ㄨ闂甒EB鏈嶅姟鍣ㄧ殑鏌愪釜璧勬簮鏃訛紝鐢盬EB鏈嶅姟鍣ㄥ湪HTTP鍝嶅簲娑堟伅澶翠腑闄勫甫浼犻佺粰嫻忚鍣ㄧ殑涓鐗囨暟鎹紝WEB鏈嶅姟鍣ㄤ紶閫佺粰鍚勪釜瀹㈡埛绔祻瑙堝櫒鐨勬暟鎹槸鍙互鍚勪笉鐩稿悓鐨勩傛祻瑙堝櫒鍙互鍐沖畾鏄惁淇濆瓨榪欑墖鏁版嵁錛屼竴鏃EB嫻忚鍣ㄤ繚瀛樹簡榪欑墖鏁版嵁錛岄偅涔堝畠鍦ㄤ互鍚庢瘡嬈¤闂WEB鏈嶅姟鍣ㄦ椂錛岄兘搴斿湪HTTP璇鋒眰澶翠腑灝嗚繖鐗囨暟鎹洖浼犵粰WEB鏈嶅姟鍣ㄣ傛樉鐒訛紝Cookie鏈鍏堟槸鐢盬EB鏈嶅姟鍣ㄥ彂鍑虹殑錛屾槸鍚﹀彂閫丆ookie鍜屽彂閫佺殑Cookie鐨勫叿浣撳唴瀹癸紝瀹屽叏鏄敱WEB鏈嶅姟鍣ㄥ喅瀹氱殑銆? WEB鏈嶅姟鍣ㄩ氳繃鍦℉TTP鍝嶅簲娑堟伅涓鍔燬et-Cookie鍝嶅簲澶村瓧孌靛皢Cookie淇℃伅鍙戦佺粰嫻忚鍣紝嫻忚鍣ㄥ垯閫氳繃鍦℉TTP璇鋒眰娑堟伅涓鍔燙ookie璇鋒眰澶村瓧孌靛皢Cookie鍥炰紶緇橶EB鏈嶅姟鍣ㄣ備竴涓狢ookie鍙兘鏍囪瘑涓縐嶄俊鎭紝瀹冭嚦灝戝惈鏈変竴涓爣璇嗚淇℃伅鐨勫悕縐幫紙NAME錛夊拰璁劇疆鍊鹼紙value錛夈備竴涓猈EB绔欑偣鍙互緇欎竴涓猈EB嫻忚鍣ㄥ彂閫佸涓狢ookie錛岃繖鏍鳳紝鍦╓EB嫻忚鍣ㄥ拰WEB鏈嶅姟鍣ㄤ箣闂村氨鍙互浣跨敤澶氫釜Cookie鏉ヤ紶閫掑縐嶄俊鎭紝渚嬪錛岀敤涓涓狢ookie鏉ユ爣璇嗚闂呯殑濮撳悕錛岀敤鍙﹀涓涓狢ookie鏉ユ爣璇嗚鐢ㄦ埛鐧誨綍绔欑偣鐨勬鏁般備竴涓狢ookie闄や簡鏈夊悕縐板拰璁劇疆鍊煎錛屽畠榪樺彲浠ユ湁涓浜涘叾浠栫殑闄勫姞灞炴э紝渚嬪錛孋ookie鐨勬湁鏁堟椂闂淬傚鏋滆緗簡Cookie鐨勬湁鏁堟椂闂達紝鎺ュ彈瀹冪殑嫻忚鍣ㄨ繘紼嬪皢璇ookie淇濆瓨鍦ㄨ綆楁満紜洏涓紝鍙湁璇ookie瓚呭嚭鏈夋晥鏃墮棿鍚庢墠琚垹闄わ紝榪欐牱鐨凜ookie灝嗚鍚屼竴鍙拌綆楁満涓婂惎鍔ㄧ殑澶氫釜嫻忚鍣ㄨ繘紼嬪叡浜傛濡備竴涓【瀹㈠彲浠ユ湁澶氬鍟嗗満鎻愪緵鐨勪紭鎯犲崱涓鏍鳳紝涓涓猈EB嫻忚鍣ㄤ篃鍙互瀛樺偍澶氫釜WEB绔欑偣鎻愪緵鐨凜ookie銆備負浜嗛槻姝ookie濉炴弧瀹㈡埛鏈虹殑紜洏錛屾祻瑙堝櫒涓鑸彧鍏佽瀛樻斁300涓狢ookie錛屾瘡涓珯鐐規渶澶氬瓨鏀?0涓狢ookie錛屾瘡涓狢ookie鐨勫ぇ灝忛檺鍒朵負4KB銆傚鏋滄病鏈夎緗瓹ookie鐨勬湁鏁堟椂闂達紝鎺ュ彈瀹冪殑嫻忚鍣ㄨ繘紼嬪彧灝嗚Cookie淇濆瓨鍦ㄨ嚜宸辯殑鍐呭瓨絀洪棿涓紝鍦ㄨ嫻忚鍣ㄨ繘紼嬪叧闂椂錛屽畠閲岄潰淇濆瓨鐨勬墍鏈塁ookie涔熷皢闅忎箣娑堝け銆? Cookie瀹炵幇浜嗕竴縐嶅湪嫻忚鍣ㄥ拰鏈嶅姟鍣ㄤ箣闂翠駭鐢熸湁鐘舵佷細璇濈殑鏂瑰紡錛屽畠鍙互鎶婁竴涓祻瑙堝櫒璁塊棶鐨勫悓涓涓湇鍔″櫒涓婄殑鎵鏈夌▼搴忚瘡榪炶搗鏉ワ紝鍦ㄨ繖浜涚▼搴忎箣闂翠紶閫掓暟鎹備緥濡傦紝褰撶敤鎴蜂嬌鐢ㄦ祻瑙堝櫒璁塊棶鏌愪釜緗戠珯鐨勭櫥褰曠▼搴忚繘琛岀櫥褰曞悗錛屾棤璁鴻繖涓祻瑙堝櫒鍐嶈闂緗戠珯鐨勫摢涓▼搴忥紝鍏朵粬紼嬪簭閮借兘鐭ラ亾璁塊棶鑰呯殑韜喚淇℃伅錛岃繖鏄湪WEB绔欑偣涓潪甯告櫘閬嶇殑涓涓簲鐢ㄣ傝繖縐嶅簲鐢ㄩ氬父灝辨槸閲囩敤Cookie鎶鏈潵瀹炵幇鐨勶紝褰揥EB鏈嶅姟鍣ㄧ▼搴忛獙璇佺櫥褰曡姹備腑鐨勭敤鎴峰悕鍜屽瘑鐮佸悗錛屼駭鐢熶竴涓爣璇嗚鐢ㄦ埛韜喚鐨勬爣璇嗗彿錛岀劧鍚庡湪鍝嶅簲娑堟伅涓皢璇ユ爣璇嗗彿浠ookie鐨勫艦寮忎紶閫掔粰嫻忚鍣紝嫻忚鍣ㄥ湪浠ュ悗姣忔璁塊棶璇EB鏈嶅姟鍣ㄦ椂錛岄兘鑷姩鍦ㄨ姹傛秷鎭ご涓皢鏍囪瘑鍙峰張浠ookie鐨勫艦寮忚繑鍥炵粰WEB鏈嶅姟鍣紝鍑熸祻瑙堝櫒榪斿洖鐨勬爣璇嗗彿錛學EB鏈嶅姟鍣ㄧ殑鍏朵粬紼嬪簭灝辮兘鍒嗚鯨鍑哄綋鍓嶈姹傛槸鐢卞摢涓敤鎴峰彂鍑虹殑銆備絾鏄紝鏈変竴鐐硅娉ㄦ剰錛屼笉淇濆瓨鍦ㄧ‖鐩樹腑鐨凜ookie淇℃伅鏄惁鍙互琚悓涓鍙拌綆楁満涓婂惎鍔ㄧ殑澶氫釜嫻忚鍣ㄨ繘紼嬪叡浜紝涓嶅悓鐨勬祻瑙堝櫒鏈変笉鍚岀殑澶勭悊鏂瑰紡銆傚浜嶪E嫻忚鍣ㄦ潵璇達紝淇濆瓨鍦ㄥ叾涓竴涓祻瑙堝櫒榪涚▼鐨勫唴瀛樼┖闂翠腑鐨凜ookie鏄笉鑳借鍏朵粬嫻忚鍣ㄨ繘紼嬪叡浜殑錛岃繖灝變細鍑虹幇鍚屼竴鍙拌綆楁満涓婄殑姣忎釜嫻忚鍣ㄨ繘紼嬮兘浼氫笌鏈嶅姟鍣ㄥ艦鎴愬悇鑷嫭绔嬬殑浼氳瘽錛涜屽浜嶮ozilla 聽Firefox嫻忚鍣ㄦ潵璇達紝鎵鏈夌殑榪涚▼鍜屾爣絳鵑〉閮藉叡浜玞ookie淇℃伅銆傚彟澶栵紝鍦↖E嫻忚鍣ㄤ腑鎸塁trl-N閿紙鎴栬呭崟鍑燴滄枃浠垛濓儬;;鈥滄柊寤衡濓儬;;鈥滅獥鍙b濊彍鍗曪級鎵撳紑鐨勭獥鍙f垨鑰呮槸鐢╦avascript鐨剋indow.open璇彞鎵撳紑鐨勭獥鍙o紝閮戒細鍏變韓鍘熺獥鍙g殑Cookie淇℃伅錛屽洜涓哄畠浠睘浜庡悓涓涓祻瑙堝櫒榪涚▼鍐呴儴鐨勫涓獥鍙?鍑鴻嚜寮犲瓭紲ヨ佸笀鐨勶紲娣卞叆浣撻獙JavaWeb寮鍙戝唴騫?gt;鎵嬬ǹ寰堟湡寰呰繖鏈功鐨勯潰涓? /// 鎴戜滑瀛︿範浜嗗彲浠ョ敤jsp Cookie綾繪潵鍒涘緩cookie錛屽綋鐒跺叾瀹冭璦涔熷彲浠ュ垱寤哄寘鎷鎴風鑴氭湰璇█javascript,vbscript鍚屽湪鎴戜滑涓昏璋堣皥鐢╦avascript,鍜宧tml鏉ュ垱寤篶ookie 1 Creating a Cookie that Is Valid Until a Certain Date <HTML> <HEAD> <TITLE>Creating a cookie that is valid until a certain date</TITLE> <META HTTP-EQUIV="Set-Cookie" CONTENT="userId=678;expires=Wednesday, 26-Dec-01 16:00:00 GMT; path=/"> </HEAD> <BODY> Unless you set your browser to not accept cookies, a cookie called userId with a value of 678 has been created for you. </BODY> </HTML> ///// 2 Creating Cookies with document.cookiess document.cookiess = "cookieName=cookievalue 聽[; expires=timeInGMTString] 聽[; path=pathName] 聽[; domain=domainName] 聽[; secure]" Listing 25.3 Creating a Cookie with document.cookiess <HTML> <HEAD> <TITLE>Creating a cookie with document.cookiess</TITLE> <SCRIPT LANGUAGE="javascript"> document.cookiess="Quantity=7"; </SCRIPT> </HEAD> <BODY> This page creates a cookie on the client side. Make sure that your browser is set to accept cookies. </BODY> </HTML> Creating Cookies with the setCookie Function For example, you'll want to create a cookie when your user chooses to buy something in your online store web application Listing 25.4 The setCookie Function <SCRIPT LANGUAGE="javascript"> function setCookie(name, value, expires, path, domain, secure) { 聽document.cookiess = name + "=" + escape(value) + 聽 聽((expires) ? "; expires=" + expires.toGMTString() : "") + 聽 聽((path) ? "; path=" + path : "") + 聽 聽((domain) ? "; domain=" + domain : "") + 聽 聽((secure) ? "; secure" : ""); } </SCRIPT> Listing 25.7 An Example that Creates a Cookie with an Expiration Date <HTML> <HEAD> <TITLE>Using the setCookie function</TITLE> <SCRIPT LANGUAGE="javascript"> 聽 function setCookie(name, value, expires, path, domain, secure) { 聽document.cookiess = name + "=" + escape(value) + 聽 聽((expires) ? "; expires=" + expires.toGMTString() : "") + 聽 聽((path) ? "; path=" + path : "") + 聽 聽((domain) ? "; domain=" + domain : "") + 聽 聽((secure) ? "; secure" : ""); }
function fixDate(date) { 聽 聽var base = new Date(0); 聽 聽var skew = base.getTime(); 聽 聽if (skew > 0) date.setTime(date.getTime() - skew); }
var expiryDate = new Date(); fixDate(expiryDate); expiryDate.setTime(expiryDate.getTime() + 365 * 24 * 60 * 60 * 1000); setCookie("authorizationLevel", 2, expiryDate);
</SCRIPT> </HEAD> <BODY> A cookie which is valid for a year has been created for this page. </BODY> </HTML> Listing 25.9 Writing and Reading Cookies <HTML> <HEAD> <TITLE>Writing and Reading Cookies</TITLE> <SCRIPT LANGUAGE="javascript">
if (getCookie('test')==null) 聽alert("Please change your browser to accept cookies."); else 聽alert("Browser accepts cookies");
</SCRIPT> </HEAD>
<BODY> The page content </BODY> </HTML> Checking If the Browser Accepts Cookies Without javascript 涓嶇敤javascript鏉ユ鏌ョ敤鎴鋒祻瑙堝櫒鏄惁鏀寔cookie鎶鏈紒錛侊紒 Another way to check if the browser is willing to accept cookies is by creating a cookie on one page and then immediately redirecting the user to a second page. In the second page you can then try to read the cookies. The code in Listing 25.12 uses the <META> tag to create a cookie called "test" and then redirects the browser to a second page called checkCookie.jsp (in Listing 25.13). Listing 25.12 Checking Browser Cookie Acceptance with Redirection <HTML> <HEAD> <META HTTP-EQUIV="Set-Cookie" CONTENT="test=ok;"> <META HTTP-EQUIV="Refresh" CONTENT="0;URL=checkCookie.jsp"> </HEAD> </HTML> In the second page, implemented using ASP in this example, you try to read the same cookie using the code in Listing 25.13. Listing 25.13 Reading the Cookies in the Browser Cookie Acceptance Test <% 聽If Request.cookiesss("test") <> "" Then 聽 聽Response.Write "Cookies accepted." 聽Else 聽 聽Response.Write "Cookies not accepted." 聽End If %> Even though the code in this example only sends a message to the user telling him or her whether or not his or her browser accepts cookies, you can modify it to suit your needs. For instance, you can transfer the user to a warning page if the cookies are not accepted. 浜嗚В涓涓猚ookie鏂囦歡閲岄潰鐨勫唴瀹圭殑鍚箟錛侊紒錛侊紒錛侊紒錛? 3.5 What are all those entries in my cookies.txt file?
The layout of Netscape's cookies.txt file is such that each line contains one name-value pair. An example cookies.txt file may have an entry that looks like this: .netscape.com 聽 聽 TRUE 聽 / 聽FALSE 聽946684799 聽 NETSCAPE_ID 聽100103 Each line represents a single piece of stored inFORMation. A tab is inserted between each of the fields.
From left-to-right, here is what each field represents:
domain - The domain that created AND that can read the variable. flag - A TRUE/FALSE value indicating if all machines within a given domain can access the variable. This value is set automatically by the browser, depending on the value you set for domain. path - The path within the domain that the variable is valid for. secure - A TRUE/FALSE value indicating if a secure connection with the domain is needed to access the variable. expiration - The UNIX time that the variable will expire on. UNIX time is defined as the number of seconds since Jan 1, 1970 00:00:00 GMT. name - The name of the variable. value - The value of the variable. 濂界幇鍦ㄨ繕鐪嬬湅鍏跺畠鏂歸潰鐨勶紝鏈夎叮鐨勪竴闈紒 鍦╳indow褰撲腑cookie涓鑸瓨鏀懼湪C:\Documents and Settings\wwwfox\Cookies wwwfox涓烘垜鐧誨綍xp鐨勮處鍙?褰撶劧鐢變簬ie鐗堟湰涓嶅悓瀛樻斁鐨勪綅緗篃鏈夋墍涓嶅悓,浣犲彲浠ュ埌寰蔣瀹樻柟緗戠珯涓婂幓鏌ョ湅,褰撶劧鏈濂界殑鏂規硶灝辨槸鎼滀竴涓婥ookie鏂囦歡灝卞彲浠ョ煡閬撳叿浣撳湪瀛樻斁鍦ㄩ偅閲屼簡, 涓嬮潰鏄疌ookies涓嬮潰鐨勪竴涓狢ookie鏂囦歡wwwfox@cgi-bin.txt鍐呭鏄? advpost 0 219.239.245.203/cgi-bin/ 1536 1276665728 29789832 2326352352 29783688 瀵瑰簲鏂規硶 advpost--->cookie
.getName 0--->cookie
.getvalue() 1536-->cookie
.getMaxAge()濡傝繑鍥炰負-1琛ㄧず鍏抽棴嫻忚鍣╟ookie灝卞け鏁? 聽 鍚庨潰灝辨槸鍒涘緩鏃ユ湡,澶辨晥鏃ユ湡 聽 鍒涘緩鏃墮棿,澶辨晥鏃墮棿 鐜板湪鏁欎綘鎬庝箞鐢╦sp緙栫▼鏌ョ湅涓婄綉鏃剁綉绔欑粰浣犲垱寤虹殑cookie鏂囦歡錛? 闂涓.cookiess鍙兘鐢卞畠鍒涘緩鐨勭綉绔欒闂紝閭d箞鎴戜滑鎬庝箞鑳藉鍦ㄨ嚜宸辯殑鐢佃剳鏄繍琛岃嚜宸辯殑鏈嶅姟鍣ㄦ煡鐪嬪嚭鏉ュ憿錛屽鏋滆兘鎴愰偅灝辨槸cookie嬈洪獥銆備鏡鍏ュ埆浜虹綉绔欑殑鏍規簮銆? 濂介氳繃紺轟緥鏉ユ紨紺猴細, wwwfox@csdn[2].txt褰撶劧瀹冪殑鍛藉悕鏄? 浣犵殑鐢ㄦ埛鐢佃剳甯愬彿@浜х敓鐨凜OOKIE鐨勭綉欏墊枃浠舵墍鍦ㄧ殑WEB鐩綍[COOKIE鏀瑰彉鐨勬鏁癩.txt wwwfox鐢佃剳甯愬彿鍦ㄨ闂甤sdn緗戠珯鏃舵槸涓嶄細鍙戦佸埌csdn緗戠珯涓婂幓鐨勶紝涔熷氨鏄彧鑳藉湪鎴戠殑鐢佃剳wwwfox甯愬彿涓婁嬌鐢ㄨ繖涓猚ookie鍏朵漢錛堝笎鍙鳳級鏄笉鑳界敤鐨勩傘? 鍦–:\Documents and Settings\wwwfox\Cookies涓嬫垜鏈変竴涓櫥褰昪sdn緗戠珯鏃剁敱瀹冨垱寤虹殑cookie wwwfox@csdn[2].txt鐨勫唴瀹規槸錛? ABCDEF hbWhkUhCWfRTUyeAVO5k79qTBFZXtGV2qfwAROv%252fvVk9qF3rfkcZQbl1IdMsBxhy15Y%252fqwN2XiLyTy%252fDGuW4LY7zZll16huuVbnJ0CEun26I%252f2bynXLPd2Ymq%252bn2Mt11pSP5w3%252fZNXt9ZJEp79VMCw%253d%253d csdn.net/ 1536 3743055744 29786511 2555961280 29783695 //////////////////////////// 鍦–:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\test鏂板緩涓涓枃浠禼heckCookie.jsp <%@page pageEncoding="gb2312" %> <% Cookie[] cookie=request.getCookies(); out.println("this is
www.csdn.net/<br>"); out.println("<br>"); for(int i=0;i<cookie.length;i++) { if(cookie
.getName().equals("ABCDEF")) { String name=cookie
.getName(); String value=cookie
.getvalue(); int maxage=cookie
.getMaxAge(); out.println("name="+cookie
.getName()+"<br>"); out.println("value="+cookie
.getvalue()+"<br>"); out.println("maxage="+cookie
.getMaxAge()+"<br>"); //out.println("setMaxAge涓?0"); //cookie
.setMaxAge(30); //out.println("涔嬪悗涓簃axage="+cookie
.getMaxAge()+"<br>"); out.println("domain="+cookie
.getDomain()+"<br>"); out.println("secure="+cookie
.getSecure()+"<br>"); out.println("path="+cookie
.getPath()+"<br>"); } } %> 濂界幇鍦ㄨ闂竴涓? http://localhost:8080/test/checkCookie.jsp鏄笉鏄樉紺猴細 this is
www.csdn.net 鑰屾病鏈夊彇鍒板鹼細鍥犱負鍙兘鍦ㄥ畠鐨刣omain涓嬭兘璁塊棶鍒拌繖涓猚ookie 濂界幇鍦ㄦ垜浠潵 鎶奀:\WINDOWS\SYSTEM32\DRIVERS\etc涓嬮潰鐨刪osts.sam鎵撳紑淇敼鍏朵腑鐨? 127.0.0.1 聽hostname 涓?27.0.0.1 聽 聽 聽
www.csdn.net 鍦ㄨ繖閲屼綘榪樺彲浠ュ啀娣誨姞澶氳鍜屼笂闈㈢浉璁跨殑閿煎錛岃繖涓瘮澶栫綉鐨刣sn浼樺厛綰ч珮鎵浠ュ畠鍏堟妸www.csdn.net瑙i噴鎴愭湰鍦扮殑127.0.0.1鎵浠ヤ綘灝卞彲浠ョ敱榪欎釜璁塊棶浜嗭紝榪欎篃鍙互瑙i噴涓轟粈涔堟垜浠彲浠ュ湪ie鏁瞙ttp://localhsot鐨勫師鍥狅紝榪欓噷localhost浣犲彲闅忎究鏀規垚浣犲枩嬈㈢殑鍚嶇О. 淇濆瓨 淇敼conf/servlet.xml褰撲腑鐨勭鍙d負80绔彛 <Connector port="80" maxHttpHeaderSize="8192" 聽 聽 聽 聽 聽 聽 聽 maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 聽 聽 聽 聽 聽 聽 聽 enableLookups="false" redirectPort="8443" acceptCount="100" 聽 聽 聽 聽 聽 聽 聽 connectionTimeout="20000" disableUploadTimeout="true" /> 濂界幇鍦ㄥ惎鍔╰omcat璁塊棶http://www.csdn.net/test/checkCookie.jsp 寰楀埌緇撴灉鍟︼細 this is
www.csdn.net