计算机网络-应用层

1.HTTP

Web的应用层协议是超文本传输协议,它是Web的核心。
Http由客户程序和服务器程序实现。

Web页面由对象组成,一个对象是一个文件。且它们可通过一个URL地址寻址。
多数Web页面含一个HTML基本文件及几个引用对象。
HTML基本文件通过对象的URL地址引用页面的其他对象。

每个URL地址由两部分组成:存放对象的服务器主机名,对象的路径名。

非持续连接和持续连接

(1). 非持续连接
客户端连接发出请求并收取回复后自动关闭.
(2). 持续连接
客户端连接上可持续进行请求并处理回复,直到用户显式关闭.

HTTP请求报文

(1). 一个GET请求实例

GET /somedir/page.html HTTP/1.1 # 请求行
Host: www.someschool.edu # 指明对象所在主机。Web代理高速缓存要求
Connection: close # 要求服务器发送完请求的对象后,关闭连接
User-agent: Mozilla/5.0 # 用户代理
Accept-language: fr # 语言版本

上述请求报文的第一行叫作请求行,后续行叫作首部行.
请求行构成:方法,URLHTTP版本
在这里插入图片描述
上图为一个HTTP请求报文的通用格式.
请求方法中GETPOST类似,但GET方法无需提供Entity bodyPOST方法允许提供Entity body

HTTP响应报文

(1). 响应报文实例

HTTP/1.1 200 OK
Connection: close
Date: Tue, 18 Aug 2015 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 18 Aug 2015 15:11:03 GMT
Content-Length: 6821
Content-Type: text/html

(data data data data data ...)

在这里插入图片描述
上述是一个通用的回复包结构.

用户与服务器的交互:cookie

cookie,允许站点对用户进行跟踪.
cookie技术有4个组件:
(1). 在HTTP响应报文中的一个cookie首部行.
(2). 在HTTP请求报文中的一个cookie首部行.
(3). 在用户端系统中保留一个cookie文件,由用户的浏览器管理.
(4). 位于web站点的一个后端数据库.
在这里插入图片描述

Web缓存

Web缓存器也叫代理服务器。
能代表初始Web服务器来满足HTTP请求的网络实体。
Web缓存器有自己的磁盘存储空间,并在存储空间中保存最近请求过的对象的副本.
Web缓存器既是服务器又是客户,接收浏览器请求并发回响应时,是一个服务器,向初始服务器发出请求并接收响应时,是一个客户.

Web缓存器有两个原因:
(1). Web缓存器可大大减少对客户请求的响应时间。
(2). Web缓存能够大大减少一个机构的接入链路到因特网的通信量。

条件GET方法

(1). 请求实例

GET /fruit/kiwi.gif HTTP/1.1
Host: www.exotiquecuisine.com
If-modified-since: Wed, 9 Sep 2015 09:23:24

服务器收到条件GET请求时,会分析URI资源最新修改时间,若URI在请求中指定的时间后未被更改,响应包可以不包含Entity body部分.

2.电子邮件

在这里插入图片描述
电子邮件系统3个主要组成部分:
用户代理,邮件服务器,简单邮件传输协议

一个典型的邮件发送过程:
(1). 发送方的用户代理,将邮件传输到发送方的邮件服务器.
(2). 发送方的邮件服务器将邮件传输到接收方的邮件服务器.
(3). 接收方邮件服务器将邮件存储到接收者邮箱.
一个典型的邮件接收过程:
(1). 接收方的用户代理,向自己的邮件服务器申请获取邮件.
(2). 邮件服务端向其发回邮件作为响应.

邮件服务器之间采用SMTP协议.

SMTP

SMTP限制邮件报文的体部分需要用7比特的ASCII表示。
在这里插入图片描述
一个在SMTP客户和SMTP服务器之间交换报文文本的实例。
客户的主机名为crepes.fr,服务器主机名为hamburger.edu
C:开头的ASCII码文本行是客户交给其TCP套接字的那些行。
S:开头的ASCII码则是服务器发送给其TCP套接字的那些行。
一旦创建了TCP连接,就开始了下列过程:

S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr ... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with ”.” on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection

与HTTP的对比

(1). 主动与被动
HTTP主要是一个拉协议。客户端使用HTTP从该服务器主动请求获取这些信息。
SMTP基本上是一个推协议,即发送邮件服务器主动把文件推向接收邮件服务器。

(2). 报文格式
SMTP要求每个报文采用7比特ASCII码格式。HTTP无此限制。

邮件报文格式

一个典型的报文首部:

From: alice@crepes.fr
To: bob@hamburger.edu
Subject: Searching for the meaning of life.

