cgi中参数都是通过环境变量传递的,那么有哪些环境变量呢?直接上代码吧。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *env_var[] = {
"COMSPEC",
"CONTENT_LENGTH",
"CONTENT_TYPE",
"CONTENT_FILE",
"PATH_INFO",
"PATH_TRANSLATED",
"DOCUMENT_ROOT",
"GATEWAY_INTERFACE",
"HTTP_ACCEPT",
"HTTP_ACCEPT_ENCODING",
"HTTP_ACCEPT_LANGUAGE",
"HTTP_CONNECTION",
"HTTP_HOST",
"HTTP_USER_AGENT",
"PATH",
"QUERY_STRING",
"REMOTE_ADDR",
"REMOTE_PORT",
"REQUEST_METHOD",
"REQUEST_URI",
"SCRIPT_FILENAME",
"SCRIPT_NAME",
"SERVER_ADDR",
"SERVER_ADMIN",
"SERVER_NAME",
"SERVER_PORT",
"SERVER_PROTOCOL",
"SERVER_SIGNATURE",
"SERVER_SOFTWARE",
};
printf("Content-Type: text/html\n\n");
printf("<html>");
printf("<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>");
printf("<body>");
printf("<table>");
for (int i = 0; i < sizeof env_var / sizeof env_var[0]; ++i)
{
printf("<tr>");
printf("<td>%s</td>", env_var[i]);
char *data = getenv(env_var[i]);
if (NULL == data) data = "";
printf("<td>%s</td>", data);
printf("</tr>");
}
printf("</table");
printf("</body>");
printf("</html>");
}最后结果
| COMSPEC | C:\WINDOWS\system32\cmd.exe |
| CONTENT_LENGTH | 44 |
| CONTENT_TYPE | multipart/form-data; boundary=----WebKitFormBoundarytt3Tg7IONIUdZmGU |
| CONTENT_FILE | |
| PATH_INFO | |
| PATH_TRANSLATED | |
| DOCUMENT_ROOT | D:/SoftWare/Apache2.2/htdocs |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 |
| HTTP_ACCEPT_ENCODING | gzip, deflate |
| HTTP_ACCEPT_LANGUAGE | zh-CN,zh;q=0.8,en;q=0.6 |
| HTTP_CONNECTION | keep-alive |
| HTTP_HOST | 127.0.0.1 |
| HTTP_USER_AGENT | Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 |
| PATH | D:\SoftWare\Python34\;D:\SoftWare\Python34\Scripts;D:\SoftWare\Python34;D:\SoftWare\Python34\Scripts;D:\SoftWare\Vim\vim74;D:\SoftWare\Cygwin\CygwinPortable\App\Cygwin\bin;D:\SoftWare\Dev-Cpp\MinGW64\bin;D:\SoftWare\Java\jdk\bin;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\; |
| QUERY_STRING | |
| REMOTE_ADDR | 127.0.0.1 |
| REMOTE_PORT | 12793 |
| REQUEST_METHOD | POST |
| REQUEST_URI | /cgi-bin/upload.cgi |
| SCRIPT_FILENAME | D:/SoftWare/Apache2.2/cgi-bin/upload.cgi |
| SCRIPT_NAME | /cgi-bin/upload.cgi |
| SERVER_ADDR | 127.0.0.1 |
| SERVER_ADMIN | baidu@qq.com |
| SERVER_NAME | 127.0.0.1 |
| SERVER_PORT | 80 |
| SERVER_PROTOCOL | HTTP/1.1 |
| SERVER_SIGNATURE | |
| SERVER_SOFTWARE | Apache/2.2.25 (Win32) |
本文介绍了一个使用C语言编写的简单CGI程序,该程序展示了多种CGI环境变量及其值,包括HTTP请求头、服务器配置及客户端信息等,有助于理解CGI的工作原理。
4850

被折叠的 条评论
为什么被折叠?



