uuid原理 java uuid生成原理
就像兩顆豌豆一樣,代碼是基于真實(shí)信息的。例如,您的家庭地址可以用二維碼表示。除非某人與你的家庭住址完全相同,否則街道、建筑物、門牌號(hào)的二維碼不會(huì)有任何區(qū)別,因此重復(fù)的代碼不是二維碼,而是生成二維碼的信
就像兩顆豌豆一樣,代碼是基于真實(shí)信息的。例如,您的家庭地址可以用二維碼表示。除非某人與你的家庭住址完全相同,否則街道、建筑物、門牌號(hào)的二維碼不會(huì)有任何區(qū)別,因此重復(fù)的代碼不是二維碼,而是生成二維碼的信息]。目前,可以存儲(chǔ)一個(gè)普通的二維碼。保存數(shù)千個(gè)字母或數(shù)百個(gè)漢字。如果所有的字母都存儲(chǔ)在一個(gè)二維碼中,即使只存儲(chǔ)了1000個(gè)字母,那么一個(gè)二維碼可能有26個(gè)1000次方的排列,而宇宙中的原子數(shù)是10個(gè)80次方的排列。。。
換言之,包含1000個(gè)字母(或鏈接、標(biāo)題等常見信息)的地址被重復(fù)的概率是多少?目前,這種情況再也不會(huì)發(fā)生了。普通的地址是100多個(gè)字母(或字節(jié)),世界上最長的城市曼谷有167個(gè)字母,可以概括世界各地。即使你想對(duì)宇宙中所有的原子進(jìn)行編碼,現(xiàn)在的二維碼就足夠了
另外,二維碼不是一個(gè)固定的數(shù)字,它還可以像身份證或手機(jī)號(hào)一樣增減。如果有一天人們覺得手頭的二維碼不夠用,那么在水平和垂直方向上加一行網(wǎng)格,存儲(chǔ)的信息可以翻幾個(gè)數(shù)量級(jí),所以真的不必?fù)?dān)心二維碼會(huì)重復(fù)
UUID表示通用唯一識(shí)別碼,這是軟件建設(shè)的標(biāo)準(zhǔn),也是開源軟件基金會(huì)的一部分。UUID的目的是使分布式系統(tǒng)中的所有元素都具有唯一的標(biāo)識(shí)信息,而無需通過中央控制終端
當(dāng)計(jì)算機(jī)請(qǐng)求一個(gè)網(wǎng)頁后,微信服務(wù)器生成一個(gè)唯一的ID(這里是UUID)到客戶端的網(wǎng)頁??蛻舳硕ㄆ诎l(fā)起到微信服務(wù)器的連接(這里類似于輪詢),微信服務(wù)器保持連接(這里類似于長連接),并返回一段時(shí)間(約27秒)內(nèi)“沒有人掃描過代碼”的標(biāo)識(shí),這樣客戶端就可以再次發(fā)送回去打開連接
mobile微信掃描代碼并解碼。無論是對(duì)URL還是文本進(jìn)行解碼,簡(jiǎn)而言之,這一段符合手機(jī)微信登陸網(wǎng)頁的要求,所以手機(jī)微信向微信服務(wù)器請(qǐng)求解碼后的信息。在這里,我們達(dá)到了將一個(gè)特定的微信賬號(hào)與一個(gè)特定的網(wǎng)頁相關(guān)聯(lián)的目的
在電腦上,微信服務(wù)器在長連接中立即返回“有人掃描了代碼”并結(jié)束連接。網(wǎng)頁提示掃描成功,然后打開長連接等待登錄確認(rèn)標(biāo)志;在手機(jī)上,我們根據(jù)二維碼信息打開相應(yīng)的網(wǎng)頁確認(rèn)登錄
其實(shí)和以前一樣,微信確認(rèn)登錄其實(shí)是讓服務(wù)器說可以登錄。然后服務(wù)器返回可以登錄到網(wǎng)頁長連接的標(biāo)志并結(jié)束長連接,然后跳轉(zhuǎn)到消息網(wǎng)頁