计算机速成课Crash Course - 30. 万维网

今天继续计算机速成课Crash Course的系列讲解。

更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞!

计算机速成课Crash Course - 30. 万维网 (qq.com)

30. 万维网

前两集我们深入讨论了电线、信号、交换机、数据包,路由器以及协议,它们共同组成了互联网。今天我们向上再抽象一层,来讨论万维网。

万维网(World Wide Web)和互联网(Internet)不是一回事,尽管人们经常混用这两个词。

图片

万维网在互联网之上运行,互联网之上还有 Skype, Minecraft 和 Instagram,互联网是传递数据的管道,各种程序都会用,其中传输最多数据的程序是万维网,分布在全球数百万个服务器上,可以用"浏览器"来访问万维网。

这集我们会深入讲解万维网。

万维网的最基本单位,是单个页面,页面有内容,也有去往其他页面的链接,这些链接叫"超链接"。

你们都见过:可以点击的文字或图片,把你送往另一个页面,这些超链接形成巨大的互联网络,这就是"万维网"名字的由来。

图片

现在说起来觉得很简单,但在超链接做出来之前,计算机上每次想看另一个信息时,你需要在文件系统中找到它,或是把地址输入搜索框,有了超链接,你可以在相关主题间轻松切换。

超链接的价值早在 1945 年就被 Vannevar Bush 意识到了,在第 24 集中我们说过,他发过一篇文章,描述一个假想的机器 Memex,Bush的形容是"关联式索引.. 选一个物品会引起,另一个物品被立即选中"。

图片

他解释道:"将两样东西联系在一起的过程十分重要,在任何时候,当其中一件东西进入视线,只需点一下按钮,立马就能回忆起另一件"。

图片

1945年的时候计算机连显示屏都没有,所以这个想法非常超前!

因为文字超链接是如此强大,它得到了一个同样厉害的名字:"超文本"!

如今超文本最常指向的,是另一个网页,然后网页由浏览器渲染,我们待会会讲。

为了使网页能相互连接,每个网页需要一个唯一的地址,这个地址叫 "统一资源定位器",简称 URL。

一个网页URL的例子是 "thecrashcourse.com/courses",就像上集讨论的,当你访问一个网站时,计算机首先会做"DNS查找"。

"DNS查找"的输入是一个域名,比如 thecrashcourse.com,DNS 会输出对应的IP地址,现在有了IP地址,你的浏览器会打开一个 TCP 连接到这个 IP 地址。

图片

这个地址运行着"网页服务器",网页服务器的标准端口是 80 端口,这时,你的计算机连到了,thecrashcourse.com 的服务器。

图片

下一步是向服务器请求"courses"这个页面,这里会用"超文本传输协议"(HTTP)。

HTTP的第一个标准,HTTP 0.9,创建于1991年,只有一个指令,"GET" 指令,幸运的是,对当时来说也够用。

因为我们想要的是"courses"页面,我们向服务器发送指令:"GET /courses",该指令以"ASCII编码"发送到服务器。服务器会返回该地址对应的网页,然后浏览器会渲染到屏幕上。

图片

如果用户点了另一个链接,计算机会重新发一个GET请求,你浏览网站时,这个步骤会不断重复。

在之后的版本,HTTP添加了状态码,状态码放在请求前面。

举例,状态码 200 代表 "网页找到了,给你",状态码400~499代表客户端出错,比如网页不存在,就是可怕的404错误

图片

"超文本"的存储和发送都是以普通文本形式。

举个例子,编码可能是 ASCII 或 UTF-16,我们在第4集和第20集讨论过,因为如果只有纯文本,无法表明什么是链接,什么不是链接,所以有必要开发一种标记方法,因此开发了 超文本标记语言(HTML)。

HTML 第一版的版本号是 0.8,创建于 1990 年,有18种HTML指令,仅此而已。

我们来做一个网页吧!

首先,给网页一个大标题,我们输 h1 代表一级标题,然后用<>括起来,这就是一个HTML标签,然后输入想要的标题,我们不想一整页都是标题,所以加 </h1> 作为结束标签。

现在来加点内容,读者可能不知道"克林贡"是什么,所以我们给这个词,加一个超链接到"克林贡语言研究院",我们用 <a> 标签来做,它有一个 href 属性,说明链接指向哪里,当点击链接时就会进入那个网页,最后用 </a> 关闭标签。

