- 论坛徽章:
- 0
|
>>计算机与数字工程 第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 编辑 ] |
|