下面会整理一些名词的定义解释,用语比较书面化,不需要完全掌握,熟悉计算机理论和相关名词的专业者可以出门右转。

在配置过程中遇到的不理解的具体名词概念可以自行搜索,再套入理论框架中进行宏观理解。

参考资料

搜索引擎是个帮助快速理解与解决问题的好工具。

理论概念的参考资料选择出版物更严谨准确。


网络设备/平台/框架

  • 网络通信设备网卡、网线、集线器 (HUB)、交换机、路由器等网络交换、互连、传输设备。
    • 路由器 (router): 网络层使用的中间设备。网络(局域网、广域网)互连;数据处理;网络管理等作用。
    • 网关设备 (gateway):网络层以上使用的中间设备。较复杂,使用少。有时把路由器也称为网关。
  • 服务器/伺服器(server):一种管理资源并为用户提供服务的高性能计算机,根据服务器提供的服务类型不同,分为文件服务器(能使用户在其它计算机存取文件),数据库服务器,应用程序服务器,Web 服务器等。通过网络给客户端用户使用。
  • 主机 (host):在电脑网络领域中,服务器被称为主机(网络主机),其他接入的电脑为客户端。在电脑硬件领域中,机箱被称为主机 (Mainframe);电子游戏机中以读卡器、读碟机为主机,位于主机箱之外的通常称为外设(如显示器、键盘、鼠标、外接硬盘、外接光驱等)。
  • 计算机系统/网络工作站 (Workstation):连入网络的计算机,终端设备/客户端,有 PC 机、智能手机、平板电脑等。
  • 终端/客户机/终端设备 (Terminal):人机交互设备(能输入输出指令的设备),如互联网终端设备、自助终端设备等;按所用操作系统,可分为 Windows 端、Mac 端、Linux 端等。
  • 终端用户/终端客户 (end user):产品的最终/直接使用 (体验) 者。
  • 用户端/客户端 (Client):向服务端发送请求并获得相应服务的用户计算机。如网页浏览器 (Browser)、移动客户端等。
    • C 端(Consumer/Customer):消费者/个人终端用户使用的客户端。如脸书、微信、淘宝、网易云音乐等。
    • B 端(Business):企业/商家使用的系统或平台。
  • 服务端/伺服端/服务器端:提供服务的计算机。
  • 云/云端:提供在线存取数据服务的程序,用户可在任一终端获得云服务。 如 IaaS、PaaS、SaaS 等。
  • 云服务器
  • 网络操作系统:Windows、iOS、Unix、Linux、NetWare 等种类。一般一台设备配一个出厂设好的系统,也可以 DIY 安装多个镜像系统。
  • (命令行)Shell:命令解释程序,用户通过键盘输入指令,计算机接收到指令后,予以执行。如 Linux 下的 BashZsh,Windows 下的 cmdPowerShell 都是命令行终端工具。参见 Windows 的 PowerShell 和 Linux 的 terminal 有啥区别?
云-管/边缘-端的示意图 网络连接结构
网络拓扑结构:设备互联的方式(物理层)

什么是拓扑结构_拓扑结构图_xiangke975的博客-CSDN博客_拓扑结构:星形集中式/放射状;总线型百足虫;环形;树形;网状分布式;复合/混合/杂合型
局域网常用总线型、环型、星型或树型结构;广域网多采用分布式或树型结构。
不同网络拓扑的网络类型


网页访问

  • 互联网(internet):通用名词,泛指能彼此通信的设备组成的网络。包括因特网、万维网、广域网、城域网、局域网、内部网等各种网络 (computer network)。👉wiki - 计算机网络类型
    • 因特网 (Internet):专有名词,特指全球最大的互联网,因其应用广泛,也用“互联网”指“因特网”。线路、协议以及通过 TCP/IP 协议实现数据电子传输的硬件和软件的集合体。提供的主要服务有万维网 (WWW)、文件传输 (FTP)、电子邮件 E-mail、远程登录 (Telnet) 等。使用操作系统和各种软件 (APP) 去使用网络上的各种服务和资源。
      • 万维网Web(World Wide Web,WWW):因特网中的 web 服务(万维网不等于互联网/因特网)。是一个由许多互相链接的超文本组成的系统,通过互联网访问。是一个分布式超媒体系统 (超文本系统的扩充)。
        • 统一资源定位符 URL(Uniform Resource Locator):万维网里的可访问对象 (资源) 的标识。是对因特网上的资源的位置和访问方法的一种简洁表示。
          格式: <协议>://<主机>(主机的域名):<端口>/<路径>
        • 万维网的信息检索系统(搜索引擎):万维网网页关键词索引数据库。