接下来用 <h2> 标签做二级标题,HTML也有做列表的标签,我们先写<ol> 代表 有序列表(ordered list),然后想加几个列表项目就加几个,用 <li> 包起来就行,读者可能不知道Bat'leth是什么,那么也加上超链接,最后,为了保持良好格式,用</ol>代表列表结束。

图片

这就完成了 - 一个很简单的网页!

如果把这些文字存入记事本或文本编辑器,然后文件取名"test.html",就可以拖入浏览器打开。

图片

当然,如今的网页更复杂一些,最新版的 HTML,HTML5,有100多种标签,图片标签,表格标签,表单标签,按钮标签,等等。

还有其他相关技术就不说了,比如 层叠样式表 (CSS)和 JavaScript,这俩可以加进网页,做一些更厉害的事。

让我们回到浏览器,网页浏览器可以和网页服务器沟通,浏览器不仅获取网页和媒体,获取后还负责显示。

第一个浏览器和服务器,是 Tim Berners-Lee 在 1990 年写的,一共花了2个月,那时候他在瑞士的"欧洲核子研究所"工作,为了做出来,他同时建立了几个最基本的网络标准,URL, HTML 和 HTTP。

图片

两个月能做这些很不错啊!

不过公平点说,他研究超文本系统已经有十几年了,和同事在 CERN 内部使用一阵子后,在 1991 年发布了出去,万维网就此诞生。

重要的是,万维网有开放标准,大家都可以开发新服务器和新浏览器,因此"伊利诺伊大学香槟分校"的一个小组,在 1993 年做了 Mosaic 浏览器,第一个可以在文字旁边显示图片的浏览器。

图片

之前浏览器要单开一个新窗口显示图片,还引进了书签等新功能,界面友好,使它很受欢迎,尽管看上去硬邦邦的,但和如今的浏览器长的差不多。

1990年代末有许多浏览器面世,Netscape Navigator, Internet Explorer, Opera, OmniWeb, Mozilla,也有很多服务器面世,比如 Apache 和 微软互联网信息服务(IIS)。

每天都有新网站冒出来,如今的网络巨头,比如亚马逊和 eBay,创始于 1990 年代中期。

那是个黄金时代!

随着万维网日益繁荣,人们越来越需要搜索,如果你知道网站地址,比如 ebay.com,直接输入浏览器就行,如果不知道地址呢?

比如想找可爱猫咪的图片,现在就要!去哪里找呢?

起初人们会维护一个目录,链接到其他网站,其中最有名的叫"Jerry和David的万维网指南",1994年改名为Yahoo。

图片

随着网络越来越大,人工编辑的目录变得不便利,所以开发了搜索引擎。

让我们进入思想泡泡~~

长的最像现代搜索引擎的最早搜素引擎,叫JumpStation,由Jonathon Fletcher于1993年在斯特林大学创建。

图片

它有 3 个部分,第一个是爬虫,一个跟着链接到处跑的软件,每当看到新链接,就加进自己的列表里。

第二个部分是不断扩张的索引,记录访问过的网页上,出现过哪些词。

最后一个部分,是查询索引的搜索算法。

举个例子,如果我在 JumpStation 输入"猫",每个有"猫"这个词的网页都会出现。

早期搜索引擎的排名方式 非常简单,取决于搜索词在页面上的出现次数,刚开始还行,直到有人开始钻空子,比如在网页上写几百个"猫",把人们吸引过来。

谷歌成名的一个很大原因是,创造了一个聪明的算法来规避这个问题,与其信任网页上的内容,搜索引擎会看其他网站,有没有链接到这个网站。

图片

如果只是写满"猫"的垃圾网站,没有网站会指向它,如果有关于猫的有用内容,有网站会指向它,所以这些"反向链接"的数量,特别是有信誉的网站,代表了网站质量

Google 一开始时是 1996 年斯坦福大学,一个叫 BackRub 的研究项目,两年后分离出来,演变成如今的谷歌。

图片

谢谢思想泡泡!

最后,我想讲一个词,你最近可能经常听到,网络中立性,现在你对数据包,路由和万维网,有了个大体概念,足够你理解这个争论的核心点,至少从技术角度。

简单说"网络中立性"是应该平等对待所有数据包,不论这个数据包是我的邮件,或者是你在看视频,速度和优先级应该是一样的。

但很多公司会乐意让它们的数据优先到达,拿 Comcast 举例,它们不但是大型互联网服务提供商,而且拥有多家电视频道,比如 NBC 和 The Weather Channel,可以在线看。

