是否有可能(以及如何)改变G-WAN处理请求的方式?

今天,G-WAN像这样继续请求( 使用loan.java servlet的示例 ):

localhost/?loan.java&name=Eva&amount=100000&term=5&rate=4.2 

可以使用特定的处理程序( 甚至更好的G-WAN交换机 )来处理这样的请求:

 localhost/loan.java?name=Eva&amount=100000&term=5&rate=4.2 

哪里:

a)在servlet名称的名字前面没有“ ”字符, 但在第一个参数之前

b) ”字符不放在第一个参数之前,但放在第二个,然后是第三个,第四个( 依此类推参数之前。

这样的处理器( 甚至更好的G-WAN交换机 )将使G-WAN与用于创build今天的web应用和网站的无数代码(Go,Java,Mono,NodeJS,PHP,Ruby等)兼容开发人员有义务将其重写为简单地与G-WAN一起使用,并有利于其高性能,可扩展性和安全性。

注意:以前的答案永远不会回答另一个contibutor的问题:“如何删除” “字符”和init.c代码不提供删除QUERY_CHAR的方法,但是:

a)只能从字符集中select: – _。 ! 〜*'()和,

b)不要放置“?” 以及上面需要的“&”字符。

所以,我希望我的问题更清楚。

如果需要资金,G-WAN开发者可以用标准的G-WAN版本获得这样一个处理程序( 甚至更好的G-WAN交换机 ),以像所有其他Web服务器一样处理请求那么,即使使用正则expression式代码会使G-WAN变慢一点( 如果有的话 )呢?

预先感谢您为这个exception的Web应用程序服务器实现这样一个必要的增强的方法。

在G-WAN 网站上有一个Connection Handler的例子。 在G-WAN处理之前/之后,您可以根据需要重写请求。

在网站示例中,将行#6replace为:

 char *p = strstr(read_xbuf->ptr, ".java?"); if(p) { char *b = p; while(*b != '/') b--; // find script name memmove(b + 1, b, p + sizeof(".java?") - (b + 2)); // make room b[1] = '?'; // add leading '?' } 

这将做你想要的reqrite。 如果你的代码存在问题,请在gwan.ch上给我们留言。

请标记为“已接受”符合您需求的答案。

Interesting Posts