http與cgi的小測試之GET

在網絡領域中,HTTP應用是最廣的,技術分類也特別細。但我本人沒有從事以HTTP爲基礎的互聯網業務,很是遺憾。快哭了

因爲項目的要求,在小設備上做一個WEB配置。

使用的是lighttpd+cgi的方式。下面是我的一個小小的測試過程.

1.測試環境。

服務器:ubuntu+lighttpd+bash+lua

客戶端:firefox + httpRequester


lighttpd上配置*.cgi的文件由lua來處理。*.sh的文件由bash來處理。

cgi.assign = (
        ".cgi" => "/usr/bin/lua",
        ".sh" => "/bin/sh",
)


我自己寫了一個my.cgi和my.sh

兩個文件都是把全局變量保存到日誌中,輸出當前時間。

#my.sh
export > my.sh.export

echo "my.sh `date`"

#my.cgi
print("time: " .. os.date());
os.execute("export >my.cgi.export");


2測試過程

在firefox上使用httpRequester來請求(GET方式)WEB服務器上的my.cgi,my.sh

查看my.sh.export,my,cgi.export的內容。

my.sh.export的內容
xport CONTENT_LENGTH='0'
export DOCUMENT_ROOT='/home/abloomy/lua/lighttpd/www//pages/'
export GATEWAY_INTERFACE='CGI/1.1'
export HTTP_ACCEPT='*/*'
export HTTP_ACCEPT_ENCODING='gzip, deflate'
export HTTP_ACCEPT_LANGUAGE='zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'
export HTTP_CONNECTION='keep-alive'
export HTTP_DNT='1'
export HTTP_FOO='foo'
export HTTP_HOST='172.16.25.33:8088'
export HTTP_USER_AGENT='Mozilla/5.0 (Windows NT 6.1; rv:55.0) Gecko/20100101 Firefox/55.0'
export PWD='/home/abloomy/lua/lighttpd/www/pages'
export QUERY_STRING=''
export REDIRECT_STATUS='200'
export REMOTE_ADDR='172.16.25.218'
export REMOTE_PORT='59513'
export REQUEST_METHOD='GET'
export REQUEST_URI='/my.sh'
export SCRIPT_FILENAME='/home/abloomy/lua/lighttpd/www//pages/my.sh'
export SCRIPT_NAME='/my.sh'
export SERVER_ADDR='172.16.25.33'
export SERVER_NAME='www.aabbcc.com'
export SERVER_PORT='8088'
export SERVER_PROTOCOL='HTTP/1.1'
export SERVER_SOFTWARE='Apache 1.3.29'
export SETENV='setenv'
export TRAC_ENV='tracenv'

my.cgi.export

export CONTENT_LENGTH='0'
export DOCUMENT_ROOT='/home/abloomy/lua/lighttpd/www//pages/'
export GATEWAY_INTERFACE='CGI/1.1'
export HTTP_ACCEPT='*/*'
export HTTP_ACCEPT_ENCODING='gzip, deflate'
export HTTP_ACCEPT_LANGUAGE='zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'
export HTTP_CONNECTION='keep-alive'
export HTTP_DNT='1'
export HTTP_FOO='foo'
export HTTP_HOST='172.16.25.33:8088'
export HTTP_USER_AGENT='Mozilla/5.0 (Windows NT 6.1; rv:55.0) Gecko/20100101 Firefox/55.0'
export PWD='/home/abloomy/lua/lighttpd/www/pages'
export QUERY_STRING=''
export REDIRECT_STATUS='200'
export REMOTE_ADDR='172.16.25.218'
export REMOTE_PORT='59301'
export REQUEST_METHOD='GET'
export REQUEST_URI='/my.cgi'
export SCRIPT_FILENAME='/home/abloomy/lua/lighttpd/www//pages/my.cgi'
export SCRIPT_NAME='/my.cgi'
export SERVER_ADDR='172.16.25.33'
export SERVER_NAME='www.aabbcc.com'
export SERVER_PORT='8088'
export SERVER_PROTOCOL='HTTP/1.1'
export SERVER_SOFTWARE='Apache 1.3.29'
export SETENV='setenv'
export TRAC_ENV='tracenv'


export QUERY_STRING=''"是我們最關心的。

例如:我們請求的url:http://172.16.25.33:8088/my.sh?name=jett&age=3

export QUERY_STRING='name=jett&age=3'
這就是用戶進行get時,提交的參數。服務根據這些參數進行不同的處理。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章