文章目录
- 1. 应用层概念
- 1.1 应用层协议的定义
- 2. 应用层体系结构
- 2.1 客户/服务器模式
- 2.2 P2P模式(点对点方式)
- 3. 万维网
- 3.1 概述
- 3.2 统一资源定位符
- 3.3 万维文档
- HTML
- CSS
- JavaScript
1. 应用层概念
- 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。包括:
- 早期基于文本的应用(电子邮件、远程登录、文件传输、新闻组),20世纪90年代将因特网带入千家万户的万维网WWW,当今流行的即时通信、P2P文件共享及各种音视频应用。
- 因特网和万维网的关系:
- 因特网:一种把各个网络联系起来的网络,主要由许多计算机和电缆组成,基于TCP/IP。
- 万维网:一个由许多互相链接的超文本组成的系统,通过互联网访问。
- 简单来说,万维网是互联网的一个实例。也就是说,万维网是建立在因特网之上的一种网络服务,它通过超文本链接和浏览器使我们能够方便地访问互联网上的信息。而因特网则是一个全球性的网络基础设施,它连接了世界各地的计算机和网络。
1.1 应用层协议的定义
应用层协议 (application layer protocol) 定义了在不同端系统上应用程序是如何相互传输报文的。⼀般来说,应用层协议会规定如下内容:
- 交换的报文类型交换的是请求报文还是响应报文。
- 报文字段的解释:对报文中各个字段的详细描述。
- 报文字段的语义:报文各个字段的含义是什么。
- 报文交换时间、方式:程序何时、以什么方式发送报文以及响应。
应用层只关心数据的产生和使用,是一个逻辑层,并不关心数据的传输。
应用层共有两种层次结构。
2. 应用层体系结构
应用层体系结构 (Application Architecture) 定义了应用层端系统之间数据交换的方式,开发⼀种新的网络应用,首先要考虑的问题就是网络应用程序在各种端系统上的组织方式和它们之间的关系⼀般来说,主流的体系结构有两种:
- 客户-服务器体系结构 (client-server architecture)
- 对等体系结构 (P2P architecture)
2.1 客户/服务器模式
在C/S模式中,分为请求方和服务方。有一个一直打开的主机向称为服务器(Sever)给客户端提供服务。客户端会向服务端发送请求,服务器对请求做出相应。
- 体系特点
○ 客户和服务器是指通信中所涉及的两个应用进程。
○ 客户/服务器方式所描述的是进程之间服务和被服务的关系。
○ 客户是服务请求方,服务器是服务提供方。
○ 服务器总是处于运行状态,并等待客户的服务请求。
我们最常⻅的服务端就是Web服务器,Web服务器提供于来自浏览器的请求。我们日常访问百度、
谷歌,其实就是在访问它们的Web服务器。
这里有两点需要注意:
- 在客户 - 服务器模式下,通常客户彼此之间是并不互相通信的。
- 服务器通常具有固定的、周知的 IP 地址可以提供访问。
所以说,浏览器是一个客户端,发送、接收信息,然后解析数据再渲染在网页上,是一个非常强大的工具。
2.2 P2P模式(点对点方式)
在此方式中,没有固定的服务请求者和提供者,应用程序的使用者是对等的,称为“对等方”,大家彼此分享所需资源,都是服务提供者。
P2P ⼀个最⼤的特点就是扩展性 (self-scalability),因为 P2P ⽹络的⼀个重要的⽬标就是让所有
的客户端都能提供资源、获取资源,共享带宽,存储空间等。因此,当有更多节点加⼊且对系统请求增多,整个系统的容量也增⼤。这是具有⼀组固定服务器的客户 - 服务器结构不具备的,这也就是 P2P的 优势。P2P⽅式具有成本上的优势,因为它通常不需要庞⼤的服务器设置和服务器带宽。为了降低成本,服务提供商对于将P2P⽅式⽤于应⽤的兴趣越来越⼤。
3. 万维网
3.1 概述
万维网(World Wide Web,WWW)并非某种网络,而是以因特网为基础的分布式应用,通过Web浏览器与Web服务器交互获取文本内容。万维网利用网页之间的超链接将不同网站的网页链接成⼀张逻辑上的信息⽹。
3.2 统一资源定位符
URI (Uniform Resource Identifier) 中⽂名称是统⼀资源标识符,使⽤它就能够唯⼀地标记互联⽹上资源。
URL (Uniform Resource Locator) 中⽂名称是统⼀资源定位符,也就是我们俗称的⽹址,它实际上是URI 的⼀个⼦集。
URI不仅包括URL,还包括URN(统⼀资源名称),它们之间的关系如下:
URI 已经不局限于标识互联⽹资源,它可以作为所有资源的识别码。URL的⼀般形式由以下四个部
分组成:
3.3 万维文档
HTML
超文本标记语言,用来搭建网页的架子。
CSS
层叠样式表 (Cascading Style Sheets,CSS),用来渲染网页。
JavaScript
脚本语言,控制网页行为,做一些动态效果。