一、应用层协议原理
1.套接字(Socket):主机地址+端口地址。(通常为32位IP地址和16位端口号组成,总长度为48位)
2.进程通过套接字来接收和发送报文。因特网运输层将所提供的服务整合成两种传输服务,TCP与UDP。
TCP:
特点:面向连接(C/S)、可靠传输、流量控制、拥塞控制
应用(括号对应协议):e-mail(stmp)、远程终端访问(telnet)、Web(http)、文件传输(ftp)等。
UDP:
特点:不可靠传输
应用:流媒体(专有协议,如RealNetworks)、IP电话(专有协议,如Vocaltec)等。
二、WEB应用和HTTP协议
1.WEB构成
a.WEB服务器:IIS、Apache、Tomcat等
b.浏览器:IE、Firefox、Chrome等
c.协议:信息传输协议--HTTP,信息表达协议--HTML
2.WEB内容的表达
a.WEB页面由一些对象组成,如HTML文件、JPEG图片、音频等
b.任何一个对象都可以用URL来定位
3.WEB内容的传输--HTTP协议
a.客户端/服务器模式:浏览器请求、接收、展示WEB对象;服务器发送对象对请求响应
b.http1.0:非持久性连接。页面有多少对象就要多少连接(步骤:TCP连接、对象请求/传送)
c.http1.1:持久连接。保持连接用于后续对象的传送,占用服务器资源少。
4.HTTP请求报文
a.一般格式如下
b.支持的方法:
HTTP1.0定义的方法有:GET(请求指定URL的对象)、POST(提交表单、也可以同时请求一个WEB页面)、HEAD(请求服务器返回一个响应报文,常用以进行故障跟踪)。
HTTP1.1新定义的方法有:PUT(上传的文件放在实体主体字段中,目标路径有URL字段标明)、DELETE(删除URL字段中指定的文件)。
5.HTTP响应报文
a.一般格式如下
b.常见的HTTP响应状态码和短语
· 200 OK (请求成功)
· 301 Moved Permanently (被请求的对象被移动过)
· 400 Bad Request (服务器不理解的请求)
· 404 Not F6ound (找不到请求的对象)
· 505 HTTP Version Not Supported (不支持请求报文使用的HTTP协议版本)
6.用户-服务器交互:Cookie
a.Web站点使用Cookie的目的:限制用户的访问,把内容和用户身份关联起来。
b.Cookie技术的组成部分:
·在HTTP响应报文中有一个Cookie首部行;
·在HTTP请求报文中也有一个Cookie首部行;
·在用户的端系统中保留了一个Cookie文件,由用户浏览器负责管理;
·在Web站点有一个后端数据库。
c.Cookie工作流程:如下图
d.优点:认证、推荐、用户会话状态、购物车等。
7.WEB缓存
a.目的:加速客户端访问页面速度,减少时延;减少局域网与外部网络数据交换量,节省宽带开支。
b.效果评估:命中率与延时
c.缓存报文:几个关键字:Last-Modified、If-Modified-Since、304 Not Modified
三、文件传送协议:FTP
1.FTP简况
使用TCP协议传输数据、C/S模式、端口:21/20
2.FTP主要功能
a.客户机与服务器之间交换一个或多个文件,文件可复制不可移动
b.能够传输多种类型、多种结构、多种格式的文件
c.提供对本地和远程系统的目录操作功能,如改变目录
d.具有对文件改名、显示内容、改变属性、删除之功能以及其他一些操作
e.具有匿名FTP功能
3.FTP与HTTP对比
a.相同点:均使用TCP协议。
b.不同点:
·FTP的控制信息是带外传送的,HTTP的控制信息则是带内传送的。FTP存在两个并行的连接,分别是:控制连接(21)和数据连接(20)。
·FTP连接是有状态的,HTTP无状态。有状态:在整个会话期间维护用户状态信息。把用户账户和控制连接联系起来、追踪用户在远程目录树上的位置、对活动着的用户会话的状态进行追踪,以限制FTP会话总数。
c.常用的FTP命令:
·USER username;
·PASS password
·LIST
·RETR filename
·STOR filename
d.常见的FTP应答:
·331 Username OK, password required
·125 data connection already open; transfer starting
·425 Can't open data connection
·452 Error writing file
四、E-mail
1.构成
a.用户代理:邮件报文编辑、查阅,如FoxMail等。
b.邮件服务器:邮箱、报文。
c.邮件传输协议(如SMTP):客户端(发送邮件到服务器)、服务器(接收和转发)。
d.邮局协议(如POP)。
2.SMTP协议
a.SMTP协议简述:
·使用TCP可靠传送邮件报文,端口25;
·直接传输:发送服务器到接收服务器;
·传输三个阶段:握手、报文传输、结束;
·命令/响应交互:命令(ASCII文本)、响应(状态码和短语);
·邮件报文必须使用7-bit ASCII表示。
b.传输过程:
·用户代理发送消息给目标邮箱test@mail.com
·发送邮件服务器将消息保存到消息队列
·SMTP客户端与test的邮件服务器建立TCP连接
·SMTP客户端通过TCP连接发送消息到test的邮件服务器
·消息存储,并等待被阅读。
c.交互样例:如下图
3.SMTP评述
a.使用持续连接
b.要求报文(首部&信体)全部使用7-bit ASCII码
c.某些代码组合不允许出现在报文中(e.g., CRLF.CRLF),需要进行编码(base-64或quoted printable)
d.SMTP服务器用CRLF.CRLF表示邮件报文的结束
4.SMTP vs HTTP
a.都使用ASCII命令/响应交互,状态码
b.HTTP:pull SMTP:push
c.HTTP每个对象分装在各自的响应报文中,SMTP多个对象在一个多分部的报文中传送
5.邮件报文格式
首部(header):
To:xxx@mail.com
From:yyy@mail.com
Subject:......
信体(body,报文):
ASCII characters only
6.非ASCII码数据的MIME扩展
使用MIME扩展对消息进行转码