基本应用层的TCP/IP协议介绍 ( HTTP/FTP/POP/SMTP )
来源: http://www.networkdictionary.com/chinese/protocols/tcpip.php
HTTP:超文本传输协议
更详细的HTTP协议头信息参考我blog之前的文章。
HTTP:超文本传输协议 | |
HTTP:Hypertext Transfer Protocol |
超文本传输协议(HTTP)是应用层协议,由于其简捷、快速的方式,适用于分布式和合作式超媒体信息系统。自 1990 年起, HTTP 就已经被应用于 WWW 全球信息服务系统。
HTTP 允许使用自由答复的方法表明请求目的,它建立在统一资源识别器(URI)提供的参考原则下,作为一个地址(URL)或名字(URN),用以标志采用哪种方法,它用类似于网络邮件和多用途网际邮件扩充协议(MIME)的格式传递消息。 HTTP 也可用作普通协议,实现用户代理与连接其它 Internet 服务(如 SMTP 、 NNTP 、 FTP 、 GOPHER 及 WAIS )的代理服务器或网关之间的通信,允许基本的超媒体访问各种应用提供的资源,同时简化了用户代理系统的实施。 HTTP 是一种请求 / 响应式的协议。一个客户机与服务器建立连接后,发送一个请求给服务器,请求的格式是:统一资源标识符(URI)、协议版本号,后面是类似 MIME 的信息,包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式是:一个状态行包括信息的协议版本号、一个成功或错误的代码,后面也是类似 MIME 的信息,包括服务器信息、实体信息和可能的内容。 HTTP 的第一版本 HTTP/0.9 是一种简单的用于网络间原始数据传输的协议。而由 RFC 1945 定义的 HTTP/1.0 ,在原 HTTP/0.9 的基础上,有了进一步的改进,允许消息以类 MIME 信息格式存在,包括请求 / 响应范式中的已传输数据和修饰符等方面的信息。但是, HTTP/1.0 没有充分考虑到分层代理服务器、高速缓冲存储器、持久连接需求或虚拟主机等方面的效能。相比之下, HTTP/1.1 要求更加严格以确保服务的可靠性。关于安全增强版的 HTTP (即S-HTTP),将在相关文件中再作介绍。 |
协议结构 |
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下: |
请求行 | 通用信息头 | 请求头 | 实体头 | 报文主体 |
请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。SP 是分隔符。除了在最后的 CRLF 序列中 CF 和 LF 是必需的之外,其他都可以不要。有关通用信息头,请求头和实体头方面的具体内容可以参照相关文件。 应报文格式如下: |
状态行 | 通用信息头 | 响应头 | 实体头 | 报文主体 |
状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。有关通用信息头,响应头和实体头方面的具体内容可以参照相关文件。 |
相关协议 | WWW、 FTP 、STMP、 NNTP 、Gopher、WAIS、 DNS 、 S-HTTP |
组织来源 | HTTP 定义在 IETF ( http://www.ietf.org ) 的 RFC 1945和2616中。 |
相关链接 |
http://www.javvin.com/protocol/rfc1945.pdf
:Hypertext Transfer Protocol – HTTP 1.0
http://www.javvin.com/protocol/rfc2616.pdf :Hypertext Transfer Protocol – HTTP 1.1 |
FTP:文件传输协议
FTP:文件传输协议 | |
(FTP:File Transfer Protocol) |
文件传输协议(FTP)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。 FTP 的主要功能如下:
FTP ,尽管可以直接被终端用户使用,但其应用主要还是通过程序实现。 FTP 控制帧即指 TELNET 交换信息,包含 TELNET 命令和选项。然而,大多数 FTP 控制帧是简单的 ASCII 文本,可以分为 FTP 命令或 FTP 消息。 FTP 消息是对 FTP 命令的响应,它由带有解释文本的应答代码构成。 |
协议结构 |
命令 | 描述 |
ABOR | 中断数据连接程序 |
ACCT <account> | 系统特权帐号 |
ALLO <bytes> | 为服务器上的文件存储器分配字节 |
APPE <filename> | 添加文件到服务器同名文件 |
CDUP <dir path> | 改变服务器上的父目录 |
CWD <dir path> | 改变服务器上的工作目录 |
DELE <filename> | 删除服务器上的指定文件 |
HELP <command> | 返回指定命令信息 |
LIST <name> | 如果是文件名列出文件信息,如果是目录则列出文件列表 |
MODE <mode> | 传输模式(S=流模式,B=块模式,C=压缩模式) |
MKD <directory> | 在服务器上建立指定目录 |
NLST <directory> | 列出指定目录内容 |
NOOP | 无动作,除了来自服务器上的承认 |
PASS <password> | 系统登录密码 |
PASV | 请求服务器等待数据连接 |
PORT <address> | IP 地址和两字节的端口 ID |
PWD | 显示当前工作目录 |
QUIT | 从 FTP 服务器上退出登录 |
REIN | 重新初始化登录状态连接 |
REST <offset> | 由特定偏移量重启文件传递 |
RETR <filename> | 从服务器上找回(复制)文件 |
RMD <directory> | 在服务器上删除指定目录 |
RNFR <old path> | 对旧路径重命名 |
RNTO <new path> | 对新路径重命名 |
SITE <params> | 由服务器提供的站点特殊参数 |
SMNT <pathname> | 挂载指定文件结构 |
STAT <directory> | 在当前程序或目录上返回信息 |
STOR <filename> | 储存(复制)文件到服务器上 |
STOU <filename> | 储存文件到服务器名称上 |
STRU <type> | 数据结构(F=文件,R=记录,P=页面) |
SYST | 返回服务器使用的操作系统 |
TYPE <data type> | 数据类型(A=ASCII,E=EBCDIC,I=binary) |
USER <username>> | 系统登录的用户名 |
标准 FTP 信息如下: |
响应代码 | 解释说明 |
110 | 新文件指示器上的重启标记 |
120 | 服务器准备就绪的时间(分钟数) |
125 | 打开数据连接,开始传输 |
150 | 打开连接 |
200 | 成功 |
202 | 命令没有执行 |
211 | 系统状态回复 |
212 | 目录状态回复 |
213 | 文件状态回复 |
214 | 帮助信息回复 |
215 | 系统类型回复 |
220 | 服务就绪 |
221 | 退出网络 |
225 | 打开数据连接 |
226 | 结束数据连接 |
227 | 进入被动模式(IP 地址、ID 端口) |
230 | 登录因特网 |
250 | 文件行为完成 |
257 | 路径名建立 |
331 | 要求密码 |
332 | 要求帐号 |
350 | 文件行为暂停 |
421 | 服务关闭 |
425 | 无法打开数据连接 |
426 | 结束连接 |
450 | 文件不可用 |
451 | 遇到本地错误 |
452 | 磁盘空间不足 |
500 | 无效命令 |
501 | 错误参数 |
502 | 命令没有执行 |
503 | 错误指令序列 |
504 | 无效命令参数 |
530 | 未登录网络 |
532 | 存储文件需要帐号 |
550 | 文件不可用 |
551 | 不知道的页类型 |
552 | 超过存储分配 |
553 | 文件名不允许 |
相关协议 | TELNET |
组织来源 | FTP 由 IETF( http://www.ietf.org )在 RFC 959 中,并由2228、2640 和 2773 重新更新。 |
相关链接 | http://www.javvin.com/protocol/rfc959.pdf :File Transfer Protocol(FTP) |
POP & POP3:邮局协议(邮局协议第3版)
POP & POP3:邮局协议(邮局协议第3版) | |
POP & POP3:Post Office Protocol |
POP 协议允许工作站动态访问服务器上的邮件,目前已发展到第三版,称为 POP3 。 POP3 允许工作站检索邮件服务器上的邮件。 POP3 传输的是数据消息,这些消息可以是指令,也可以是应答。 创建一个分布式电子邮件系統有多种不同的技术支持和途径: POP (邮局协议)、 DMSP (分层式电子邮件系统协议)和 IMAP (因特网信息访问协议)。其中, POP 协议创建最早因此也最为人们了解; DMSP 具有较好的支持“无连接”操作的性能,但其很大程度上仅限于单个应用程序(PCMAIL ); IMAP 提供了 POP 和 DMSP 的扩展集并提供对远程邮件访问的三种支持方式:离线、在线和无连接。 POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是 PC 机或 MAC 。一旦邮件发送到 PC 机或 MAC 上,邮件服务器上的邮件将会被删除。 POP3 并不支持对服务器上邮件进行扩展操作,此过程由更高级的 IMAP4 完成。 POP3 使用 TCP 作为传输协议。 |
协议结构 |
POP3 是发送在客户机和服务器间的 ASCII 信息。POP3 命令摘要: |
命令 | 描述 |
USER | 用户名 |
PASS | 用户密码 |
STAT | 服务器上的邮件信息 |
RETR | 获取的信息数 |
DELE | 删除的信息数 |
LIST | 显示的信息数 |
TOP <messageID> <nombredelignes> | 从头开始(包含协议头)打印X行信息 |
QUIT | 退出POP3服务器 |
可选POP3命令:
APOP name digest AUTHORIZATION 状态有效; TOP msg n TRANSACTION 状态有效; UIDL [msg] POP3 Replies: + OK - ERR。 |
相关协议 | SMTP 、 IMAP4 、 TCP 、 POP |
组织来源 | POP3 由 IETF( www.ietf.org) 定义在 RFC 1939中。 |
相关链接 | http://www.javvin.com/protocol/rfc1939.pdf :Post Office Protocol – Version 3 |
SMTP:简单邮件传输协议
SMTP:简单邮件传输协议 | |
(SMTP:Simple Mail Transfer Protocol) |
SMTP 是一种提供可靠且有效电子邮件传输的协议。 SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。 SMTP 独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。 SMTP 重要特性之一是其能跨越网络传输邮件,即“ SMTP 邮件中继”。通常,一个网络可以由公用互联网上 TCP 可相互访问的主机、防火墙分隔的 TCP/IP 网络上 TCP 可相互访问的主机,及其它 LAN/WAN 中的主机利用非 TCP 传输层协议组成。使用 SMTP ,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。 在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一跳 IP 地址。 |
协议结构 |
SMTP 命令是发送于 SMTP 主机之间的 ASCII 信息,可能命令如下所示: |
命令 | 描述 |
DATA | 开始信息写作 |
EXPN <string> | 在指定邮件表中返回名称 |
HELO <domain> | 返回邮件服务器身份 |
HELP <command> | 返回指定命令中的信息 |
MAIL FROM <host> | 在主机上初始化一个邮件会话 |
NOOP | 除服务器响应确认以外,没有引起任何反应 |
QUIT | 终止邮件会话 |
RCPT TO <user> | 指明谁收到邮件 |
RSET | 重设邮件连接 |
SAML FROM <host> | 发送邮件到用户终端和邮箱 |
SEND FROM <host> | 发送邮件到用户终端 |
SOML FROM <host> | 发送邮件到用户终端或邮箱 |
TURN | 接收端和发送端交换角色 |
VRFY <user> | 校验用户身份 |
相关协议 | POP3 、 IMAP4 、 TCP 、 POP 、 FTP |
组织来源 | SMTP 由 IETF( www.ietf.org )定义在 RFC2821中。 |
相关链接 | http://www.javvin.com/protocol/rfc2821.pdf :Simple Mail Transfer Protocol |