原地址: http://www.blog kid.net/archives/2582.htmlweb服务器使用的是nginx,但日志中有时会出现499错误。 我不知道是什么意思,在Twitter上提问也没有得到答案。 日志如下。
61.135.249.220[ 02/oct/20093360103360283360210000 ]“get/subject/93390/http/1.1 " 499“-”Youdao bot/33558 www.Youdao.com/help/web master/spider/) "
61.135.249.216[ 02/oct/2009336010336030336008000 ]“get/subject/476083/http/1.1”499“-”“moz ject/33558 www.Youdao.com/help/web master/spider/) "
在rfc2616中,400到500的错误代码最多只能定义417,因此499应该是nginx自己定义的。 之后,考虑到读nginx代码,疑问解决了。
在nginx源代码中grep 499 (现在看源代码就习惯了grep大法),会得到以下结果。
找到名为src/http/ngx _ http _ special _ response.c的文件。 此文件定义了许多http错误代码及其相应的返回。 请注意,有以下评论:
可以看到499支持“客户端关闭连接”。 这很可能是因为服务器端处理时间过长,导致客户端“不耐烦”。 要解决这个问题,需要在程序上进行优化。
除了499之外,nginx还定义了若干Status Codes,即495/496/497/498,相应的含义也出现在以上注释中。 开源的东西,能随时看到源代码真是太棒了。