CNode

原来node的http parser是这样坑爹的

Aasoedarren发布于13 年前最后回复9 年前5 回复13251 浏览0 收藏

原文在這 http://www.chmod777self.com/2013/08/sigh.html 不解釋 自己看 求performance也不是這樣搞的

parser->method = (enum http_method) 0; parser->index = 1; switch (ch) { case 'C': parser->method = HTTP_CONNECT; /* or COPY, CHECKOUT / break; case 'D': parser->method = HTTP_DELETE; break; case 'G': parser->method = HTTP_GET; break; case 'H': parser->method = HTTP_HEAD; break; case 'L': parser->method = HTTP_LOCK; break; case 'M': parser->method = HTTP_MKCOL; / or MOVE, MKACTIVITY, MERGE, M-SEARCH / break; case 'N': parser->method = HTTP_NOTIFY; break; case 'O': parser->method = HTTP_OPTIONS; break; case 'P': parser->method = HTTP_POST; / or PROPFIND|PROPPATCH|PUT|PATCH|PURGE / break; case 'R': parser->method = HTTP_REPORT; break; case 'S': parser->method = HTTP_SUBSCRIBE; / or SEARCH / break; case 'T': parser->method = HTTP_TRACE; break; case 'U': parser->method = HTTP_UNLOCK; / or UNSUBSCRIBE */ break; default: SET_ERRNO(HPE_INVALID_METHOD); goto error; } parser->state = s_req_method; ...

查看回复

回复 (5)

W
wencan#1·9 年前

目前还是这么判断的

H
huanghaiyang#2·13 年前

没重复,这样不可以么

G
gentlecolder#3·13 年前

果然很烂

D
DoubleSpout#4·13 年前

好像判断是有问题,仅对首字母进行判断~

I
island205#5·13 年前

从这个issue上看,是因为node没做自定义HTTP方法的支持。

参与回复
登录后即可参与回复。登录