ToB企服应用市场:ToB评测及商务社交产业平台

标题: 计算机网络应用层:HTTP和电子邮件 [打印本页]

作者: 汕尾海湾    时间: 2022-11-9 04:39
标题: 计算机网络应用层:HTTP和电子邮件
计算机网络应用层
应用层所讨论的对象可以简单理解为端系统上的网络应用程序。
因特网网络体系结构分为5层:应用层、传输层、网络层、链路层、物理层。应用程序体系结构由应用程序研发者设计,规定了如何在端系统上组织该应用程序。主流的体系结构有两种:客户-服务器体系结构和对等P2P体系结构。
客户-服务器体系结构:
在此体系结构里,有一个总是打开的主机称为服务器,它服务于其他称为客户的主机的请求。而一台单独的服务器可能没法承受来自太多客户的请求,所以采用配备了大量主机的数据中心(data center)提供虚拟服务器。
对等P2P体系结构:
对位于数据中心的专用服务器有几乎没有依赖,应用程序在间断连接的主机之间直接通信,这些主机对称为对等方。该体系结构的特性之一是自扩展性(self-scalability)。例如文件共享:BitTorrent。

进程通信:
在端系统中的每一个应用程序可以抽象为一个进程,不同端系统上的进程,通过跨越计算机网络交换报文message)。
套接字:
每一个进程通过套接字socket)与计算机网络交互,套接字是进程与计算机网络之间的接口,进程通过套接字软件接口向计算机网络发送报文。也就是同一台主机中应用层和传输层的接口。由于套接字是建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络之间的应用程序编程接口Application Programming Interface, API)。
进程寻址
1.主机地址(IP);2.进程标识(port)
可供应用程序使用的传输服务分类:可靠数据传输、吞吐量、定时和安全性。也即是应用层程序对下一层服务的希望,而因特网能提供的传输层服务协议有两类:TCP和UDP。
TCP提供面向连接和可靠数据传输服务:
除此以外TCP协议还提供拥塞控制机制。当发送方和接收方之间的网络出现拥塞时,TCP的拥塞控制机制会抑制发送进程(拥塞窗口)。
TCP和UDP都没有提供任何加密机制,所以当前一般采用升级版TCP,称为安全套接字层Secure Socket Layer,SSL)。升级后的TCP额外提供关键的进程到进程的安全性服务,包括加密、数据完整性和端点鉴别。SSL不是独立于TCP和UDP的第三个协议,而是TCP的改进版,是在应用层上实现的。如果一个应用程序想要使用SSL服务,需要在程序的客户端和服务器段包含SSL的代码。
UDP服务:
UDP服务时不提供不必要服务的轻量型传输层服务,UDP提供无连接和不可靠的数据传输服务。更加没有拥塞控制机制。
 
应用层协议:
应用层协议application-layer protocol)定义了在不同端系统上的应用程序进程如何相互传递报文:
Web的应用层协议是HTTPHyperText Transfer Protocol,超文本传输协议),定义了浏览器和Web服务器之间传输报文的格式和序列;电子邮件的注意应用层协议时SMTP(简单邮件传输协议)。
HTTP协议:
HTTP由两个程序实现,一个客户程序一个服务器程序。HTTP使用TCP作为它的传输层协议,HTTP客户首先发起一个与服务器的TCP连接,一旦连接建立,浏览器和服务器进程就可以通过套接字接口访问TCP了。在HTTP协议下,服务器向客户发送被请求文件,却不存储任何关于客户的状态信息,所以说HTTP时一个无状态协议stateless protocol)。
当每个请求/响应对是经一个单独的TCP连接发送时,该应用程序被称为使用非持续连接non-persistent connection);当所有的请求和响应经由相同的TCP连接发送时,称为使用持续连接persistent connection)。默认使用持续连接。
 
HTTP报文:
请求报文:
  1. GET /somedir/page.html HTTP/1.1
  2. Host: www.someschool.edu
  3. Connection: close
  4. User-agent: Mozilla/5.0
  5. Accept-language: fr
复制代码
第一行称为请求行,后面称为首部行,请求行有三个字段:方法字段、URL字段和HTTP版本字段;首部行有多个取值。
请求报文的通用格式:

在首部行后面是实体体entity body),使用GET请求,实体体为空,使用POST请求时才使用该实体体,例如提交表单。
响应报文:
  1. HTTP/1.1 200 OK
  2. Connection: close
  3. Date: Tue, 18 Aug 2015 15:44:04 GMT
  4. Server: Apache/2.2.3 (CentOS)
  5. Last-Modified: Tue, 18 Aug 2015 15:11:03 GMT
  6. Content-Length: 6821
  7. Content-Type: text/html
  8. (data data data data data ...)