图片

我不是特意找Comcast麻烦,但要是没有网络中立性,Comcast 可以让自己的内容优先到达,节流其他线上视频,节流(Throttled) 意思是故意给更少带宽和更低优先级。

再次重申,这只是举例,不是说 Comcast 很坏。

支持网络中立性的人说,没有中立性后,服务商可以推出提速的"高级套餐",给剥削性商业模式埋下种子。

互联网服务供应商成为信息的"守门人",它们有着强烈的动机去碾压对手,另外,Netflix和Google这样的大公司可以花钱买特权,而小公司,比如刚成立的创业公司,会处于劣势,阻止了创新。

另一方面,从技术原因看,也许你会希望不同数据传输速度不同,你希望Skype的优先级更高,邮件晚几秒没关系。

而反对"网络中立性"的人认为,市场竞争会阻碍不良行为,如果供应商把客户喜欢的网站降速,客户会离开供应商。

这场争辩还会持续很久,就像我们在 Crash Course 其他系列中说过,你应该自己主动了解更多信息,因为"网络中立性"的影响十分复杂而且广泛。

我们下节课再见。


以上内容就是 30. 万维网 的内容,感兴趣的同学记得点赞、关注、转发、收藏哦!

我会不定期发布课程的讲解!

更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/380272.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【DC渗透系列】DC-4靶场

主机发现 arp-scan -l┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:6b:ed:27, IPv4: 192.168.100.251 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.100.1 00:50:56:c0:00:08 …

Gateway API 实践之(八)FSM Gateway SSL 代理终端与 TLS 上游

FSM Gateway 流量管理策略系列&#xff1a; 故障注入黑白名单访问控制限速重试会话保持健康检查负载均衡算法TLS 上游双向 TLS 网关使用 HTTP 对外与客户端通信&#xff0c;而与上游服务使用 HTTPS 的功能&#xff0c;是一种常见的网络架构模式。在这种模式下&#xff0c;网关…

跟着cherno手搓游戏引擎【23】项目维护、2D引擎之前的一些准备

项目维护&#xff1a; 修改文件结构&#xff1a; 头文件自己改改就好了 创建2DRendererLayer&#xff1a; Sandbox2D.h: #pragma once #include "YOTO.h" class Sandbox2D :public YOTO::Layer {public:Sandbox2D();virtual ~Sandbox2D() default;virtual void O…

阿里云服务器租用价格表_2024一年_1个月_1小时收费价格表

2024年阿里云服务器租用价格表更新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服…

LabVIEW工业监控系统

LabVIEW工业监控系统 介绍了一个基于LabVIEW软件开发的工业监控系统。系统通过虚拟测控技术和先进的数据处理能力&#xff0c;实现对工业过程的高效监控&#xff0c;提升系统的自动化和智能化水平&#xff0c;从而满足现代工业对高效率、高稳定性和低成本的需求。 随着工业自…

时间序列预测 —— DeepAR 模型

时间序列预测 —— DeepAR 模型 DeepAR 模型是一种专门用于处理时间序列概率预测的深度学习模型&#xff0c;它可以自动学习数据中的复杂模式&#xff0c;提高预测的准确性。本文将介绍 DeepAR 模型的理论基础、优缺点&#xff0c;并通过 Python 实现单步预测和多步预测的完整…

51单片机编程应用(C语言):串口通信

目录 通信的基本概念和种类 1.1串行通信与并行通信 ​编辑 1.2同步通信与异步通信 1.3单工&#xff0c;半双工&#xff0c;全双工 1.4通信速率 二、波特率和比特率的关系 串口通信简介&#xff1a; 1.接口标准 RS-232 2、D型9针接口定义 3.通信协议&#xff1a; …

金和OA C6 RssModulesHttp.aspx SQL注入漏洞复现

0x01 产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 0x02 漏洞概述 金和OA C6 RssModulesHttp.aspx接口处存在SQL注入漏洞,攻击者除了可以利用 SQL 注入…

018 Linux

文章目录 操作系统定义分类Linux系统构成 Linux文件系统Linux常用命令基础操作命令文件操作压缩解压权限管理显示展示命令其他命令 vi编译器操作使用 添加用户基本概念用户管理命令 ubuntu软件安装ssh服务终端启动Python服务 操作系统 定义 操作系统是管理计算机硬件与软件资…

【Linux系统学习】 4.Linux实用操作 上