在报文首部后,紧接着一个空白行,然后是以ASCII格式表示的报文体。

邮件访问协议

在这里插入图片描述

POP3

当用户代理打开了一个到邮件服务器端口110TCP连接后,POP3就开始工作了。
POP3按照三个阶段进行工作:
(1). 身份认证
用户代理发送用户名和口令以鉴别用户。
(2). 事务处理
用户代理取回报文,对报文做删除标记,取消报文删除标记,获取邮件的统计信息.
(3). 更新
出现在客户发出quit命令后,邮件服务器删除被标记删除的报文。

IMAP

POP3协议没有给用户提供任何创建远程文件夹并为报文指派文件夹的方法。
IMAP提供了创建文件夹及将邮件从一个文件夹移动到另一个文件夹的命令。还提供了远程文件夹查询邮件。
IMAP服务器维护了IMAP会话的用户状态信息。
IMAP允许用户代理获取报文某些部分。

基于Web的电子邮件

当发件人要发送一封电子邮件报文时,该电子邮件报文从发件人的用户代理到其邮件服务器,使用HTTP
邮件服务器间仍然为SMTP
当收件人要接收邮件报文时,从接收者用户代理到其邮件服务器也采用HTTP

3.DNS:因特网的目录服务

DNS提供的服务

主机名到IP地址转换,为域名系统的主要任务
DNS是:
(1). 一个由分层的DNS服务器实现的分布式数据库.
(2). 一个使得主机能够查询分布式数据库的应用层协议.

DNS运行在UDP上,使用53号端口。
一个实例:
(1). 用户主机浏览器请求URL www.someschool.edu/index.html
为了使用户的主机能将一个HTTP请求报文发送到Web服务器www.someschool.edu,该用户主机必须获得www.someschool.eduIP地址。
(2). 同一台主机上运行着DNS应用的客户端
a. 浏览器从上述URL中抽取出主机名www.someschool.edu,将这台主机名传给DNS应用的客户端.
b. DNS客户向DNS服务器发送一个包含主机名的请求.
c. DNS客户最终收到一份回答报文,其中含有对应于主机名的IP地址.
d. 浏览器接收到来自DNS的该IP地址,它向位于该IP地址80端口的HTTP服务器进程发起一个TCP连接。

除了主机名到IP地址的转换,DNS还提供:
(1). 主机别名。一个主机有一个规范名和多个别名。
(2). 邮件服务器名。对提供的主机别名进行解析,获得主机的规范名和IP地址。
(3). 负载分配。用于冗余服务器之间进行负载分配。
繁忙的节点被冗余分布在多台服务器上,每台服务器均运行在不同的端系统上,有不同的IP地址。
由于冗余的Web服务器,一个IP地址集合与一个规范主机名相联系,DNS数据库中存储着这些Ip地址集合。当客户对映射到某地址集合的名字发出一个DNS请求时,该服务器用IP地址的整个集合进行响应。但在回答中循环这些地址次序。因为客户通常总是向IP地址排在最前面的服务器发送HTTP请求报文。

DNS工作机理概述

讨论集中在主机名到IP地址转换。
DNS客户端,向DNS服务端发送DNS查询报文.
所有的DNS请求和回答报文使用UdP数据报经过53端口发送。

分布式,层次数据库

大致有3种类型的DNS服务器。
(1). 根DNS服务器,顶级域DNS服务器,权威DNS服务器。
假定一个DNS客户要决定主机名www.amazon.comIP地址。
a. DNS客户端先与根服务器联系,取得若干负责com的顶级域服务器的Ip地址。
b. 该客户然后与这些顶级域服务器之一联系,以便取得若干负责amazon.com的权威服务器的Ip地址
c. 该客户再与这些权威服务器之一联系,以便取得www.amazon.comIp地址。
在这里插入图片描述

(1). 根DNS服务器
用于提供顶级域服务器的Ip地址.
(2). 顶级域服务器
每个顶级域和所有国家的顶级域,都有顶级域服务器。
顶级域服务器提供权威服务器的Ip地址。
(3). 权威服务器
由用户向权威服务器注册主机名,ip地址的映射。进而使其可用于查询主机名对应的ip地址.

(4). 本地DNS服务器。
每个ISP都有一台本地DNS服务器。
用户主机与某个ISP连接时,该ISP提供一台主机的Ip地址,该主机具有一台或多台其本地DNS服务器的IP地址。

主机发出DNS请求时,请求被发往本地DNS服务器,在本地DNS服务器无法命中下,其会将请求转发到DNS服务器层次结构中。
在这里插入图片描述上图中,从请求主机到本地DNS服务器的查询是递归的,本地DNS服务器发出的查询是迭代的.
在这里插入图片描述
上图中,所有查询都是递归的.

DNS缓存

在一个请求链中,当某DNS服务器接收一个DNS回答,它能将映射缓存在本地存储器中。
后续,对缓存的主机名查找到该服务器时,该服务器直接返回结果。缓存信息超过一定期限自动失效

DNS记录和报文

资源记录提供了主机名到IP地址的映射。
资源记录是包含下列字段的4元组:(Name, Value, Type, TTL)
TTL是该记录的生存时间,决定了资源记录应当从缓存中删除的时间。
资源记录实例:
(1). 如Type=A,则Name为主机名,Value是对应的Ip地址。
(2). 如Type=NS,则Name是域名,如foo.comValue是个知道如何获得该域中主机Ip地址的权威Dns服务器的主机名。
(3). 如Type=CNAMEName是别名,Value是规范主机名。
(4). 如Type=MX, Name是邮件服务器别名,则Value是规范主机名。

一个实例:
对一台edu顶级域服务器,需要包含一条形如(umass.edu, dns.umass.edu, NS)的记录.还需包含一条形如(dns.umass.edu, 128.119.40.111, A)的记录.
这样,此顶级域服务器收到形如www.umass.edu这样的域名解析请求时,可返回"128.119.40.111"作为应答.请求者,再继续向128.119.40.111发送请求,便可最终获得结果.

DNS报文

Dns只有查询和回答报文
在这里插入图片描述(1). 前12个字节是首部区域,其中有几个字段。
第一个字段,标识符,是一个16比特的数,用于标识该查询。
这标识符会被复制到对查询的回答报文中,以便让客户用它来匹配发送的请求和收到的回答。
标志字段含若干标志,查询/回答标志指示报文类型。
当某Dns服务器是所请求名字的权威Dns服务器时,权威位被设置。
如客户在Dns服务器没记录时希望,递归查询,递归标志位被设置。
Dns服务器支持递归查询,其回答报文中,递归可用位被设置。
(2). 问题区域包括正进行的查询信息。
包含名字字段,含正在被查询的主机名字
类型字段,该名字被询问的问题类型
(3). 在来自Dns服务器的回答中,回答区域包含了对最初请求的名字的资源记录。
每个资源记录有Type,Value,TTL字段,回答报文的回答区域可含多条资源记录。故一个主机名可有多个Ip地址。
(4). 权威区域包含了其他权威服务器的记录
(5). 附加区域包含了其他有帮助的记录。

在DNS数据库中插入记录

在注册登录机构注册域名,注册登记机构是一个商业实体,验证域名唯一性,将域名输入Dns数据库,对提供的服务收取少量费用。

当向某些注册登记机构注册域名,例A.com时,需向该机构提供你的基本和辅助权威Dns服务器的名字和Ip地址。
假设为dns1.A.comdns2.A.com212.212.212.1212.212.212.2
对这两个权威Dns服务器的每一个,该注册登记机构确保将一个类型Ns和一个类型A的记录输入顶级域 com服务器.

特别是对用于A.com的基本权威服务器,该注册登记机构将下列两条资源记录插入com顶级域的系统:
(1). (A.com, dns1.A.com, NS)
(2). (dns1.A.com, 212.212.212.1, A)
你还须确保用于Web服务器www.A.com的类型资源记录和用于邮件服务器mail.A.com的类型MX资源记录被输入你的权威Dns服务器中。

最近在Dns协议中添加了一个更新选项,允许通过Dns报文对数据库中的内容进行动态添加或者删除。
完成上述步骤后,人们便可访问你的Web站点,并向你发送电子邮件。
例如:
在澳大利亚的Alice要观看,www.A.comWeb页面。
她的主机首先向其本地Dns服务器发送请求,该本地服务器接着联系一个顶级域 com服务器,如com顶级域服务器地址未缓存,该本地Dns服务器需与根Dns服务器联系,来取得顶级域comip
该顶级域服务器包含前面列出的类型Ns和类型A资源记录。
注册登录机构会将这些资源记录插入顶级域 com服务器的所有实例。
该顶级域 com服务器向Alice的本地Dns服务器发送一个回答,该回答包含两条资源记录。
本地Dns服务器解析应答,进而向212.212.212.1发送一个Dns查询,请求对应于www.A.com的类型记录。
212.212.212.1的回复中会提供了相应的Ip地址,如212.212.71.4,本地Dns服务器解析应答并将用该地址给Alice的主机进行回复。

Alice的浏览器此时能够向主机212.212.71.4发起一个TCP连接,并在该连接上发送一个HTTP请求。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

raindayinrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值