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