如何禁用READ_XBUF缓存



我正在使用这个简单的代码。

#include "gwan.h"
int main(int argc, char *argv[]) 
{
  xbuf_t *reply = get_reply(argv), *read_buff;
 read_buff = (xbuf_t*)get_env(argv, READ_XBUF);
 xbuf_cat(reply, "STARTn"); xbuf_ncat(reply, read_buff->ptr, read_buff->len); xbuf_cat(reply, "ENDn");
 // this line is important if I don't use read_buff everything seems OK
 // but I need parse read_buff :(
 printf("%sn", read_buff->ptr); // this line is most important
return 200;
}

一开始似乎一切正常

shell:~$ for I in seq 0 1;做卷发——"- h"测试:${}"http://test.com: 8080/? read_buf.c& scp = 3";做

START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 1
END

再次执行我的循环

START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 1
END

再次执行我的循环

START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 1
END

但这是我的问题。

再次执行我的循环

START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END

再次执行我的循环

START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END

为什么?由于缓存?如何禁用它?

PS: servlet正在G-WAN 4.3.14上执行

由于这个问题是在之后发布的,我们通过电子邮件回复了它,因此它的真正目的是毫无疑问的,这与所谓的技术借口相距甚远。

让人们来判断,以下是我们给那个家伙的回复:


所有用户都将看到脚本显示的内容。

你的脚本没有使用任何user-session。在并发情况下,该脚本以相同的方式为所有客户端显示相同的信息。

G-WAN检测到这一点,并触发它的缓存,因为您的脚本很慢(可能是由于打印到控制台)。

在现实世界中不存在这样的应用程序:您将使用个性化的URI参数,或POST实体,甚至cookie -您的测试小心避免的东西-因此它不相关。

此外,您可能会受益于阅读G-WAN常见问题解答:

http://gwan.ch/faq缓存

最后,创建G-WAN不是为了与任何现有的Web框架竞争。我们的目标仅仅是满足我们自己项目的需要:

http://twd-industries.com/

这里G-WAN非常适合这个任务,因为我们写它的目的是为了正确使用它。

相关内容

  • 没有找到相关文章

最新更新