应用层
1. 网络应用程序的体系结构:
1.1 C/S
C:client,S:server
服务器:
永远在线
具有固定的、众所周知的IP地址
使用数据中心提供不间断服务
客户机:
只与服务器通信
可以间歇地连接服务器
可以具有动态的IP地址
彼此之间并不通信
1.2 P2P
无需永远在线的服务器
任意的端系统直接通信
对等方彼此请求服务,并提供服务
对等方间歇地连接,并允许改变IP地址
2. 域名结构
任何一个连接互联网上面的路由器或是主机,都有一个唯一的层次结构的名字,即域名。域名只是一个逻辑概念,他不代表主机或是路由器的物理地址。
顶级域名有三种:
国家顶级域名:cn表示中国,us表示美国,uk表示英国
通用顶级域名:com表示公司企业,net表示网络服务机构,org表示非营利性组织,int表示国际组织,
基础结构顶级域名:arpa,用于反向域名解析,因此也叫反向域名。
二级域名有两种:
类别域名:ac,edu,gov等等
行政区域名 :bj、fj
3. 域名解析过程
本地服务器采用迭代查询
本地服务器采用递归查询
假定域名为m.xyz.com的主机想知道另一条主机(域名为y.abc.com)的IP地址。有以下几个查询步骤:
主机m.xyz.com先向本地域名服务器dns.xyz.com进行递归查询。
本地域名服务器采用迭代查询。它先向一个根域名服务器查询。
根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
本地域名服务器向顶级域名服务器dns.com进行查询。
顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.abc.com的IP地址。
本地域名服务器向权限域名服务器dns.abc.com进行查询。
权限域名服务器dns.abc.com告诉本地域名服务器,下一次应查询的主机的IP地址。
本地域名服务器最后把查询结果告诉主机m.xyz.com。
我们注意到,这8个步骤总共要使用8个UDP用户数据报的报文。本地域名服务器经过三次迭代查询后,从权限域名服务器dns.abc.com得到了主机y.abc.com的IP地址,最后把结果返回给发起查询的主机m.xyz.com。
4. 万维网
万维网是一个大规模的、联机式的信息储藏所。
4.1 URL
统一资源定位符URL:
用来表示从互联网上得到的资源位置和访问这些资源的方法。
URL的组成:
<协议>://<主机>:<端口>/<路径>
例如:
协议 : // 主机 :端口/路径
4.2 HTTP
超文本传送协议HTTP
HTTP是面向事务的应用层协议。HTTP本身是无连接的,是无状态的。
HTTP报文结构
请求报文
从客户向服务器发送请求报文
响应报文
从服务器到客户的回答
由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码串,因此各个字段的长度都是不确定的。
HTTP请求报文和响应报文都是由三个部分组成的。
开始行,用于区分请求报文还是响应报文,在请求报文中的开始行叫做请求行,而在响应报文中开始行叫做状态行。CR和LF分别代表回车和换行
首部行,用来说明浏览器、服务器或报文主体的一些信息,每一行在结束的地方都要由回车和换行。
实体主体,在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。
4.3 静态页面
静态页面,即静态网页,是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。
静态页面需要占一定的服务器空间,且不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外)。常见的静态页面举例:.html扩展名的、.htm扩展名的。
4.4 动态页面
文档的内容是在浏览器访问万维网服务器是才由应用程序动态创建的。
与静态网页相对应的,能与后台数据库进行交互,数据传递。也就是说,网页 URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形动态网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”
4.5 活动页面
这种技术是把所有的工作都转移给浏览器端。每当流浪其请求一个活动文档时,服务器就返回一段活动文档程序副本,使该程序副本在浏览器端运行。这时,活动文档程序的内容就可以连续地改变。并可连续地改变屏幕地显示。只要用户运行活动文档程序,活动文档的内容就可以连续地改变。由于活动文档技术不需要服务器地连续更行传送,对网络带宽的要求也不会太高。
4.6 搜索引擎
在万维网中用来进行搜索的工具。
垂直搜索引擎
元搜索引擎
5. 电子邮件系统主要协议,内容传送编码
电子邮箱主要有两个重要标准:简单邮件传送协议SMTP、互联网文本报文格式
用户代理UA就是用户与电子邮件系统的接口,在大多数情况下他就是运行在用户电脑中的一个程序,因此用户代理又称为电子邮件客户端软件。用户代理向用户提供一个很友好的接口(目前主要是窗口界面)来发送和接收邮件。现有的用户代理有Foxmail、Outlook Express等等
用户代理至少应当具有以下4个功能:
撰写
显示
处理
通信
5.1 SMTP
SMTP规定了两个相互通信的SMTP进程之间应如何交换信息。由于SMTP使用客户服务器方式,因此负责发送邮件的SMTP进程就是SMTP客户。
下面是发送方和接收方的邮件服务器之间的SMTP通信的三个阶段。
建立连接
SMTP不使用中间的邮件服务器。不管发送方和接收方这两个邮件服务器相隔多远,不管在邮件传送过程中要经过多少个路由器,TCP连接总是在发送方和接收方这两个邮件服务器之间直接建立。当接收方邮件服务器出故障而不能工作时,发送方邮件服务器只能等待一段时间后再尝试和该邮件服务器建立TCP连接,而不能先找一个中间的邮件服务器TCP连接。
邮件传送
邮件的传送从MAIL命令开始。MAIL命令后面有发件人的地址。
连接释放
邮件发送完毕后,SMTP客户应发送QUIT命令。SMTP服务器返回的信息是221(服务关闭),表示SMTP同意释放TCP连接。邮件传送的全部过程即结束。
6. 各种网络应用相关协议及其端口号
7. socket 编程接口
通过套接字API提供两类运输服务:
UDP:不可靠数据报
TCP:可靠,面向字节流
例子:客户机-服务器app
客户机从标准输入如入一行字符,经套接字发送给服务器。
服务器从套接字读该行
服务器将字符全部转换成大写,向客户机发送
客户机从套接字读出并打印已被修改的行
客户机必须联系服务器
服务器进程必须预先运行
服务器必须已经生成套接字,以欢迎客户机的联系
客户机联系服务器,通过:
创建客户机本地TCP套接字
定义服务器进程的IP地址,端口号
当客户机产生套接字时:客户机TCP创建到服务器TCP的链接。
当客户机联系时,服务器TCP为服务器进程生成新的套接字,以与客户机通信
允许服务器与多个客户端交谈
源端口号用于区分不同客户端