计算机科学速成课 Crash Course Computer Science 第三十集 万维网 The World Wide Web
GitHub鏈接:https://github.com/WilliamWuLH/My-notes-about-CCCS
如果你覺(jué)得不錯(cuò)可以 ?Star 和 Fork ?
計(jì)算機(jī)科學(xué)速成課 Crash Course Computer Science
第三十集 萬(wàn)維網(wǎng) The World Wide Web
萬(wàn)維網(wǎng)(World Wide Web)和互聯(lián)網(wǎng)(Internet)不同,萬(wàn)維網(wǎng)在互聯(lián)網(wǎng)之上運(yùn)行,互聯(lián)網(wǎng)之上還有Skype,Minecraft和Instagram,互聯(lián)網(wǎng)是傳遞數(shù)據(jù)的管道,各種程序都會(huì)用,其中傳輸最多數(shù)據(jù)的程序是萬(wàn)維網(wǎng),分布在全球數(shù)百萬(wàn)個(gè)服務(wù)器上,可以用“瀏覽器”來(lái)訪問(wèn)萬(wàn)維網(wǎng)。
超鏈接 hyperlinks
萬(wàn)維網(wǎng)的最基本單位是單個(gè)網(wǎng)頁(yè),頁(yè)面有內(nèi)容,也有去往其他頁(yè)面的鏈接,這些鏈接稱為超鏈接(hyperlinks)。這些超鏈接形成了巨大的互聯(lián)網(wǎng)絡(luò),這就是萬(wàn)維網(wǎng)的名字由來(lái)。
現(xiàn)在說(shuō)起來(lái)覺(jué)得很簡(jiǎn)單,但是在超鏈接做出來(lái)之前計(jì)算機(jī)上每次想看另一個(gè)信息時(shí),需要在文件系統(tǒng)中找到它,或是把地址輸入到搜索框,有了超鏈接,可以在相關(guān)主題間輕松切換。超鏈接的價(jià)值在1945年被Vannevar Bush意識(shí)到。
超文本 hypertext
因?yàn)槲淖殖溄拥膹?qiáng)大,它得到了一個(gè)同樣厲害的名字:超文本(hypertext),如今超文本最常指向的是另一個(gè)網(wǎng)頁(yè),然后網(wǎng)頁(yè)由瀏覽器渲染。
統(tǒng)一資源定位器 Uniform Resource Locator
為了使網(wǎng)頁(yè)能相互連接,每個(gè)網(wǎng)頁(yè)需要一個(gè)唯一的地址,這個(gè)地址叫“統(tǒng)一資源定位器”(Uniform Resource Locator),簡(jiǎn)稱URL,一個(gè)網(wǎng)頁(yè) URL 的例子是“thecrashcourse.com/courses”。
當(dāng)你訪問(wèn)一個(gè)網(wǎng)站時(shí),計(jì)算機(jī)首先會(huì)做“DNS查找”,DNS查找的輸入是一個(gè)域名,DNS會(huì)輸出對(duì)應(yīng)的IP地址,現(xiàn)在有了IP地址,瀏覽器會(huì)打開(kāi)一個(gè)TCP連接到這個(gè)IP地址,這個(gè)地址運(yùn)行著網(wǎng)絡(luò)服務(wù)器,網(wǎng)絡(luò)服務(wù)器的標(biāo)準(zhǔn)端口是80端口。這時(shí)計(jì)算機(jī)連到了目標(biāo)服務(wù)器(例如thecrashcourse.com的服務(wù)器),下一步是向服務(wù)器請(qǐng)求頁(yè)面(例如courses這個(gè)頁(yè)面),這里會(huì)用“超文本傳輸協(xié)議”(Hypertext Transfer Protocol——HTTP)。
超文本傳輸協(xié)議 Hypertext Transfer Protocol
HTTP 的第一個(gè)標(biāo)準(zhǔn):HTTP 0.9 創(chuàng)建于1991年,只有一個(gè)指令“GET”指令,Fortunately,對(duì)當(dāng)時(shí)來(lái)說(shuō)也夠用。因?yàn)槲覀兿胍氖莄ourses頁(yè)面,所以向服務(wù)器發(fā)送指令:“GET /courses”,該指令以 ASCII 編碼發(fā)送到服務(wù)器,服務(wù)器會(huì)返回該地址對(duì)應(yīng)的網(wǎng)頁(yè),然后瀏覽器會(huì)渲染到屏幕上。如果用戶點(diǎn)了另一個(gè)鏈接,計(jì)算機(jī)會(huì)重新發(fā)一個(gè) GET 請(qǐng)求,你瀏覽網(wǎng)站時(shí),這個(gè)步驟會(huì)不斷重復(fù)。
在之后的版本,HTTP添加了狀態(tài)碼,狀態(tài)碼放在請(qǐng)求前面。例如,狀態(tài)碼200代表“網(wǎng)頁(yè)找到了,給你”。狀態(tài)碼400~499代表客戶端出錯(cuò),比如網(wǎng)頁(yè)不存在,就是404錯(cuò)誤。
超文本標(biāo)記語(yǔ)言 Hypertext Markup Language
超文本的存儲(chǔ)和發(fā)送都是以普通文本形式,編碼可能是 ASCII 或者是 UTF-16,因?yàn)槿绻挥屑兾谋緞t無(wú)法表明什么是鏈接,什么不是鏈接,所以有必要開(kāi)發(fā)一種標(biāo)記方法,因此開(kāi)發(fā)了超文本標(biāo)記語(yǔ)言(Hypertext Markup Language——HTML),HTML第一版的版本號(hào)是0.8,創(chuàng)建于1990年,有18種HTML指令。
首先給網(wǎng)頁(yè)一個(gè)大標(biāo)題,輸入h1代表一級(jí)標(biāo)題,然后用<>括起來(lái),這就是一個(gè)HTML標(biāo)簽,然后輸入想要的標(biāo)題,加< /h1 >作為結(jié)束標(biāo)簽,加一個(gè)超鏈接用< a >標(biāo)簽來(lái)做,它有一個(gè)href屬性,說(shuō)明鏈接指向哪里,當(dāng)點(diǎn)擊鏈接時(shí)就會(huì)進(jìn)入那個(gè)網(wǎng)站,最后用< /a >關(guān)閉標(biāo)簽,接下來(lái)用< h2 >標(biāo)簽做二級(jí)標(biāo)題。HTML也有做列表的標(biāo)簽,先寫(xiě)< ol >代表有序列表(ordered list),然后想加幾個(gè)列表項(xiàng)目就加幾個(gè),用< li >包起來(lái),為了保持良好格式,用< /ol >代表列表結(jié)束。
如果把這些文字存入記事本或文本編輯器,然后文件取名“XXXX.html”,就可以拖入瀏覽器打開(kāi),當(dāng)然如今的網(wǎng)頁(yè)更復(fù)雜一些,最新版的HTML——HTML5有100多種標(biāo)簽,圖片標(biāo)簽,表格標(biāo)簽,表單標(biāo)簽,按鈕標(biāo)簽等等。
還有其他相關(guān)技術(shù),比如層疊樣式表(Cascading Style Sheets——CSS)和JavaScript,這倆可以加進(jìn)網(wǎng)頁(yè)做一些更厲害的事情。
網(wǎng)頁(yè)瀏覽器 web browsers
網(wǎng)頁(yè)瀏覽器(web browsers)可以和網(wǎng)頁(yè)服務(wù)器溝通,瀏覽器不僅獲取網(wǎng)頁(yè)和媒體,獲取后還負(fù)責(zé)顯示。第一個(gè)瀏覽器和服務(wù)器是Tim Berners-Lee在1990年寫(xiě)的,為了做出來(lái),他同時(shí)建立了幾個(gè)最基本的網(wǎng)絡(luò)標(biāo)準(zhǔn):URL,HTML和HTTP。萬(wàn)維網(wǎng)就此誕生,重要的是,萬(wàn)維網(wǎng)有開(kāi)放標(biāo)準(zhǔn),大家都可以開(kāi)發(fā)新服務(wù)器和新瀏覽器。
伊利諾伊大學(xué)香檳分校的一個(gè)小組在1993年做了Mosaic瀏覽器,第一個(gè)可以在文字旁邊顯示圖片的瀏覽器,之前瀏覽器要單開(kāi)一個(gè)新窗口顯示圖片,還sui引進(jìn)了書(shū)簽等新功能,界面友好,很受歡迎。1990年代末許多瀏覽器面世:Netscape Navigator,Internet Explorer Opera,OmniWeb,Mozilla,也有很多服務(wù)器面世,比如Apache和微軟互聯(lián)網(wǎng)信息服務(wù)(IIS)。每天都有新網(wǎng)站冒出來(lái),如今的網(wǎng)絡(luò)巨頭比如亞馬遜和eBay,創(chuàng)始于1990年代中期。
搜索引擎
隨著萬(wàn)維網(wǎng)日益繁榮,人們?cè)絹?lái)越需要搜索,如果你知道網(wǎng)站地址則直接輸入瀏覽器就行。起初人們會(huì)維護(hù)一個(gè)目錄,鏈接到其他網(wǎng)站,其中最有名的是“Jerry and David‘s guide to the World Wide Web”,1994年改名為Yahoo。隨著網(wǎng)絡(luò)越來(lái)越大,人工編輯的目錄變得不便利,所以開(kāi)發(fā)了搜索引擎。
長(zhǎng)得最像現(xiàn)代搜索引擎的最早搜索引擎叫JumpStation,由Jonathon Fletcher于1993年在斯特林大學(xué)創(chuàng)建,有3個(gè)部分,第一個(gè)是爬蟲(chóng),一個(gè)跟著鏈接到處跑的軟件,每當(dāng)看到新鏈接就加進(jìn)自己的列表里,第二個(gè)部分是不斷擴(kuò)張的索引,記錄訪問(wèn)過(guò)的網(wǎng)頁(yè)上出現(xiàn)過(guò)哪些詞,最后一個(gè)部分是查詢索引的搜索算法,早期搜索引擎的排名方式很簡(jiǎn)單,取決于搜索詞在頁(yè)面上的出現(xiàn)次數(shù),所以有人會(huì)鉆空子;谷歌成名的一個(gè)很大原因是創(chuàng)造了一個(gè)聰明的算法來(lái)規(guī)避這個(gè)問(wèn)題,與其信任網(wǎng)頁(yè)上的內(nèi)容,搜索引擎會(huì)看其他網(wǎng)站有沒(méi)有鏈接到這個(gè)網(wǎng)站,如果是有用內(nèi)容,有網(wǎng)站會(huì)指向它,所以這些“反向鏈接”的數(shù)量,特別是有信譽(yù)的網(wǎng)站,代表了網(wǎng)站質(zhì)量。Google一開(kāi)始時(shí)是1996年斯坦福大學(xué)一個(gè)叫BackRub的研究項(xiàng)目,兩年后分離出來(lái)演變成如今的谷歌。
網(wǎng)絡(luò)中立性 Net Neutrality
網(wǎng)絡(luò)中立性(Net Neutrality)表示應(yīng)該平等對(duì)待所有數(shù)據(jù)包,不論這個(gè)數(shù)據(jù)包是我的郵件還是你在看視頻,速度和優(yōu)先級(jí)應(yīng)該是一樣的,但是很多公司會(huì)樂(lè)意讓它們的數(shù)據(jù)優(yōu)先到達(dá),例如Comcast,它們不但是大型互聯(lián)網(wǎng)服務(wù)提供商,而且擁有多家電視頻道,要是沒(méi)有網(wǎng)絡(luò)中立性,Comcast可以讓自己的內(nèi)容優(yōu)先到達(dá),節(jié)流其他線上視頻,節(jié)流(Throttled)意思是故意給更少帶寬和更低優(yōu)先級(jí)。
支持網(wǎng)絡(luò)中立性的人說(shuō)沒(méi)有中立性后服務(wù)商可以推出提速的高級(jí)套餐,給剝削性商業(yè)模式埋下種子,互聯(lián)網(wǎng)服務(wù)供應(yīng)商成為信息的“守門人”,有著強(qiáng)烈的動(dòng)機(jī)去碾壓對(duì)手,另外像Netflix和Google這樣的大公司可以花錢買特權(quán),而小公司會(huì)處于劣勢(shì),阻止了創(chuàng)新。另一方面,從技術(shù)原因看,也許你會(huì)希望不同數(shù)據(jù)傳輸速度不同,而反對(duì)網(wǎng)絡(luò)中立性的人認(rèn)為市場(chǎng)競(jìng)爭(zhēng)會(huì)阻礙不良行為,如果供應(yīng)商把客戶喜歡的網(wǎng)站降速了,客戶會(huì)離開(kāi)供應(yīng)商。
總結(jié)
以上是生活随笔為你收集整理的计算机科学速成课 Crash Course Computer Science 第三十集 万维网 The World Wide Web的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 广东专业技术计算机考试试题及答案,201
- 下一篇: 检讨/情况说明的写法