首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

CGI編程實戰:C語言實現2000萬開房數據查詢系統

     編輯:關於C語言

CGI編程實戰:C語言實現2000萬開房數據查詢系統

什麼是 CGI?

Common Gateway Interface:Web服務器與外部程序交互的標準接口。瀏覽器提交表單 → 服務器啟動CGI程序 → 程序處理輸出HTML → 服務器返回瀏覽器。

工作流程

  1. 瀏覽器請求CGI程序URL(如/cgi-bin/query.cgi)
  2. 服務器(Apache/Nginx)fork進程,設置環境變量
  3. CGI程序從stdin讀取POST數據,或QUERY_STRING獲取GET數據
  4. 程序處理邏輯,輸出Content-Type: text/html\n\n + HTML內容到stdout
  5. 服務器捕獲輸出返回客戶端

核心代碼:query.cgi


", line); count++; } } printf("

共找到 %d 條記錄: %s

", count, keyword); fclose(fp); return 0; }

前端 HTML:index.html

    開房記錄查詢


    

數據來源:網絡公開數據,僅供測試學習,請遵守法律法規

部署步驟(Apache 2.4)

  1. 編譯:gcc query.c -o query.cgi
  2. 放置:query.cgi → /usr/lib/cgi-bin/(需chmod +x)
  3. HTML → /var/www/html/
  4. Apache配置:ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/,Options +ExecCGI,AddHandler cgi-script .cgi
  5. 重啟Apache,瀏覽器訪問https://localhost/index.html

關鍵技術點

  1. Content-Type頭必須輸出,且後跟雙換行(\n\n)
  2. URL解碼:處理%XX和+
  3. 字符集一致性:HTML meta、CGI輸出頭、數據文件編碼統一(示例用GB2312)
  4. 安全性:生產環境嚴禁直接拼接SQL/命令,必須參數化、過濾、權限最小化
  5. 性能:2000萬行文本grep查詢極慢,實際應用必須用數據庫索引/倒排索引

總結

CGI是Web後端最基礎模式。雖然現代框架(FastCGI、uWSGI、Node.js、Go net/http)性能更高、開發更便捷,但理解CGI進程模型、環境變量、標準流交互、HTTP協議本質,是後端工程師的必修內功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved