麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

用Delphi編寫CGI程序(二)

2019-11-18 18:49:08
字體:
來源:轉載
供稿:網友
在 上 一 講 中, 我 們 介 紹 了 CGI 程 序 的 功 能。 今 天, 我 們 進 入: 第 二 部 分、 CGI 程 序 設 計 的 概 念 。本 講 的 內 容 是 深 入 了 解 CGI 程 序 的 基 礎。

本 系 列 講 座 是 用 Delphi 編 寫 CGI 程 序, 對 于 本 次 的 內 容 Delphi 已 經 封 裝 在 它 的 類 中, 您 也 許 認 為 本 講 沒 有 必 要。 但 我 認 為 CGI 的 優 勢 之 一 是 可 用 的 開 發 語 言 多( 下 面 將 提 到 這 個 問 題), 而 本 講 的 內 容 可 用 于 任 何 程 序 設 計 語 言 中( 包 括 Delphi )。 所 以, 要 發 揮 CGI 的 優 勢, 本 講 的 內 容 還 是 必 要 的; 再 說, 本 講 的 內 容 是 深 入 了 解 CGI 程 序 的 基 礎。

2 、 CGI 規 范:

    通 常, WEB 服 務 器 是 一 臺 功 能 強 大 的 計 算 機, 但 不 可 能 利 用 所 有 處 理 能 力。 CGI 的 產 生 使 得 人 們 可 以 用 WEB 服 務 器 的 處 理 能 力 為 遠 程 客 戶 提 供 有 趣 的、 動 態 的 內 容。 CGI 規 范 應 用 于 WEB 服 務 器 及 運 行 在 WEB 上 的 應 用 程 序。 它 不 是 HTTP 協 議 的 一 部 分, 但 大 多 數 WEB 服 務 器 都 支 持 這 個 規 范, 如 NCSA httpd 、 CERN httpd 、 Apache httpd 、 IIS 及 我 們 使 用 的 OmniHTTPD 。

2.1 、 CGI 概 覽

    CGI 定 義 WEB 服 務 器、 瀏 覽 器 和 應 用 程 序 之 間 的 相 互 操 作 中 共 同 遵 守 的 規 則 集。 例 如 通 過 WEB 瀏 覽 器 查 詢 遠 程 數 據 庫 系 統:


2.2 、 語 言:

    CGI 程 序 可 以 使 用 WEB 服 務 器 上 可 以 執 行 的 任 何 語 言 來 編 寫。 您 應 該 選 用 最 熟 悉 和 最 適 合 目 前 工 作 的 語 言。 如: Perl 語 言 適 合 字 符 串 和 文 件 處 理, C 對 大 型 的、 復 雜 的 程 序 更 合 適, Visual Basic 和 Delphi 則 適 合 數 據 庫 的 處 理, 等 等。 下 面 是 常 用 的 CGI 編 程 語 言:

C
C++
Perl
Tcl
Python
Shell Scripts
Visual Basic
Delphi
Applescript

2.3 、 CGI 方 法:
    調 用 CGI 的 途 徑 稱 為 CGI 方 法。 主 要 有 三 種 CGI 方 法:

2.3.1 、 GET 方 法:
    GET 方 法 是 瀏 覽 器 向 WEB 服 務 器 提 出 請 求 的 方 法。 使 用 這 種 方 法 時, CGI 程 序 從 環 境 變 量 QUERY_STRING 中 獲 取 數 據。 CGI 程 序 為 了 得 到 輸 入 的 參 數, 必 須 分 析 這 個 環 境 變 量。 當 傳 輸 的 數 據 很 長 時, 應 使 用 POST 方 法。

2.3.2 、 POST 方 法:
    使 用 POST 方 法 時, CGI 程 序 從 stdin ( 標 準 輸 入) 得 到 輸 入 數 據。 由 于 輸 入 數 據 的 最 后 沒 有 EOF ( 文 件 結 束 標 志 End Of File ), CGI 程 序 為 了 正 確 讀 取 輸 入 數 據, 必 須 使 用 環 境 變 量 CONTENT_LENGTH 值。 用 這 種 方 法 的 最 大 優 點 在 于 可 以 傳 輸 大 量 數 據, 而 GET 方 法 由 于 受 URL 長 度 的 限 制( 一 般 不 超 過 1024 字 節), 無 法 傳 輸 大 量 數 據。 這 時, POST 方 法 是 唯 一 的 選 擇。

