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

首頁 > 編程 > Delphi > 正文

用Delphi編寫CGI程序(三)

2019-11-18 18:49:08
字體:
來源:轉載
供稿:網友
也 許 各 位 讀 者 感 到 CGI 程 序 有 一 種 神 秘 感, 在 這 一 部 分 將 講 述 一 些 關 于 CGI 程 序 的 基 本 編 程 過 程。 您 讀 了 之 后, 就 不 會 再 有 神 秘 感 了。

    3 、 CGI 規 范 的 其 他 問 題:

    也 許 各 位 讀 者 感 到 CGI 程 序 有 一 種 神 秘 感, 在 這 一 部 分 將 講 述 一 些 關 于 CGI 程 序 的 基 本 編 程 過 程。 您 讀 了 之 后, 就 不 會 再 有 神 秘 感 了。

    首 先, 在 進 行 任 何 編 程 工 作 時, 將 一 個 大 任 務 分 成 許 多 小 任 務, 每 個 小 任 務 完 成 相 對 獨 立 的 功 能。 許 多 人 不 愿 自 己 編 寫 CGI 程 序, 就 是 因 為 覺 得 CGI 編 程 很 難。 其 實, 將 一 個 典 型 的 CGI 程 序 分 成 以 下 幾 個 部 分, 再 一 一 解 決, 您 就 不 會 對 CGI 程 序 感 到 困 難 了:


    總 體 的 說, 在 瀏 覽 器 中 調 用 一 個 CGI 程 序 時, 服 務 器 首 先 要 找 到 CGI 程 序, 一 般 的, CGI 程 序 都 放 在 服 務 器 指 定 的 目 錄 中, 在 我 們 的 OmniHTTPD 中, 在 cgi-bin 和 cgi-win 虛 擬 目 錄 指 定 的 實 際 目 錄 下, 分 別 為 c:httpdcgi-bin 和 c:httpdcgi-win 目 錄。 您 可 以 在 OmniHTTPD 中 修 改 實 際 目 錄, 也 可 以 添 加 虛 擬 目 錄, 如: 將 虛 擬 目 錄 cgi-test 指 定 為 c:my-cgi ; 如 果 您 在 c:my-cgi 目 錄 下 有 一 個 名 為 test1.cgi 的 CGI 程 序, 您 可 以 在 瀏 覽 器 中 通 過 地 址 http://localhost/cgi-test/test1.cgi 調 用 它。

    在 正 常 情 況 下 服 務 器 找 到 了 瀏 覽 器 請 求 的 CGI 程 序, 就 產 生 了 此 CGI 程 序 的 一 個 進 程。 這 樣, 瀏 覽 器 與 服 務 器 就 建 立 好 了 連 接。 一 旦 CGI 程 序 執 行 完 畢, 此 進 程 就 消 失, 連 接 也 消 失 了。 上 圖 中 所 有 的 操 作 都 是 在 建 立 了 連 接 的 時 間 內 完 成 的, 因 此, 每 個 CGI 程 序 完 成 的 任 務 要 盡 可 能 小, 否 則, 會 占 用 服 務 器 的 大 量 時 間 和 資 源, 客 戶 端 瀏 覽 器 的 等 待 時 間 也 會 很 長。

    在 上 面 的 圖 中 您 可 以 看 到,CGI 程 序 一 般 分 為 數 據 輸 入、 數 據 處 理 和 數 據 輸 出 三 個 部 分; 有 時, 要 在 數 據 處 理 部 分 同 數 據 庫 進 行 交 互( CGI 程 序 的 特 長 也 在 此)。 這 三 個 部 分 中, 數 據 輸 入 和 數 據 輸 出 有 嚴 格 的 規 范, 而 數 據 處 理 就 是 您 發 揮 想 象 力 的 地 方 了。 下 面, 我 將 著 重 講 一 講 數 據 輸 入 和 數 據 輸 出 的 規 范 及 注 意 事 項:

    在 以 前, 我 們 曾 列 出 了 CGI 程 序 所 用 的 幾 乎 所 有 環 境 變 量。 其 中, 有 相 當 一 部 分 是 同 數 據 的 輸 入 和 輸 出 有 密 切 關 系 的。 下 面, 我 們 就 分 類 列 出 其 中 最 常 用 的 環 境 變 量:

    與 服 務 器 相 關 的 環 境 變 量:

GATEWAY_INTERFACE
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE

    與 客 戶 機 相 關 的 環 境 變 量:

HTTP_ACCEPT
HTTP_ACCEPT_ENCODING
HTTP_ACCEPT_LANGUAGE
HTTP_AUTHORIZATION
HTTP_CHARGE_TO
HTTP_FROM
HTTP_IF_MODIFIED_SINCE
HTTP_PRAGMA
HTTP_REFERER
HTTP_USER_AGENT

    與 請 求 相 關 的 環 境 變 量:

AUTH_TYPE
CONTENT_FILE
CONTENT_LENGTH
CONTENT_TYPE
OUTPUT_FILE
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
REMOTE_USER
REQUEST_LINE
REQUEST_METHOD
SCRipT_NAME


    在 這 里 值 得 說 明 的 是 CONTENT_FILE 和 OUTPUT_FILE 。 在 Windows 3.1 和 DOS 上 沒 有 很 多 語 言 可 以 通 過 標 準 輸 入 輸 出( STDIN 和 STDOUT ) 讀 和 寫, 所 以 用 這 兩 個 變 量 代 替。 其 他 的 環 境 變 量 可 以 參 考 以 前 的 詳 細 列 表。

    以 前 講 過, GET 方 法 通 過 URL 傳 遞 數 據; POST 方 法 通 過 STDIN 傳 遞 數 據。 無 論 是 用 什 么 方 法, 數 據 傳 遞 過 程 中 數 據 是 經 過 編 碼 的。 不 過, 我 們 不 用 擔 心 編 碼 和 解 碼 的 問 題, 因 為 我 們 將 用 的 開 發 語 言 可 以 自 動 完 成 此 任 務: 在 Perl 中 是 cgi-lib.pl , 在 Delphi 中 是 TWebModule 等。

    頭 信 息 在 CGI 編 程 中 也 是 非 常 重 要 的。 頭 信 息 是 CGI 程 序 在 向 客 戶 機 發 信 息 前 的 信 號。 有 三 個 主 要 的 頭 信 息 類 型:

Content-type //向瀏覽器傳遞HTML
Location   //向瀏覽器傳遞新的URL
Status    //通常在CGI程序出錯使用來檢查錯誤

    Content-type 是 瀏 覽 器 處 理 的 信 息 類 型, 主 要 是 MIME 的 類 型。 定 義 的 方 法 為 類 型 和 子 類 型 的 組 合。 常 用 的 MIME 類 型 有: Text 、 Multipart 、 Message 、 application 、 Image 、 Audio 和 Video 。

    例 如, CGI 程 序 要 向 瀏 覽 器 傳 送 一 個 HTML 文 檔 前, 應 先 傳 送 text/html 。 用 Perl 書 寫 如 下:

    print "Content-type:text/html "
    print "< h1> Hi everyone! < /h1> "

    Location 使 瀏 覽 器 轉 向 新 的 URL 。 例 如:

    print "Location:http://www.chinabyte.com"

    這 段 Perl 程 序 使 瀏 覽 器 轉 向 ChinaByte 的 主 頁。

    Status 指 出 CGI 程 序 的 狀 態, 通 常 在 CGI 程 序 出 錯 使 用 來 檢 查 錯 誤。 下 表 列 出 了 常 用 的 狀 態 碼 及 含 義:

代 碼 結 果             描 述 
200  OK             請 求 正 常 滿 足 
202  Accept           請 求 被 接 受, 處 理 中 
301  Moved            文 檔 被 移 到 新 地 點 
302  Found            文 檔 不 在 說 明 處, 但 在 服 務 器 別 處 
400  Bad Request HTTP      請 求 的 語 法 不 對 
401  Unauthorized        文 檔 需 要 存 取 權 
403  Forbindden         服 務 器 拒 絕 訪 問 文 檔 
404  No Found          服 務 器 找 不 到 文 檔 
500  Server Error        服 務 器 發 生 嚴 重 錯 誤 
502  Service Overloaded     服 務 器 忙, 無 法 處 理 請 求 


    這 一 講 到 這 里 就 完 了。 各 位 有 了 這 些 CGI 的 基 礎 知 識 后, 可 以 開 始 使 用 任 何 一 種 語 言 一 步 步 開 發 CGI 程 序 了。 我 再 一 次 告 訴 大 家, CGI 程 序 并 不 神 秘, 它 只 不 過 是 一 種 建 立 服 務 器 和 某 種 任 務 的 對 話。

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

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

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 北京一级毛片 | 亚洲不卡 | av免播放 | 国产一级桃视频播放 | 天堂成人一区二区三区 | 国产精品一区99 | 精品久久999 | 99综合视频 | 色污视频在线观看 | 黄色毛片a级| 插插操 | 久久久久久久久久91 | 91短视频在线播放 | 久久久久久麻豆 | 色综合久久久久综合99 | chinese军人gay呻吟| 久草在线网址 | av免费在线不卡 | 久久av喷吹av高潮av懂色 | 精品国产亚洲人成在线 | 国产午夜亚洲精品午夜鲁丝片 | 国产精品久久久久久久久久久久久久久久 | 九色免费视频 | 欧美 videos粗暴 | 久久av免费观看 | 国内精品久久久久久2021浪潮 | 久久久成人精品视频 | 日韩一级网站 | 看a级毛片 | 奇米888一区二区三区 | 国产成人在线一区二区 | 国产午夜三级一区二区三桃花影视 | china对白普通话xxxx | 久久精品中文字幕 | 美女视频在线观看黄 | 黑人一级片视频 | 中文字幕在线观看精品 | 成人福利在线播放 | 国产精品视频专区 | 国产精品久久久久国产精品三级 | 午夜视 |