计算机科学速成课 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,Scie)