网页语法

  • 超文本:一个超文本由多个信息源链接组成。万维网的基础。
    超链接:超文本内由一文件连接至另一文件的链接。
    超媒体:包括图形、声音效果、电影、文本和超链接的一种非线性信息媒体。
  • 超文本标记语言 HTML(Hypertext Markup Language):结构标签,万维网的核心语言,用来描述万维网文档(页面)。html 把各种标签嵌入到万维网页面中,构成 HTML 文档。浏览器按 HTML 文档中的标签以及显示器的尺寸和分辨率大小重新排版并显示出页面。
    • Markdown 标签语法:对最常用的 HTML 标签语法的简化。可以用普通文本编辑器编写的一种文本格式标记语法,语法简洁,用易懂易记的标签同时解决输入内容 + 排版格式 + 适配网页样式(完全兼容 html)的任务,让作者更专注于创作文字而更少分心于配置样式。
      正如 markdown 发明者所说:“The idea was to make writing simple web pages, and especially weblog entries, as easy as writing an email, by allowing you to use much the same syntax and converting it automatically into HTML.”
    • HTML 标签语法:超文本标记语言(Hyper Text Markup Language),html 文档中使用的语法,格式规整严谨且通用。形如 <head> </head>(👉HTML标签引入之头部标签),用于排版。我们使用 HTML 标签来标记文章文字在网页中的结构样式,或实现 markdown 语法不支持的拓展样式或功能
  • 静态Web 文档:文档创作完后存放在 web 服务器中,用户浏览时文档内容不会改变。服务器内容与终端用户接收到的版本是一样的,原始的源码文件已经提前编译好了,源码在每次请求后都不会变化。
  • 动态Web 文档:有浏览器的请求时,web 服务器根据浏览器发来的数据临时动态创建 HTML 文档。与动态网站互动时,大量的内容会经常改变。与静态的区别主要在于文档内容的生成方式不同。
  • 活动 Web 文档:web 服务器返回一段程序副本在浏览器端运行。Java 技术是活动文档技术的一部分。

域名服务

主机通过域名请求某网页时,查找域名对应 IP 记录的步骤是:

主机缓存 (Cache)——本地 hosts 文件——本地 DNS 服务器的区域文件与缓存,若无则再从最近的根服务器查找到对应的顶级域名服务器、二级域名服务器……找到 IP 则将查询结果返回本地 DNS 服务器,本地 DNS 再将解析结果返回客户端。

  • IP 协议(网络通信协议Internet Protocol):计算机在因特网上互联的数据包协议。
    • 超文本传输协议/明文传输协议 HTTP(Hypertext Transfer Protocol):万维网在服务器端和客户端(运行在主机中的浏览器)之间传输资源(所有的 www 文件)的协议。(👉深入理解HTTP协议及原理分析
    • 文件传送协议 FTP(File Transfer Protocol):用户可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。FTP 客户程序用来获取文件的传送服务。
    • 简单邮件传送协议 SMTP,邮件读取协议 POP3 和 IMAP4
    • 远程终端协议 Telnet
    • 动态主机配置协议 (DHCP)
    • 简单网络管理协议 (SNMP)
  • IP(IP 地址):IP 协议提供的统一地址格式,用来识别互连的主机和路由器。 现今 IP 地址由于数量限制,会存在很多电脑设备共用一个 IP 地址的情况。形式:数字形式的网络号 + 主机号。 作用:编码/门牌号(机器识别)。(👉IP/IPv6查询,服务器地址查询 - 站长工具
  • 域名(Domain Name,DN):形式:https://www.fgggh.cn/ 字符型,俗称/许可证/房产证(人类惯用)。作用:将一个 IP 地址关联到一组有意义的字符 (URL) 上。
    • 域名的树状层次等级结构
      • http:明文传输协议,传输内容易被嗅探 (保密性)、篡改、伪造 (真实性)、中断,域名劫持和域名欺骗 (完整性),会被标为“不安全”。
      • https:安全超文本传输协议 (HTTP over SSL/TLS)。添加了一层 SSL(Secure Sockets Layer,安全套接层) 或 TLS(Transport Layer Security,传输层安全协议)
        (在阿里云等服务提供商购买一年的 https 服务约¥2000。借助 Github Page 的便利可以免费实现 https 级别的网站。)
      • 主机名 (host):电脑端 www,bbs 移动端 m,wap
      • 前缀次级域名:域名中有几个 . ,就称之为几级域名。一般购买一个域名就是购买一个二级域名(SLD) 的管理权,即可以随意设置三级域名四级域名……(门面)网站的入口/第一印象/记忆名称。
      • 后缀顶级域名(Top-Level Domain,TLD):该域名所属服务器。
        常见的 .com .cn .net .org .gov .edu
        小众的 .xyz .me .io……
      • 根域名:所有域名尾部都有一样的根域名 .root,平时是省略的
  • 域名系统 (Domain Name System,DNS):为方便记忆网址产生的管理域名和 IP 地址之间的有效关系的系统。
    • 域名服务器/DNS 服务器/域名解析服务器 (Domain Name Sever,DNS):将域名解析成 IP 地址以供网络层使用的服务由 DNS 服务器完成。作用:让域名地址和 IP 地址对应。
    • 与域名的分级结构对应,DNS 系统也是一个树状层级式结构,不同级别的域名由不同的域名服务器来解析:
      1. 根域名服务器,全世界 IPv4 根域名服务器只有 13 台(名字分别为 A 至 M),1 个为主根服务器在美国,其余 12 个均为辅根服务器。负责管理世界各国的域名信息。
      2. 顶级域名服务器/TLD 域名服务器,即相关国家域名管理机构的数据库,如中国互联网络信息中心 (CNNIC)。
      3. 权威域名服务器和 ISP 的缓存服务器。提供域名注册、单个域名的解析配置等服务,如万网、DNSpod 等权威 DNS 托管商。
      4. 本地域名服务器/递归 DNS(Local DNS)。自己主机设置的 DNS,默认是宽带运营商的配置。通过询问正确的权威 DNS 服务器来确定域名的 IP 地址,然后缓存该 IP 地址。
    • 公共 DNS:由大的厂商和机构提供的公开解析服务,可设为本地 DNS。用于提高网络冲浪体验。
      如谷歌 DNS8.8.8.8,国内 114DNS 的 114.114.114.114,参见 公共DNS哪个好(速度快、稳定)?

域名解析

什么是域名解析? - 知乎:将域名指向具体的网站服务器。让访客通过这个域名可以访问服务器上的网站,或达到访问加速。

过程(递归):手动把域名地址和 IP 地址的对应关系写到权威 DNS 服务器上。

网络安全与加密

DNS 污染:嗅探网页信息/贴广告弹窗

DNS 劫持:把网页指向另外的地址

对称密码体制 (Symmetric-Key Encryption):加密密钥与解密密钥相同。

公钥密码体制 (Public-Key Encryption):加密密钥与解密密钥不同。

SSH:本地生成的一对秘钥,私钥(~/.ssh/id_rsa)公钥(~/.ssh/id_rsa.pub)

  • GitHub 要求每次推送代码都要输入账号密码验证推送用户是否是合法用户,为了省去每次输入密码的步骤,采用非对称加密的 ssh 公钥(GitHub 上)与私钥(本地电脑)的配对来验证。

代码托管

版本控制系统(VCS)

网站代码需要一个储存仓库(服务器),用来储存代码的历史记录,以便对网站代码进行勘误或优化(版本控制)。

有两种类型的仓库可以选择,一种是多仓镜像(分布式版本控制系统),适合于版本迭代快、多人多端开发的情况;一种是单仓拉取(集中式版本控制系统),适合于代码私密性高的情况。一般情况下,我们都选择分布式的 Git 仓库。

深入理解 Git 与 SVN 的区别,请移步 SVN和Git对比梳理

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能),采用版本控制系统(VCS)是个明智的选择。 有了它你就可以将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
——Git Book

分布式版本控制系统

分布式版本控制系统(Distributed Version Control System,DVCS),像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

  1. Git + GitHub,Gogs,Gitee(码云),CodingBitbucket, GitLabGoogle Code, Springloops/Buddy
    本地仓库(git init)+ 服务器 +远端下载(git clone)】
    • Git 是 Linux 之父创造的分布式版本控制系统,一开始便用作 Linux 内核代码的管理。具有分布式/去中心化/跨平台的架构、便捷高效的分支管理的优势。通俗来说,Git 提供一个有时光轴功能的代码仓库(本地有版本库),可以在仓库的任意时间点创建分支(git branch)来开发不同功能,也可以在代码丢失、误操作时恢复到任一时间点(git reset)来拯救项目。
    • Git Bash 是 git 的命令行程序,可以作为 cmdWindows PowerShell 的替代。脚本、命令的执行均在 Git Bash 上运行。
  2. Mercurial(hg) + BitBucket

集中式版本控制系统

集中式代码版本管理方式,适用于企业管控保护性代码。需要联网工作(版本库在中央服务器)。

集中化的版本控制系统(Centralized Version Control Systems,CVCS),诸如 CVS、smallversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
这么做最显而易见的缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。
本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。


前端后端

  • 前台:用户使用时看到的页面(Web 页面或 App 界面的结构、外观和交互),展示网站页面信息。
  • 后台:网站开发人员使用时看到的页面,(身份验证后)管理控制前台。
    • CMS:动态网站的后台。内容的创作人员、编辑人员、发布人员使用内容管理系统(Content Management System) 来提交、修改、审批、发布到网站上的内容。一般用 markdown 语言撰写文章,后台管理的技术门槛低。
  • 前端 (Frontend):展现给用户浏览的网站前台部分的代码
    • Web 前端标记语言/客户端语言=HTML+CSS+JavaScript 以及衍生出来的各种技术/框架/解决方案(如 HTML5、CSS3)
    • UI:用户界面 (User Interface) 美工,视觉优化。
    • 运营:内容的发布和引流推广。
  • 后端 (Backend):用户不可见的网站逻辑部分,支撑前台内容实现和数据调用,进行服务器性能(访问稳定性、加载速度等)和数据库存取(评论系统、账户系统、推送系统等)的管理。
    • 后端语言/服务器端脚本语言有 PHP、ASP、JSP、Python、Ruby 或服务器端 JavaScript 等。
    • 运维:运行环境的维护。对网络、服务器、数据库、硬件配置的安全保障、运行维稳、故障修理、架构升级等

以 Web 端为例,在浏览器输入一个网址后,浏览器向服务器发送了一个 HTTP 请求;服务器通过一个 HTTP 响应,把显示这个网页所需要的资源传回给了浏览器。而需要在浏览器中执行的技术,HTML / CSS / JavaScript 等就叫做前端;需要在服务器端执行的、通常我们看不到技术就叫做后端。
珞闻 (知行。) 2015-04-19 23:26:40

前端语言

HTML + CSS + JavaScript

(Web 开发基础入门的三大语言)

网站代码都是基于这三种语言体系的,想要理解网站代码的含义,就要对这三种语言有所了解。

  • HTML:对于完整页面,HTML 就是一组标签和文本的组合;对于源文件为 md 格式的 markdown 语言文件,经过渲染转成 HTML 网页文件。
  • CSS:又称叠层样式表,用来配置网页样式,辅助 html 进行基础的静态的外观美化;也用来进行响应式设计,适配不同设备的显示效果。css 的预编译语言常见格式有 css(less、sass)、styl(stylus)。
  • CSS3:用来制作动画特效的代码语言。
  • JS:一种浏览器脚本语言,配置网站内容与展示逻辑的文件;也用来给 HTML 网页增加动态功能。常见格式有 jspugejs
  • jQuery:相当于把 JS 封装了一套的一个简化 JS 的插件。
  • Ajax
  • Vue.js
  • React

如果不想用和别人一样的模板,想要真正对网站的每个细节逻辑进行掌握,欢迎进入前端学习大坑:2020年新版前端学习路线图(内含大纲+视频+工具+面试);以及知识体系:web前端代码大全_Web前端开发知识体系大全 (看不懂 囤着就对了)

后端语言

前端数据的源头。

如果会点后台代码,就知道怎么跟后台交互数据是最好的, 这样节约时间,也可以让前端代码更规范.不然可能因为你的写法和后端给来的数据不能结合上,那么前端代码又得重新写。
——web前端需要什么语言?-web大全

后端语言目前了解不多,可参考 前后端及常用语言介绍