posts - 33,comments - 21,trackbacks - 0

近日正在做有关HTTP协议的工作,发现自己的基本功实在不过关,下面转贴一篇对自己很帮助的文章。

出处http://blog.csdn.net/heiyeshuwu/archive/2006/06/28...

 

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、DNSS-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。

相关协议
SMTPIMAP4TCPPOP

组织来源
POP3 由 IETF(http://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>
校验用户身份

相关协议
POP3IMAP4TCPPOPFTP

组织来源
SMTP 由 IETF(http://www.ietf.org/)定义在 RFC2821中。

相关链接
http://www.javvin.com/protocol/rfc2821.pdf:Simple Mail Transfer Protocol

posted on 2007-03-17 10:39 英明 阅读(282) 评论(0)  编辑  收藏 所属分类: HTTP

只有注册用户登录后才能发表评论。


网站导航: