logo资料库

HTTP协议在嵌入式系统中的实现.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
第 2 2002 卷第 年 3 期 l 月 电 子 器 件 hinese o rnal of lectron evices ol. 2 , o. l arch. , 2002 Impl ementation of HTTP Protocol in the Embedded system WANG Chao, HU Ch n, LIU Xznnzng, SONG Hong ong, TIAN Yuan ( Na zona ASIC Sys m ngzn zng C n , Sou h as Unz . , Nanjzng 2l 0096 P. R. Chzna) abstract, The ~ypertext Transf er Protocol( ~TTP) is an application-level network protocol f or implementing the applications accessing the Web. This paper intro ces the implementation approach of ~TTP l . l in the embe e pro ct-Wireless P ( Personal igital ssistant) in etail. ey ords, ~TTP l . l P EEa , 6l 0P, 62 0 嵌入式系统中 协议的实现 ~TTP , ~TTP( 超文本传输协议 ( ) 王超 , 胡晨 , 刘新宁 宋红东 田渊 , , 东南大学国家专用集成电路系统工程技术研究中心 ) 是实现用于 Web 访问应用如浏览器的网 络 应 用 协 议 本 文 详 细 介 绍 了 嵌 入 式 产 品 P ( 个人数字助理 中 ) ~TTP l . l 协议的实现方法 摘要 无线 关键词 , ~TTP l . l P 中图分类号 , TP393. 04 文献标识码 , 文章编号 , l 00 -9490( 2002) 0l -0093-04 前 言 l 目 前 用 于 Web 实 现 的 整 体 框 架 结 构 , 第 五 部 分 则 对 各 个 模 块 进 行 页 面 访 问 的 应 用 都 是 基 于 ~TTP l . l 了 详 细 的 分 析 , 请求 其 中 包 括 了 传 递 参 数 的 分 析 1 响应消息的格式和消息的形成等 ~TTP( ~ypertext Transf er Protocol) 对于设计 浏览器等应用软件是必需的 Web 嵌 入式产品无线 应用协议的 它 , 我们在 中 2 ~TTP 协议 P ( Personal igital ssistant) 自 行 设 计 和 实 现 了 ~TTP 服 务 器 模 型 不同于 在设计和实现过程中 提供访问 页面 P Web 我们充分 ~TTP l . 0[2]之处如可持 改善了无线网络 , , 同 时 也 提 高 了 嵌 入 式 设 备 为 了 实 现 嵌 入 式 的 浏 览 器 ~TTP l . l [l ]协议 , 提供了基本的支持 为无线 , 利用了 ~TTP l . l 缓存等减少了响应的时间 1 续连接 带 宽 窄 而 带 来 的 延 时 [3], 中 资 源 的 利 用 , 案 本 文第二部 分 介 绍 了 对 于 l . l 要 介 绍 了 实 现 的 软 硬 件 平 台 ~TTP l . 0 协 议 以 及 ~TTP 协 议 的 改 进 之 处 ~TTP 第 三 部 分 简 , 第 四 部 分 给 出 了 协 议 , 为 嵌 入 式 设 备 提 供 了 较 好 的 实 现 方 来稿日期 , 200l -08-27 协议和多数网络协议一样都采用了客户 一 个 , ~TTP 的 客 户 端 建 立 一 个 的 连 接 并 向 的 服 务 器 发 出 一 个 请 求 ~TTP ( e est essage) ( esponse essage) , 服 务 器 则 返 回 一 个 响 应 消 其 中 包 含 了 所 请 求 的 资 源 给出了 协议实现的一个简单模型 ~TTP - ~TTP 消 息 息 图 l , ser agent( , origin server( 用户代理 源服务器 ) ) 图 l ~TTP 协议实现的简单模型
49 电 子 器 件 第 卷 25 请求消息和响应消息分别给出了从客户端到服 务器的请求数据和从服务器到客户端的响应数据的 格式 0 从以下可见 , 它们是很相似的 0 HTTP-message= Reguest I Response ; HTTP/ 1. 1 messages generic-message= start-line % ( message-header CRLF) CRLF [message-body] star-line 其中 = Reguest-LineI Status-Line 对 于请求和发送的消息表示了请 star-line 求行和响应的状态行 可选的信息 此信息是关于资源实体内容的 0 message-header( , 头域 ) 定义了 假如实 0 体 内 容 不 存 在 就 是 关 于 请 求 所 指 定 资 源 的 内 容 , 指的是资源实体内容 5 0 message-body HTTP/ 1. 1 上建立起来的 是 对 主要表现在以下三个方面 [4]0 HTTP/ 1. 0 , 0 进 行 改 进 的 基 础 ( 1) HTTP/ 1. 1 HTTP/ 1. 0 页面 的获 取 建 立 一 个 新 的 连 接 一个 不 同 于 需 要 为 每 而 是 采 用 , 的 方 法 即 客 , 户 端 建 立 持 续 连 接 后 进 行 第 一 次 请 求 应 答 后 并 不 ( Persistent Connection ) , 而 是 可 以 进 行 多 次 请 求 应 答 后 再 关 Web 了可 持 续 连 接 立 即 关 闭 连 接 , 闭连接 0 ( 2) HTTP/ 1. 1 增加了对于缓存的支持 0 增 加 了 的 传 输 编 码 ( 3) HTTP/ 1. 1 chunked 方式 这样在服务器端 对于动态产生的页面 0 长度未知的情况下 仍可以发送出响应的数据 , , 在总 但在 , 0 客 户 端 必 须 进 行 相 应 的 处 理 后 才 能 得 到 原 始 的 数 图 2 HTTP/ 1. 1 各实现模块分析 协议的实现框架 解析传递参数 ( 1) HTTP 为 上 层 应 用 程 序 提 供 了 一 个 接 口 这 样 , 就需要提供相应的接口参数 包括了以下几个部分 0 , D HTTP URL[5] HTTP URL 中资源的位置的语法 是 用 来 描 述 通 过 访 问 HTTP HTTP URL In- 的 基本的 0 ternet 形式如下 , http, / / , / ? 通 过 对 URL 的 解 析 可 以 得 到 D Web 服 务 器 ( host) 的 域 名 或 IP 连接的端口号 TCP 上的绝对路径 0 地 址 , 用 来 建 立 连 接 建 立 0 缺省时为 , 向服务器提交的查询信息 800 资源在服务器 0 HTTP 方法 HTTP 的 方 法 用 来 指 明 对 请 求 的 所 做 的 URL 操作 , 其中主要有 和 其中 HEAD~ GET GET 它 用 来 表 示 取 回 所 请 求 的 资 POST0 据 0 3 无线 . 实现平台 我 们 实 现 的 PDA 硬件 SRAM 无线模块 软件 操作系统 . 4 HTTP/ 1. 1 的软硬件开发平台之上的 0 处理器 存 储 器 , Motorola Daragonball 68EZ328 和 的 , 512KB Flash Memory , Wavecom 公司的 模块 GSM , Motorola PPSM3. 21 协议 自行设计的 ASIX TCP/ IP TCP/ IP 协议的实现框架 , 图 2 给出了 HTTP/ 1. 1 协议的实现框架 0 协 议 是 建 立 在 嵌 入 式 是 最 常 用 的 一 种 方 法 , 源 0 而 HEAD 则只是取 回关于请求资源 的信息 而 , 不 包 含相关的实体 方法通常 用来向服务器 0 POST 发送数据如提交 FORM0 因此若使用 POST 方法 程 , 的 2MB 序需要得到将要提交的数据 0 代理 HTTP 协 议 提 供 了 服 务 器 的 代 理 访 问 机 制 如 , 果 用 户 需 要 使 用 代 理 , 做为建立连接的地址 0 则 应 当 使 用 代 理 服 务 器 地 址 这样用户所发出的请求是通 协议 过 代 理 服 务 器 中 转 发 出 去 的 而 接 收 的 数 据 也 是 从 , 源服务器通过代理服务器中转发回来的 0 身份认证 当 一 个 服 务 器 需 要 对 用 户 进 行 身 份 的 验 Web
第 期 1 王 超 , 胡 晨 等 , 嵌 入 式 系 统 中 TTP 协 议 的 实 现 59 , 就 必 须 使 用 证 时 供 所 需 要 的 用 户 名 和 密 码 并 进 行 相 应 的 编 码 [6], 便能够得到服务器的服务 的 授 权 机 制 TTP , 即 由 用 户 提 以 据 O O ( 3) 建 立 基 于 Socket 的 连 接 , 发 送 和 接 收 数 TTP 使用 TCP 做为底层的传输控制协议 因 , 此客户端必须建立一 条 基 于 数 据 流 的 进行数据的发送和接收 由于在 了可持续连接 , O 因此不像 都 必 须 建 立 一 个 新 的 连 接 , 的服务器以后才建立新连接 Socket 接 口 , 中使用 TTP/ 1. 1 那 样 每 次 请 求 TTP/ 1. 0 而 是 在 用 户 改 变 了 访 问 O 带来的开 销 这样就减少了重复建 改 善 了 访 问 的 响 应 时 , 立和关闭 间 O Socket 解析接收数据 响应消息的格式 ( 4) D ReSponSe = StatuS-Line % ( general-header | reSponSe-header | entity-header) CRLF [meSSage-body] StatuS-Line = TTP-VerSion SP StatuS-Code 形成 ( 2) TTP 请求消息的格式 D 待发送数据 RegueSt = RegueSt-Line % ( ( general-header | regueSt-header | entity-header) CRLF) CRLF [meSSage-body] RegueSt-Line = Method SP RegueSt-UIR SP TTP-VerSion CRLF 下面 给 出 了一 个典 型 的 取回东南大学主页上的一个页面 O TTP 请 求 消 息 它 将 , GET / mlSy. htm TTP/ 1. 1 OST, WWW. Seu. edu. cn Pragma, no-cache Chche-Control, no-cache USer-Agent, ASICBROWSER/ 1. 0 其中请求行指明使用 方法 使用的 协议的版本号 TTP 主 机 的 域 名 O Pragma Cache-Control 和 给出了 OST 指 明 了 关 于 控 制 网 关 和 代 理 服 务 器 是 否 使 用 缓 存 的 信 息 GET ~ 而头域 O 请求消息的生成 根 据 方 法 参 数 TTP 得到资源的路径 , O 从 TTP URL . . 头域的选取 根据用户不同的要求 会使用 , O 不同的头域和头域的值 如 , O 在用户使用了代理服务 时 , OST 将 使 用 代 理 的 域 名 或 者 地 址 ; 在 用 户 IP 服 务 器 或 者 代 理 服 务 器 的 身 份 认 证 时 必 须 加 入 或 者 Authorization 使 用 POST 数据的 类 型 头 域 Proxy Authorization 方 法 向 服 务 器 提 交 数 据 时 则 必 须 给 出 , ( Content-type) 和 数 据 的 长 度 头 域 , 头 域 而 在 ; ( Content-length) O 资源实体 . 对于使用 必 须 对 据 时 , ing[8]O 据时 , 方法向服务器提交 中 的 数 据 进 行 POST FORM 同样如果用户使用 方法提交 GET 同样要进行 URL-encoding, 方 法 提 交 的 数 据 是 放 在 RegueSt-Line 中 的 , MeSSage-body 部分 O FORM [7]数 URL-encod- 数 FORM GET 而 没 有 资源的路径和 其 中 给 出 了 服 务 器 使 用 的 SP ReaSon-PhraSe CRLF TTP-VerSion 协议版本号 O StatuS-Code 是 一 个 三 位 的 整 数 如 使 用 , TTP 态 码 , 而 表示请求的实体已被正确发送 而 , O 为服务器返回的状 方 法 时 GET ReaSon-PhraSe 200 则 USer-Agent 则给出了有关用户代理的信息 O 给出了相关的描述 O 下面给出了在发出上面所举请 选 取 不 同 的 方 法 , TTP/ 1. 1 200 OK 求消息的例子后收到的响应消息 O Date, Sun, 05 Aug 2001 13, 43, 23 GMT Server, Apache/ 1. 3. 12 ( Unix ) ( Red at/ Linux) mod SSl/ 2. 6. 6 OpenSSL/ 0. 9. 5a mod perl/ 1. 24 LaSt-Modif ied, Thu, 07 Dec 2000 09, 06, 23 GMT ETag, *7f 43-3e90-3a2f 530f * Accept-RangeS, byteS Content-Length, 16016 COnnection, cloSe Content-Type, text/ html 接收的实体数据 ) ---( 其 中 头 域 Server 给 出 了 服 务 器 的 配 置 Linux Apache/ 1. 3. 12 Web 而 给 出 了 实 体 的 长 度 可 以 看 , 服 务 器 O , Content- Content-Length Type 则给出了实体的类型 O 不同点在于 出 使 用 的 是
69 电 子 器 件 第 卷 25 响应消息的处理 , 不同状态码的处理 第 1 ~TTP/ 1. 1 分了不同的状态码 中 共 有 5 种 状 态 码 现以使用 O GET 其 中 第 一 位 区 方法举例 对于各种状态码的处理 O 给出 存中的数据 O 总 结 6 了依据 程序将提取出相关的信息提供给上层程序 这样上层程序在发出请求前首先判断缓存中的资源 是否可用 如果过期了才发出请求消息 否则使用缓 状 态 码 表 示 请 求 已 被 服 务 器 接 收 我 们 在 自 主 开 发 的 无 线 . 1XX 1XX 正在处理 要求客户端等待继续接收数据 是一种提示信息 可从接收数据中去掉 O 法 服 务 器 可见它只 状态码表示用户的请求已被服务器正确的 接收 用户请求的资源已被发送 因此我们可以从消 O 息实体中得到所请求的资源 O . 2XX 2XX . 3XX 状态码表示被请求的资源已经被移到其他 3XX 的服务器 需要重定向操作 中得到重定向的 tion URL 这时需要从头域 O 以便再次发出请求消息 Loca- O . 4XX 4XX 于用户提供的 状 态 码 表 示 请 求 有 错 误 这 主 要 可 能 是 由 URL 所指的资源是不存在的 或者是 用户需要授权以及用户的认证未通过 则要求上层程序重新传递 正确的 O 如果是前者 若是后者则 URL; 要求上层程序提供或者重新给出用户授权用户名和 密码 O . 5XX 5XX 状态码表示服务器自身出错或者不能执行 此合法的请求 这时将关闭和服务器的连接 同时通 O 知上层程序请求无法完成 O 第 2 chunked 如 果 接 收 的头 域 数据的处理 则程序必须逐段截取得到的消息实体 Transf er-Encoding 为 chunked 将服务 方式 器 给 出 的 分 段 长 度 数 据 和 结 束 标 志 去 掉 从 而 得 到 完整的接收数据 O 第 3 对于缓存的处理 协议 本文则具体介绍了 ~TTP 它为嵌入式产 品 中 实 现 用 于 浏览器提供了基本的应用协议支持 Web O 中 实 现 了 PDA ~TTP 协议具体 的 实 现 方 访 问 的 应 用 如 参 考 文 献 [1] Fielding R Gettys J Mogul J Frystyk ~. RFC 2068 ~ypertext Transf er Protocol-~TTP/ 1. 1. MIT/ LCS UC Irvine January 1997 [2] Berners-Lee T Fielding R and Frystyk ~. RFC-1945 ~ypertext Transf er Protocol-~TTP/ 1. 0. MIT/ LCS UC Irvine May 1996 [3] Cheng Stephen Lai Kevin Baker Mary. Analysis of ~TTP/ 1. 1 Perf ormance on a Wireless NetWork . Techical Report, CSL-TR -99-778. Computer Systems Laboratory Department of ELectrical Engineering and Computer Science Stanf ord University. February 1999 Pages, ( 1-7) [4 ] Marshall J. ~TTP made really easy http, / / WWW. jmarshall. com/ easy/ http/ 1997 [5 ] Berners-Lee T Masinter L. and McCahill M. " Uni- f orm Resource Locators( URL) " RFC 1738 December 1994 [6] Franks J. ~allam-Baker P ~ostetler J LaWrence S Leach P Luotonen A Sink E. and L. SteWart ~TTP Authenticaton, Basic and Digest Access Authen- tication" RFC2617 June 1999. [jg646] [7] Berners-Lee T Connolly D. ~ypertext Markup Lan- guage-2. 0. RFC1866 November 1995. [ 8] Berners-Lee T Fielding R Irvine U C Masinter L. 服务器通常给出了关于请求资源实体的有效生 Unif orm Resource Identif iers ( URI ) , Generic Syntax. 存时间如头 域 Expires 这就为请求资源的缓存提供 RFC 2396 August 1998 王超 胡晨 , , 东南大学国家专用集成电路系统工程技术研究中心硕士生 副教授 国家专用集成电路系统工程技术研究中心副主任 作者简介 , 主要研究领域是嵌入式网络协议 主要研究领域为集成电路可测性设计 O 嵌入式系统 O 刘新宁 宋红东 , , 东南大学国家专用集成电路系统工程技术研究中心硕士生 东南大学国家专用集成电路系统工程技术研究中心硕士生 O O 田渊 , 东南大学国家专用集成电路系统工程技术研究中心硕士生 O "
分享到:
收藏