本章內(nèi)容衍生自Jessica McKellar的演講“互聯(lián)網(wǎng)是怎么工作的” (http://web.mit.edu/jesstess/www/)
我們猜你每天在使用互聯(lián)網(wǎng)讨便。但是當(dāng)你在瀏覽器里輸入一個(gè)像 http://djangogirls.org 的地址并按 回車鍵
的時(shí)候磕蛇,你真的知道背后發(fā)生了什么嗎命锄?
你需要了解的第一件事是一個(gè)網(wǎng)站只是一堆保存在硬盤上的文件钾唬。 就像你的電影万哪、 音樂或圖片一樣侠驯。 然而,網(wǎng)站的唯一的不同之處是: 網(wǎng)站包含一種稱為 HTML 的代碼奕巍。
如果你不熟悉編程吟策,一開始你會很難理解HTML。你的瀏覽器 (如Chrome的止、 Safari檩坚、 Firefox 等) 卻很喜歡它。 Web瀏覽器懂得這些代碼诅福,遵循它的指令并如你所想的那樣展示這些文件匾委。
就像我們對待每個(gè)電腦文件一樣,我們需要把HTML文件存儲在硬盤的某個(gè)位置氓润。 對于互聯(lián)網(wǎng)赂乐,我們使用特定而功能強(qiáng)大的電腦,我們稱之為服務(wù)器咖气。 它們沒有屏幕挨措、鼠標(biāo)或者鍵盤,因?yàn)樗鼈兊闹饕康氖谴鎯?shù)據(jù)崩溪,并用它來提供服務(wù)浅役。 這就是為什么它們被稱作服務(wù)器--因?yàn)樗麄冇脭?shù)據(jù)服務(wù)你。
好了伶唯,但是你想知道互聯(lián)網(wǎng)看起來是什么樣子的觉既,對嗎?
我們給你畫了一幅畫抵怎!它看起來像這樣:
看起來很糟糕奋救,對嗎? 事實(shí)上反惕,它是一個(gè)由互相連通的機(jī)器 (上面提到的服務(wù)器 ) 組成的網(wǎng)絡(luò)尝艘。數(shù)以十萬計(jì)的機(jī)器!很多姿染,很多數(shù)以公里長的電纜分布在全世界背亥!你能訪問一個(gè)海底電纜地圖網(wǎng)站(http://submarinecablemap.com/)來看這個(gè)網(wǎng)絡(luò)有多么復(fù)雜。 這是一個(gè)網(wǎng)站上的截屏:
它很迷人悬赏,對吧狡汉? 但是很明顯,我們不太可能用電纜去連接任何兩臺上網(wǎng)的電腦闽颇。 我們需要將請求通過很多很多不同的機(jī)器傳遞盾戴,以便連接一臺機(jī)器 (比如存儲http://djangogirls.org的機(jī)器)。
它看起來像這樣
想象一下當(dāng)你鍵入http://djangogirls.org兵多,你會發(fā)送一封信說:“親愛的Django Girls尖啡,我想看看djangogirls.org網(wǎng)站橄仆,請將它發(fā)送給我!”
你的信件去了離你最近的郵局衅斩。 然后它去離你的收件人稍近一點(diǎn)的郵局盆顾,然后再去另一個(gè),以此類推地到達(dá)它的目的地畏梆。 唯一的事情是您宪,如果你將許多信件 (數(shù)據(jù)包) 發(fā)送到同一個(gè)地方,他們可以通過完全不同郵政局 (路由器)奠涌。 這取決于每個(gè)辦公室的分布情況宪巨。
是的,就這么簡單铣猩。你發(fā)送信息揖铜,然后期望一些回復(fù)。當(dāng)然达皿,你使用的不是紙筆,而是比特?cái)?shù)據(jù)贿肩,但是思想是一樣的峦椰!
我們使用的地址叫做IP地址,這種地址卻不包含街道汰规、城市汤功、郵編和城市。 你的電腦首先要求DNS(域名服務(wù)器)去解析djangogirls.org成為IP地址溜哮。 他工作起來有點(diǎn)像老式的電話簿滔金,在那里你可以找到你想聯(lián)系的人的名字,并且找到他們的電話號碼和地址茂嗓。
當(dāng)你發(fā)送一封信時(shí)餐茵,它需要確切的功能以便正確的傳遞:地址,郵票等等述吸。 你使用一種接收者同樣能夠理解的語言忿族,對嗎? 你送到網(wǎng)站的數(shù)據(jù)包也類似如此蝌矛。 我們使用一個(gè)名為 HTTP (Hypertext Transfer Protocol:超文本傳輸協(xié)議) 的協(xié)議道批。
所以,基本上入撒,當(dāng)你有一個(gè)網(wǎng)站你需要有一臺服務(wù)器用于網(wǎng)站的托管隆豹。 當(dāng)服務(wù)器接收到一個(gè)訪問請求(一封信),它把網(wǎng)站內(nèi)容發(fā)送回去(回信)茅逮。
既然這是Django教程璃赡,你會問Django做什么簿煌。 當(dāng)你發(fā)送一個(gè)響應(yīng)時(shí),你通常不會發(fā)送同樣的東西給每一個(gè)人鉴吹。 如果你信件的內(nèi)容是個(gè)性化的必然更好姨伟,尤其是對于那個(gè)剛剛給你寫信的人,對嗎豆励? Django幫助你創(chuàng)建這些個(gè)性化夺荒,有趣的信件:)。
廢話少說良蒸,抓緊時(shí)間創(chuàng)造技扼!