2.3.3 、 HEAD 方 法:
    HEAD 方 法 基 本 同 于 GET 方 法, 只 是 它 是 從 WEB 服 務 器 向 瀏 覽 器 傳 輸 數 據。 而 且, 傳 輸 的 僅 僅 是 HTTP 的 頭 信 息。

2.4 、 接 口 規 范:
    下 面 將 介 紹 WEB 服 務 器 與 CGI 程 序 通 信 的 四 種 主 要 方 法: 環 境 變 量、 命 令 行、 標 準 輸 入 和 標 準 輸 出。( 根 據 CGI Version 1.1 給 出)

2.4.1 、 環 境 變 量:

AUTH_TYPE : 如 果 服 務 器 支 持 確 認 并 且 腳 本 得 到 保 護, 給 出 確 認 的 類 型。

CONTENT_LENGTH : 給 出 以 字 節 為 單 位 的 用 POST 方 法 傳 輸 的 數 據 長 度。 用 GET 方 法 時 變 量 為 空。

CONTENT_TYPE : 給 出 用 POST 方 法 時 傳 輸 數 據 的 MINE 類 型。 當 使 用 GET 方 法 時 變 量 為 空。 如: application/x-www-form-urlencoded 。

GETWAY_INTERFACE : 給 出 CGI 規 范 名 和 版 本 號, 如: CGI/1.1 。

PATH_INFO : 給 出 了 URL 中 CGI 程 序 名 之 后 的 附 加 路 徑 信 息。

PATH_TRANSLATED : CGI 程 序 的 物 理 路 徑, 通 常 是 WEB 根 目 錄、 腳 本 名 和 附 加 路 徑 信 息。

QUERY_STRING : URL 中 " ? " 字 符 后 的 信 息。 使 用 GET 方 法 時 此 環 境 變 量 給 出 輸 入 數 據。

REMOTE_ADDR : 提 出 請 求 的 遠 程 計 算 機 的 IP 。

REMOTE_HOST : 提 出 請 求 的 遠 程 計 算 機 的 名 字。

REMOTE_IDENT : 給 出 RFC 931 中 定 義 的 用 戶 名。

注: RFC 931 是 Internet 的 權 威 文 檔, 描 述 了 確 認 TCP 連 接 中 識 別 用 戶 的 方 法。 文 檔 在: http://sunsite.auc.dk/RFC/rfc/rfc931.html 。

REMOTE_USER : 給 出 提 出 請 求 的 客 戶 端 的 授 權 用 戶 名。

REQUEST_METHOD : 提 出 請 求 的 方 法, 可 以 是 GET 、 HEAD 和 POST 。

SCRIPT_NAME : 要 執 行 CGI 程 序 的 虛 擬 路 徑, 如: /cgi-bin/query.cgi 。

SERVER_NAME : 運 行 WEB 服 務 器 軟 件 的 計 算 機 域 名 或 IP 地 址, 如: www.chinabyte.com 。

SERVER_PORT : WEB 服 務 器 的 端 口 號, 缺 省 值 是 80 。

SERVER_PROTOCOL : WEB 服 務 器 使 用 的 協 議 名 和 版 本 號, 如: HTTPD/1.0 。

SERVER_SOFTWARE : 執 行 CGI 程 序 的 WEB 服 務 器 名。 格 式 為 " 服 務 器 名 / 版 本 號 " , 如: NCSA/1.5b5 。