Linux实用操作 1.各类小技巧&#xff08;快捷键&#xff09; 1.1 ctrl c 强制停止 Linux某些程序的运行&#xff0c;如果想要强制停止它&#xff0c;可以使用快捷键ctrl c 命令输入错误&#xff0c;也可以通过快捷键ctrl c&#xff0c;退出当前输入&#xff0c;重新输入 1…

前端JavaScript篇之如何获得对象非原型链上的属性?

目录 如何获得对象非原型链上的属性&#xff1f; 如何获得对象非原型链上的属性&#xff1f; 要获取对象上非原型链上的属性&#xff0c;可以使用 hasOwnProperty() 方法。这个方法是 JavaScript 内置的对象方法&#xff0c;用于检查一个对象是否包含指定名称的属性&#xff0…

数字孪生与智慧园区的融合:打造未来产业生态的新篇章

随着科技的飞速发展&#xff0c;数字孪生和智慧园区已经成为当今社会发展的重要趋势。数字孪生技术为物理世界的对象提供了数字化的复制体&#xff0c;而智慧园区则通过各种信息技术手段实现园区的智能化管理。二者的融合&#xff0c;将为未来产业生态的发展开辟新的篇章。 一…

大华智慧园区综合管理平台 deleteFtp RCE漏洞复现

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

LLM大语言模型(六):RAG模式下基于PostgreSQL pgvector插件实现vector向量相似性检索

目录 HightLightMac上安装PostgreSQLDBever图形界面管理端创建DB 使用向量检索vector相似度计算近似近邻索引HNSW近似近邻索引示例 HightLight 使用PostgreSQL来存储和检索vector&#xff0c;在数据规模非庞大的情况下&#xff0c;简单高效。 可以和在线业务共用一套DB&#…

【PyQt】08 - 编辑Tab顺序

文章目录 前言一、Tab顺序二、编辑Tab顺序总结 前言 介绍了什么是Tab顺序&#xff0c;以及如何修改Tab顺序。 一、Tab顺序 当你的界面设计好之后&#xff0c;在输入栏按住Tab按键&#xff0c;他会按照你摆放的顺序一次转跳 二、编辑Tab顺序 方法一 然后鼠标左击就可以改变…

【力扣】快乐数,哈希集合 + 快慢指针 + 数学

快乐数原题地址 方法一&#xff1a;哈希集合 定义函数 getNext(n) &#xff0c;返回 n 的所有位的平方和。一直执行 ngetNext(n) &#xff0c;最终只有 2 种可能&#xff1a; n 停留在 1 。无限循环且不为 1 。 证明&#xff1a;情况 1 是存在的&#xff0c;如力扣的示例一…

AcWing 1224 交换瓶子(简单图论)

[题目概述] 有 N 个瓶子&#xff0c;编号 1∼N&#xff0c;放在架子上。 比如有 5 个瓶子&#xff1a; 2 1 3 5 4 要求每次拿起 2 个瓶子&#xff0c;交换它们的位置。 经过若干次后&#xff0c;使得瓶子的序号为&#xff1a; 1 2 3 4 5 对于这么简单的情况&#xff0c;显然&a…

Linux命令行工具使用HTTP代理的方法详解

亲爱的Linux用户们&#xff0c;有没有想过在命令行世界里&#xff0c;你的每一个指令都能悄无声息地穿越千山万水&#xff0c;而不被外界窥探&#xff1f;哈哈&#xff0c;没错&#xff0c;就是通过HTTP代理&#xff01;今天&#xff0c;我们就来一起探索如何在Linux命令行工具…

林浩然与杨凌芸的Java奇遇记:Lambda表达式大冒险

林浩然与杨凌芸的Java奇遇记&#xff1a;Lambda表达式大冒险 Lin Haoran and Yang Lingyun’s Java Adventure: The Grand Expedition of Lambda Expressions 在Java编程世界的一隅&#xff0c;住着一对编程界的“才子佳人”&#xff0c;男主角名叫林浩然&#xff0c;女主角唤作…

【Algorithms 4】算法(第4版)学习笔记 06 - 2.3 快速排序

文章目录 前言参考目录学习笔记1&#xff1a;基本算法1.1&#xff1a;快速排序 demo 演示1.2&#xff1a;快速排序切分代码实现1.3&#xff1a;实现细节1.4&#xff1a;案例分析1.4.1&#xff1a;最佳案例1.4.2&#xff1a;最坏案例1.4.3&#xff1a;平均案例分析1.5&#xff1…