目录
文章目录
Web
Web(World Wide Web,全球广域网),也称:万维网,它是一种基于 HTML(超文本标记语言)和 HTTP 协议的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在 Internet 之上的一种网络服务,为浏览者(浏览器)在 Internet 上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将 Internet 上的信息节点组织成一个互为关联的网状结构。一个典型的 Web 应该包括:Web Server、Web Service、Web Application、Web Browser、HTML、HTTP 协议等元素。
换言之,目前在 Intenet 上通过非浏览器访问的网络资源并不称为 Web,这也是 Wired 的那篇《Web 已死,互联网永生》的意思。Internet 上不只有 Web,还有 FTP、P2P、Email 或者移动 App 等其他多种不同形式的互联网应用,Web 只是其中使用广泛的一种。但这种 “广泛” 是相对而言的,新生的互联网服务正逐步取代其重要性,单纯从流量上看 Web 已经不是最大的互联网应用了。
HTTP Server
HTTP Server(HTTP 服务器),在以往 HTTP Server 几乎等同于 Web Server,用于处理 HTTP 协议的 Request 和 Response,以及 Socket 的 binding、Listening。甚至还会提供 Virtual Host(虚拟主机)等功能,最经典的 HTTP Server 就是 Apache HTTP。
但正如前文所说,HTTP Server 正逐渐面向 Internet,为种类繁多互联网应用提供支撑,而不仅仅是 Web。
API Service
同样的,API Service(Application Programming Interface Service,应用程序编程接口服务)以往就等同于 Web Service,包括现在很多 RESTful API 的框架依旧沿用了 “Web Server、Web Service” 的术语,但在前后端分离、面向云计算的今天,API Service 更多的是作为后端 Application 的接口抽象。
对 API Service 发起的请求,一般来说返回的都是 XML,JSON 这些原始结构,一般不直接展示给用户。通常包含以下部分:
- Resources:HTTP 资源定义。
- Routers:HTTP 请求路由器。
- Handlers:HTTP 资源请求处理器。
- Controllers:HTTP 资源表现层状态转移控制器。
Application
Application(应用程序)作为 HTTP Server 和 API Service 的统称:前者提供 HTTP 协议处理,后者提供动态的业务服务,两者结合为一个完整的应用程序。
但需要注意的是,有些协议也会将 Web Server 和 Web Application 作为两个完全分离(解耦)的概念,例如:Python 的 WSGI 协议。
而有些实现甚至还会将 Application 的概念去掉,由开发者自行定义,例如:Golang 的 net/http。
所以也不能一概而论。