HTTP_ACCEPT : 客 戶 端 發 送 的 "Accpect : 標 題 行 " , 對 應 于 客 戶 端 能 處 理 的 MIME 類 型, 格 式 為 " 類 型 / 子 類 型, 類 型 / 子 類 型 等 " , 如: */* , image/gif , image/jpeg 。

HTTP_REFERER : 是 Referer : 標 題 行 的 目 錄, 包 含 了 CGI 請 求 時 的 表 單( Form ) 的 URL , 如: http://www.chinabyte.com/register.form 。

HTTP_USER_AGENT : 提 出 請 求 的 客 戶 端 瀏 覽 器 名, 如: Mozilla/1.2N ( Windows;I;32bit )。

    以 上 的 這 些 環 境 變 量 您 可 以 用 上 一 講 的 示 范 程 序 看 到。

2.4.2 、 命 令 行:

    CGI 命 令 行 只 在 用 ISINDEX 查 詢 時 才 用 到。 ISINDEX 查 詢 是 包 含 在 < ISINDEX> 和 < BASE HREP=".."> 之 間 的 特 殊 查 詢。 命 令 行 可 以 帶 多 個 參 數。

2.4.3 、 標 準 輸 入:

    使 用 POST 方 法 時, CGI 程 序 從 stdin 得 到 傳 輸 數 據。 前 面 講 過, 必 須 使 用 CONTENT_TYPE 和 CONTENT_LENGTH 環 境 變 量 值。 其 中 要 注 意 的 是, 數 據 中 的 URL 被 編 碼 了, 如 空 格 用 加 號 代 替、 ~ 由 %7E 代 替 等。

2.4.4 、 標 準 輸 出:

    CGI 程 序 通 過 標 準 輸 出 將 數 據 送 給 瀏 覽 器, 或 是 WEB 服 務 器 可 解 釋 的 命 令。 CGI 程 序 可 以 通 過 WEB 服 務 器 同 瀏 覽 器 對 話, 它 們 的 程 序 名 必 須 以 "nph-" 開 頭, 代 表 未 經 分 析 的 頭 信 息。 CGI 程 序 負 責 返 回 給 瀏 覽 器 的 HTTP 頭 信 息 的 正 確 性。

    在 不 使 用 nph- 程 序 時, 服 務 器 查 找 CGI 可 能 返 回 的 三 種 特 殊 的 頭 信 息:

Content-type : MIME 類 型 的 頭 信 息, 如: 輸 入 HTML 時, 常 用 "Content-type:text/html " 。

Location : 告 知 服 務 器 你 正 指 向 別 的 文 檔。 服 務 器 或 者 重 定 向 客 戶, 或 者 發 送 文 檔 內 容, 這 取 決 于 URL 是 完 整 路 徑 還 是 相 對 路 徑。

Status : 服 務 器 送 給 客 戶 端 的 狀 態 行。 格 式 為: nnnXXXXX , nnn 是 一 個 三 位 數 編 碼, 而 XXXXX 是 相 對 應 的 描 述 文 本。

上一篇:用Delphi編寫CGI程序(三)

下一篇:用Delphi編寫CGI程序(一)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 欧美日韩高清一区二区三区 | av在线更新 | 久久精品一区二区三区国产主播 | 亚洲第一成人久久网站 | 一本色道久久综合亚洲精品小说 | 黄色伊人网站 | 黄视频免费在线观看 | 毛片在线免费 | 日韩精品久久久久久 | chinese军人gay呻吟 | 国产乱淫a∨片免费观看 | 午夜a狂野欧美一区二区 | 91久久国产综合久久91精品网站 | 久久国产精品免费视频 | 国产v综合v亚洲欧美久久 | 久久久久久久久久久高潮一区二区 | 国产美女视频一区二区三区 | 色综av| 欧美一级黄色片在线观看 | 天天干天天透 | 精品一区久久久 | 性大片免费看 | 欧美a一| 欧洲精品色 | 极品大长腿啪啪高潮露脸 | 久久久久久久一区二区 | 欧美精选一区二区 | 日本高清视频网站www | www.99久久久| 免费一级电影 | h色网站在线观看 | 亚洲国产在 | 欧美18一12sex性处hd | 欧美综合日韩 | 欧美日韩亚洲精品一区二区三区 | 国产美女视频一区 | 国产精品久久久久久影院8一贰佰 | 视频一区二区视频 | 国产一级免费不卡 | 12av毛片| 国产精品一区二区免费在线观看 |