互联技术发展简史
假如互联网彻底瘫痪了,你担负起了重建世界互联网的使命,你会怎么做?
技术发展关键事件
以下基于《IT传:信息技术250年》的时间线整理。
1836年 互联网的鼻祖-电报
信息时代的开始:上帝创造了何等的奇迹
- 电报诞生(库克和惠斯通申请专利,莫尔斯与维尔申请专利),奠定远程通信基础,采用类似二进制的点线编码(莫尔斯码)。
1858-1866年 电报电缆
- 跨大西洋海底电缆铺设,实现欧美快速通信,现代互联网仍依赖海底光缆。
1858年,美国实业家赛勒斯·菲尔德成功铺设了纽芬兰与爱尔兰之间横跨大西洋的海底电报线路。时任美国总统布坎南与英国女王维多利亚即通过这条线路进行了交流。但两个月后这条线路就失效了,直到1866年美国和英国之间才真正实现稳定的电报通信。在这件事情中,汤姆森居功甚慰。
1843自动电解式记录电报机,静态电视
传真什么,需要先排好字母,也可以传输别的,例如图像。
亚历山大·拜恩早在1843年就已经取得了“自动电解式记录电报机”的专利,这项专利使用的就是发送静止图片的技术。
发明自动电解式记录电报机的人是英国的亚历山大·拜恩,他在1843年11月27日取得了这项发明的专利。莫尔斯的电报机在1844年才成功运转,由此可见拜恩取得这项专利的时间有多么早。这款装置需要用到能够同时移动的金属针和通电后就会变色的纸。但遗憾的是,Pantelegraph的传真服务在1870年就停止了,似乎是受同年爆发的普法战争影响。
首先,通信双方都要准备由电报线连接的金属针,而且要保证双方的金属针能够上下左右同时移动;然后,发送信息的一方将金属制的字母放在木制的模板上,每个金属字母都连着导线;最后,接收信息的一方则将通电后就会变色的具有电解性的纸(类似于感热纸之类的东西)覆盖在连着导线的金属板上,准备工作这样就完成了。
发送信息的一方在放有金属字母的木制模板上移动金属针,当金属针接触到木制模板时没有电流通过,但接触到金属字母时就会有电流通过。而接收信息的一方的金属针会同时移动,当有电流通过时,覆盖在金属板上的纸张就会变色,而没有电流通过时纸张则没有变化。这个过程连续起来,接收信息的一方就能够收到对方发来的信息。
1876年 -电话,通过电力传递声音
- 电话发明(亚历山大·格雷厄姆·贝尔),为互联网底层交换系统奠定基础。
1895 意大利马可尼无线电报
另一个关于磁的方向——无线电报
泰坦尼克号沉没,是一场本来可以避免的人间悲剧!
1910年德福雷斯特第一次无线广播实验
德福雷斯特 18.5.md
1921年广播事业
萨尔诺夫的广播事业 18.6.md
1923年电视时代
萨尔诺夫的电视事业 18.7.md
1936年 -图灵机
- 艾伦·图灵提出“图灵机”概念,奠定计算机理论基础。
第一台计算机的诞生 18.8.md
1945年
- 冯·诺依曼提出“存储程序计算机”架构,影响现代计算机设计。
1957年
- 苏联发射首颗人造卫星,推动美国成立ARPA(高级研究计划局),促进互联网军事研究。
1969年
- ARPANET(互联网前身)建立,连接UCLA、斯坦福等四所大学。
- Unix操作系统在贝尔实验室诞生。
1971年
- 首个电子邮件程序发明,ARPANET扩展至15个节点。
1973年
- 以太网概念提出,奠定局域网基础。
- 文件传输协议(FTP)制定,实现计算机间文档交换。
1974年
- TCP/IP协议由罗伯特·卡恩和温顿·瑟夫提出,成为互联网通信标准。
1979年
- MVC(1979):MVC(模型-视图-控制器)是一种软件架构模式,将应用程序分为三个主要部分,以提高代码的可维护性和可重用性。
1983年
- **DNS(域名系统)**推出,实现域名与IP地址映射。
1989年
- HTTP 协议(1989-1991):HTTP(超文本传输协议)是用于在万维网上传输数据的基础协议。
1990年
- HTML 标记语言(1990):HTML(超文本标记语言)是创建网页的标准标记语言,用于定义网页的结构和内容。
- HTTP Server(1990):HTTP服务器是能够接收HTTP请求并返回HTTP响应的软件或硬件,是万维网的核心组件之一。
- 首个网页服务器和浏览器(WorldWideWeb)诞生。
1993年
- Mosaic浏览器发布,推动图形化网页浏览普及。
1994年
- 中国全功能接入国际互联网(64K专线)。
- **网景公司(Netscape)**成立,推动浏览器商业化。
1995年
- Apache 服务器(1995):Apache HTTP服务器是一个开源的Web服务器软件,用于托管和提供网站内容。
- JavaScript诞生,使网页具备动态交互能力。
- CSS 样式语言(1996):CSS(层叠样式表)用于控制网页的布局和外观,使网页更加美观和用户友好。
1996年
- cURL(1996):cURL是一个用于传输数据的命令行工具和库,支持多种协议,广泛用于测试和调试网络请求。
1998年
- XML(1998):XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,具有良好的可读性和可扩展性。
- CDN(1998):CDN(内容分发网络)是一种分布式网络服务,用于提高网站的加载速度和可用性。
1999年
- HTTP 认证机制(1999):HTTP认证机制用于验证客户端的身份,确保只有授权用户可以访问受保护的资源。
2000年
- RESTful API(2000):RESTful API是一种基于HTTP的设计风格,用于创建易于扩展和维护的Web服务。
2001年
- JSON(2001):JSON(JavaScript对象表示法)是一种轻量级的数据交换格式,易于阅读和编写,广泛用于Web应用程序中。
2002年
- Nginx 安装与配置(2002):Nginx是一个高性能的HTTP服务器和反向代理服务器,以其高并发处理能力而闻名。
2004年
- Markdown(2004):Markdown是一种轻量级标记语言,用于编写易读易写的纯文本格式的文档,常用于Web开发中的文档编写。
2006年
- jQuery(2006):jQuery是一个轻量级的JavaScript库,简化了HTML文档的遍历、事件处理和Ajax交互。
2008年
- DevOps(2008):DevOps是一种软件开发和运营的实践方法,强调开发和运维团队之间的协作和自动化流程。
2011年
- Bootstrap(2011):Bootstrap是一个开源的前端UI框架,提供了丰富的CSS和JavaScript组件,用于快速开发响应式网站。
2012年
- Webpack(2012):Webpack是一个模块打包器,用于将现代JavaScript应用程序的多个模块合并成一个或多个浏览器可识别的文件。
- OAuth 2.0(2012):OAuth 2.0是一个授权框架,允许用户授权第三方应用访问其资源,而无需共享密码。
2013年
- React(2013):React是一个用于构建用户界面的JavaScript库,特别适用于单页应用程序和动态内容的开发。
2014年
- Vue.js(2014):Vue.js是一个渐进式JavaScript框架,用于构建用户界面和单页应用程序。
- HTML5 新特性(2014):HTML5是HTML的第五个主要版本,引入了新的元素、属性和API,增强了网页的交互性和功能。
2015年
- gRPC(2015):gRPC是一个高性能、开源的RPC框架,支持多种编程语言,适用于微服务架构的应用程序。
2020年
- 5G商用加速,推动物联网与AI应用。
2023年
- Bun(2023):Bun是一个新兴的Web开发工具,旨在简化和加速Web应用程序的开发和部署。
2025年(预测)
- 6G技术标准制定启动,AI与量子通信可能成为核心。
旧写作目录
以下目录是应杜金房邀请第一次撰写《Web开发》拟定的目录。
- 基础概念:Web 开发的起点 从网络通信到网页设计,Web 开发的每一步都需建立在扎实的基础概念上,帮助开发者构建高效、互动且视觉吸引力强的网页应用。 1.1 HTTP 协议:现代网络通信的基石 HTTP 协议是网络通信的基石,了解其工作原理、方法和状态码能有效提升网络应用的构建效率。 1.1.1 HTTP 基础:请求与响应的工作原理 1.1.2 HTTP 方法:GET、POST、PUT、DELETE 等常用方法解析 1.1.3 HTTP 状态码:成功、重定向、客户端错误与服务器错误
1.1.4 解析 HTTP 头部字段:请求与响应的信息交换 1.2 HTML 标记语言:构建网页内容的基础 HTML 是网页的骨架,掌握 HTML5 的新特性和语义化标签,构建结构清晰、易维护的页面,提高用户体验和可访问性。 1.2.1 HTML5 简介与新特性:增强的网页开发能力
1.2.2 HTML5 语义化标签的使用:提高网页可读性与可访问性 1.2.3 HTML5 表单与输入控件:提升用户交互体验的工具 1.2.4 HTML5 绘图与多媒体:增强网页的视觉与听觉体验 1.3 CSS 样式语言:控制网页布局与风格 CSS 赋予网页生命,从简单的样式到复杂的动画与布局,设计出美观且响应迅速的网页,为用户提供流畅的视觉体验。 1.3.1 CSS 选择器与样式:开发精美页面的基础
1.3.2 CSS 盒模型与布局:理解网页布局的核心概念 1.3.3 CSS 动画与过渡:为网页增加动感与视觉效果- 服务器端:Web 服务器与性能测试工具 探索构建高效服务器的关键技术,结合流行的测试工具,全面提升 Web 应用的稳定性和响应速度。 2.1 HTTP Server:从零构建一个 HTTP 服务器 通过从零开始的教程,学习如何创建一个基础的 HTTP 服务器,掌握路由和请求处理的核心技能。 2.1.1 创建简单的 HTTP 服务器:快速启动一个 Web 服务 2.1.2 服务器端的路由和请求处理:管理用户请求的方式 2.2 常见 Web 服务器软件:安装与配置指南 快速上手 Nginx 和 Apache 等主流服务器,结合 Bun 等新兴工具,轻松完成服务器端的基础工作。 2.2.1 Nginx 安装与配置:高效轻量的 Web 服务器 2.2.2 Apache 服务器:经典 Web 服务器的配置
2.2.3 Bun:Web 开发新兴工具
2.3 测试与性能优化:提升 Web 应用的响应速度与效率 运用专业的测试工具和技术,最大化优化 Web 应用的性能,确保高效的内容传输与用户体验。 2.3.1 cURL 命令行工具:调试与测试 HTTP 请求
2.3.2 CDN:分布式内容传输与加速技术的关键角色- 服务器与客户端的协作:实现高效数据传输与安全机制 通过精心设计的通信机制,服务器与客户端可以实现高效、可靠的数据交互,同时保障数据的安全性。了解这些核心技术,可以助力开发者构建稳定的 Web 应用。 3.1 安全性:保护 Web 应用的必要机制 随着网络攻击手段日益复杂,确保 Web 应用的安全性至关重要。本节将深入探讨多种认证机制,帮助开发者构建更加安全的在线系统。 3.1.1 HTTP 认证机制概述:基础认证与摘要认证的区别与应用 3.1.2 OAuth 2.0 认证:实现第三方认证的标准协议 3.2 前端技术:提升用户交互体验的工具与方案 用户体验是 Web 应用成功的关键。前端技术的发展为优化交互和数据传输提供了新的可能。本节探讨多个重要工具与方案,提升你的 Web 应用性能。 3.2.1 HTTP 客户端请求库:简化 HTTP 请求与数据处理 3.2.2 Websocket 实时通信:实现高效的双向数据传输 3.2.3 CORS:跨域资源共享的原理与实现
- 数据格式:高效数据传输与交换格式的应用 数据格式在现代编程中扮演着核心角色,从结构化到轻量级标记,正确选择能显著提升数据传输与处理效率。 4.1 XML 与 JSON:结构化与半结构化数据的处理方式 在面对复杂的跨平台数据传输需求时,XML 和 JSON 提供了两种广泛应用的解决方案。了解其差异及适用场景,有助于开发者在多样化项目中做出最佳选择。 4.1.1 XML 基础概述与解析:广泛应用的数据传输格式 4.1.2 JSON 结构与数据交换:轻量级数据交换的标准 4.2 Markdown:轻量级标记语言的简洁与高效应用 Markdown 凭借其简单的标记方式在开发与内容创作中广泛应用。它为开发者提供了一种既直观又强大的工具,简化了日常文档的编写和维护。 4.2.1 Markdown 语法与使用:快速编写格式化文档 4.2.2 Markdown 在 Web 开发中的应用:简化文档与内容编辑
- 数据库与接口设计:构建可扩展与维护性的应用结构 掌握数据库与接口设计,打造灵活、可维护的应用架构。 5.1 CURD 操作:数据库的基础管理与应用 从 CRUD 到 CURD,掌握数据库操作的基石,为应用注入活力。 5.1.1 CURD:数据库基础操作 5.1.2 数据库与 Web 应用的交互:实现数据的动态展示与更新 5.2 接口设计与实现:API 的定义与结构化设计 设计高效 API,构建应用间的桥梁,实现无缝数据交互。 5.2.1 RESTful API 设计:定义清晰的 Web 服务接口
5.2.2 gRPC:高效的跨语言 RPC 框架与其协议实现- 前端架构与框架:构建现代 Web 应用的工具与模式 探索前端开发的核心架构与创新工具,融合经典与现代实践,为构建高效、响应式的 Web 应用奠定坚实基础。 6.1 前端架构模式:经典与现代的融合 从 MVC 等经典架构出发,剖析前端架构的发展与创新。 6.1.1 MVC:模型-视图-控制器的经典架构模式 6.2 传统前端开发工具:简化与优化前端开发流程 传统工具如 jQuery 与 Bootstrap,曾经为前端开发奠基,至今仍在简化开发流程中扮演重要角色。 6.2.1 jQuery:简化 DOM 操作与事件处理的经典库 6.2.2 Bootstrap:响应式前端开发的 UI 框架
6.3 响应式框架:新一代前端开发工具与范式 响应式框架引领前端开发变革,从 React 到 Vue.js,这些工具如何提升用户界面的动态交互性与开发效率。 6.3.1 响应式框架的诞生:为什么需要新的前端开发范式 6.3.2 React:用于构建动态用户界面的前端框架 6.3.3 Vue.js:构建用户界面的灵活工具 6.4 工程化与自动化构建:提升开发效率的现代工具链 构建工具如 Webpack 与 Parcel,结合工程化实践,简化复杂项目的管理与构建流程。 6.4.1 Webpack:模块打包与构建工具 6.4.2 DevOps:自动化部署与持续集成的最佳实践
2024年10月4日
在《大道至简》第九章之前,已经有Git、HTTP协议、Html/XML、JSON的内容的介绍。重写时,应该借鉴《耶鲁简明科学史》,注重Web发展的历史,减少知识的说教。前面已经有的内容,只需要提及以下即可。