1、网络应用模型

1.1 客户/服务器模型

在客户/服务器模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。

工作流程

  • 服务器处于接收请求的状态
  • 客户机发出服务请求,并等待接收结果
  • 服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。

主要特征

  • 客户是服务请求方,服务器是服务提供方
  • 网络中各计算机的地位不平等,服务器可以通过对用户权限的限制来达到管理客户机的目的,使它们不能随意存储/删除数据,或进行其它受限的网络活动。
  • 客户机相互之间不直接通信
  • 可扩展性不佳。受服务器硬件和网络带宽的限制,服务器支持的客户机数有限。

1.2 P2P模型

各计算机没有固定的客户和服务器划分,任意一对计算机——称为对等方,直接相互通信,每个结点既作为客户访问其他结点的资源,也作为服务器提供资源给其他结点访问。

在客户机使用自己的java 在客户机/服务器模型中_HTTP

2、域名系统(DNS)

域名系统是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转换为便于机器处理的IP地址。DNS系统采用客户服务器模型,协议运行在UDP之上,使用53号端口

2.1 层次域名空间

因特网采用层次树状结构的命名方法,任何一个连接到因特网的主机或路由器都有一个唯一的层次结构名称,即域名。

域名规则

  1. 标号中的英文不区分大小写
  2. 标号中除使用连字符(-)外不能使用其他的标点符号。
  3. 每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符
  4. 级别最低的域名写在最左边,级别最高的顶级域名写在最右边

2.2 域名服务器

  • 根域名服务器:是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址
  • 顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,就给出相应的回答
  • 授权域名服务器:每台主机都必须在授权域名服务器处登记。授权域名服务器总能将其管辖的主机名转换为该主机的IP地址
  • 本地域名服务器:当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器

2.3 域名解析过程

域名解析是指把域名映射成为IP地址或把IP地址映射成为域名的过程。

  1. 客户机向其本地域名服务器发出DNS请求
  2. 本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求
  3. 根域名服务器收到请求后,判断该域名属于域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器
  4. 本地域名服务器向顶级域名服务器dns.com发出解析请求报文
  5. 顶级域名服务器dns.com收到请求后,判断该域名属于abc.com域,因此将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器
  6. 本地域名服务器向授权域名服务器dns.abc.com发起解析请求报文
  7. 授权域名服务器dns.abc.com收到请求后,将查询结果返回给本地域名fwq
  8. 本地域名服务器将查询结果保存到本地缓存,同时返回给客户机

在客户机使用自己的java 在客户机/服务器模型中_域名服务器_02

3、文件传输协议(FTP)

FTP功能

  • 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
  • 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
  • 以匿名FTP的方式提供公用文件共享的能力
  • 在客户机使用自己的java 在客户机/服务器模型中_HTTP_03

  • 工作步骤
  • 打开熟知端口21(控制端口),使客户进程能够连接上
  • 等待客户进程发连接请求
  • 启动从属进程来处理客户进程发来的请求,主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止
  • 回到等待状态,继续接收其他客户进程的请求

FTP服务器必须在整个会话期间保留用户的状态信息

FTP工作原理

在客户机使用自己的java 在客户机/服务器模型中_网络协议_04

4、电子邮件

4.1 电子邮件系统的组成结构

用户代理:用户与电子邮件系统的接口

邮件服务器:组成电子邮件系统的核心,发送和接收邮件,向用户回报发送情况

邮件发送协议和读取协议:SMTP——邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件

POP3——邮件读取协议用于用户代理从邮件服务器读取邮件

在客户机使用自己的java 在客户机/服务器模型中_服务器_05

4.2 SMTP

在客户机使用自己的java 在客户机/服务器模型中_服务器_06

在客户机使用自己的java 在客户机/服务器模型中_在客户机使用自己的java_07

在客户机使用自己的java 在客户机/服务器模型中_在客户机使用自己的java_08

4.3 POP3

在客户机使用自己的java 在客户机/服务器模型中_服务器_09

5、万维网(www)

5.1 万维网的概念与组成结构

在客户机使用自己的java 在客户机/服务器模型中_在客户机使用自己的java_10

5.2 超文本传输协议HTTP

HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

在客户机使用自己的java 在客户机/服务器模型中_网络协议_11


HTTP的特点

  1. HTTP协议是无状态的,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同
  2. HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求
  3. 使用cookie加数据库的方式来跟踪用户的活动
  4. HTTP采用TCP做为运输层协议,保证了数据的可靠传输
  5. HTTP可以使用非持久连接,也可以使用持久连接

5.3 HTTP的报文结构

在客户机使用自己的java 在客户机/服务器模型中_HTTP_12


在客户机使用自己的java 在客户机/服务器模型中_在客户机使用自己的java_13