關於 boa webserver 是否支持 cookie
>>計算機與數字工程 第33卷《Boa源碼分析及其在嵌入式系統中的應用》一文提及
>>boa 不支持 cookie 的說 法,與之前答網友 boa 支持cookie 的說法矛盾,引起網友質疑。
下面是關於此文的討論,希望對大家理解和應用 boa 有所幫助:
提要:
1. 上文認為 boa 不支持cookie技術, 是論文作者對 cookie 技術的一種誤解.
2. 論文中還有其它幾處錯誤
hi, 你好!
謝謝. 你的郵件已經收到.
原文對添加 AUTH_NAME 進行多用戶認證的思想是很不錯地.
不過對boa的認識還存在不少瑕疵.
Boa同樣也不支持Cookie,我們可以參考cgi
header. c中的process _ cgi_ header()函數,在其中
可以看到Boa並沒有處理與Cookie相關的頭部信
息。因此,即使向Boa發送了Set一Cookie頭信息
它也不會做任何事情,經過測試也確實如此。所以
這種方法也是不可行的。
上文認為 boa 不支持cookie技術, 是論文作者對 cookie 技術的一種誤解.
首先, Set-Cookie 是伺服器向瀏覽器發送的信息, 而非向 boa 發送的信息.
boa 能接受的 Cookie 信息為: Cookie: name=value;...
這是一處非常明顯的錯誤.
其次, 在boa 源碼中未找到對 Cookie 頭的處理, 就果斷地斷定 boa 不支持
cookie 是一種很不負責任的做法.
在 CGI/1.1 標準中未對COOKIE 進行定義,
在它在協議特殊元素(Protocol-Specific Metavariables)一節中, 指出
webserver 必須用 "HTTP_" 開頭標記 HTTP協議的特殊元素. 其中 cookie 就
在其中之列. 所以 HTTP_COOKIE 是伺服器傳遞給 CGI 程序的一個變數.
boa 支持這一協議規定, 它將非CGI/1.1標準的元素用 "HTTP_" 頭標記. 這樣,
當瀏覽器發送 Cookie 頭時, 將被自動轉換成 HTTP_COOKIE, 而非顯式地進行
轉換, 所以在源代碼中不能找到任何 Cookie的影子.
從 cgi.c 的 add_cgi_env() 函數可以證實這一點.
實踐證明, boa 支持 Cookie.
論文中還有其它幾處錯誤:
但是由於Boa對於提交的信息不
論是用POST方法還是用GET方法都採用了同一
種處理手段,因此用戶所提交的信息任何人都可以
通過瀏覽器的地址欄看到。這就使得本來就很脆
弱的方法更加脆弱。這種方法也只能放棄。
這段話對 POST 和 GET 進行了不正確地描述.
首先, POST/GET 提交操作是由瀏覽器處理的, 而非 webserver. 能否出現在在地址欄中
與伺服器無任何關係.
HTTP 協議規定 GET的數據尾綴在 HTTP 協議頭的第一句中. POST的數據, 在HTTP體中單獨傳送.
所以只有 GET 方法提供的數據才會出現地址欄中, POST 則不會.
不知 boa 的什麼 "同一種處理手段" 能會影響到瀏覽器地址欄顯示 POST.
通過上面的討論, 希望對你有所幫助.
附件是: 《Boa源碼分析及其在嵌入式系統中的應用》
[ 本帖最後由 newzy 於 2006-12-4 14:23 編輯 ]
《解決方案》
積分不夠不能下載啊
《解決方案》
樓主,能不能賜教更詳細的關於WebServer源碼分析的資料,我分析好幾天了,只有源碼沒有文檔,進展不大,謝謝
《解決方案》
原帖由 星空浪子 於 2006-12-21 12:27 發表
積分不夠不能下載啊
加油呀, 多發幾個帖子就能看到了.
原帖由 xinglp 於 2006-12-21 18:18 發表
樓主,能不能賜教更詳細的關於WebServer源碼分析的資料,我分析好幾天了,只有源碼沒有文檔,進展不大,謝謝
源碼分析的文章在附件中, 你可以先下載下來看.
我只有這麼一份分析資料, 是一網友質問時發過來的.
如果遇到問題, 可以提出來, 大家幫你解決.
祝你好運!
[ 本帖最後由 newzy 於 2006-12-22 13:00 編輯 ]
《解決方案》
謝謝
《解決方案》
那麼BOA 可不可以和PHP一起在嵌入式系統中工作呢????????????
《解決方案》
php 4 及以前版本可以, 配置起來還是比較方便地
php5 及以後許多特性, 在 boa 等伺服器上都不能使用.
《解決方案》
學習了。