复制代码
第一行称为状态行(status line),后面是首部行(header line),最后是实体体,实体体是报文的主要内容,即是请求对象本身。状态行有三个字段:协议版本字段、状态码和相应状态信息。首部行中的Last-Modified字段在使用缓存服务器(代理服务器)时会用到。
响应报文的通用格式:

 
 
 
状态码和相应的状态短语:
 
cookie
用户与服务器交互:cookie
HTTP服务器是无状态的,所以HTTP服务器使用cookie来识别来访用户。如图cookie技术有4个组件:
cookie的使用过程如图所示。因此cookie可以在无状态的HTTP之上建立一个用户会话层。

 
 
 
Web缓存:
也叫代理服务器,能够代表初始Web服务器来服务HTTP请求的网络实体。Web缓存有自己的磁盘存储空间,并在存储空间中存储最近请求过的对象的副本。具体说来,步骤如下:
条件GET方法
Web缓存的对象可能是旧的,HTTP协议的条件GETconditional GET)方法,允许缓存更新自己的对象副本,使用方法是:
该HTTP请求报文就是一个条件GET请求报文。
举例:
  1. GET /fruit/kiwi.gif HTTP/1.1
  2. Host: www.exotiquecuisine.com
  3. If-modified-since: Wed, 9 Sep 2015 09:23:24
复制代码
如果初始服务器中的对象在日期后修改过,才会发送该对象。
 
电子邮件:
电子邮件系统的主要组成部分:用户代理user agent)、邮件服务器mail server)、简单邮件传输协议Simple Mail Transfer Protocol,SMTP)。
邮件服务器形成了电子邮件系统结构的核心,每个接收方在一个邮件服务器上有一个邮箱mailbox),邮箱管理和维护者发送给接收方的报文。一个典型的邮件发送过程是:从发送方的用户代理开始,用户代理传输邮件到发送方的邮件服务器,发送方的邮件服务器再传输到接收方的邮件服务器,然后在这里被分发给接收方的邮箱中。如果发送方的邮件服务器不能将邮件交付给接收方的邮件服务器,发送方在一个报文队列message queue)中保持该报文并在以后再发送。
SMTP
SMTP过程如图:

SMTP一般不使用中间邮件服务器,而是直接连接接收方的邮件服务器。使用TCP提供的可靠数据传输将邮件无差错的投递到接收方邮件服务器。
举例一个SMTP客户和服务器之间交换报文的例子:
  1. S:  220 hamburger.edu
  2. C:  HELO crepes.fr
  3. S:  250 Hello crepes.fr, pleased to meet you
  4. C:  MAIL FROM: <alice@crepes.fr>
  5. S:  250 alice@crepes.fr ... Sender ok
  6. C:  RCPT TO: <bob@hamburger.edu>
  7. S:  250 bob@hamburger.edu ... Recipient ok
  8. C:  DATA
  9. S:  354 Enter mail, end with ”.” on a line by itself
  10. C:  Do you like ketchup?
  11. C:  How about pickles?
  12. C:  .
  13. S:  250 Message accepted for delivery
  14. C:  QUIT
  15. S:  221 hamburger.edu closing connection
复制代码
 
SMTP与HTTP对比:
文件传送时,两者都使用持续连接。
区别:
邮件报文格式:
上面交换报文的例子中的命令是SMTP握手协议的一部分,这里的则是邮件报文自身的一部分。
  1. From: alice@crepes.fr
  2. To: bob@hamburger.edu
  3. Subject: Searching for the meaning of life.
复制代码
报文首部之后,接着一个空白行,然后是以ACSII格式表示的报文文体。
邮件访问协议:
接收方的用户代理不能使用SMTP获取报文,因为取报文是一个拉操作,而SMTP是一个推协议,引入特殊的邮件访问协议:第三版的邮局协议Post Office Protocol-Version 3,POP3)、因特网邮件访问协议Internet Mail Access Protocol,IMAP)以及HTTP。
POP3
POP3是一个极为简单的邮件访问协议,随着TCP连接建立,POP3分阶段工作:特许(authorization)、事务处理和更新。
在事务处理阶段,使用POP3的用户代理可以被配置为“下载并删除”或“下载并保留”方式。区别是邮件服务器是否删除原始邮件报文。
IMAP
POP3没有给用户提供任何创建远程文件夹并为报文指派文件夹的方法。IMAP服务器把每个报文与一个文件夹联系起来:当报文第一次到达邮件服务器时,与接收方的INBOX文件夹相连,用户可以随意移动该报文到其他文件夹,与POP3不同,IMAP服务器维护了IMAP会话的用户状态信息。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4