首页新闻找找看学习计划

ngnix代理后端服务,后端修改响应http状态码为4位数字则请求夯住,修改为3位正常返回

0
悬赏园豆:50 [待解决问题]

前端浏览器通过ng代理后端请求,后端服务修改了http响应状态码为9999, 导致前端请求一直处于pending状态。若后端将状态码修改为3位数字即999则正常返回999。

将ng拿掉,直接浏览器访问后端服务,返回http status为9999,请求正常返回。

请问有木有大佬遇到类似问题。麻烦帮忙看下

ng的error日志一直在打印这一条 upstream sent no valid HTTP/1.0 header while reading response header from upstream

皇上吉祥的主页 皇上吉祥 | 初学一级 | 园豆:93
提问于:2019-07-11 15:10

你们的业务很奇怪,为什么去改大家都约定http状态码为非常规的。。。不是应该自己另外起字段么,比如errorcode。

心雨纷扬 3个月前

@心雨纷扬: 我们这个是测试, 遇到这个问题了。 所以想搞清楚原理

皇上吉祥 3个月前
< >
分享
所有回答(4)
0

噗,http状态码是可以乱改的吗?

codegay | 园豆:1639 (小虾三级) | 2019-07-11 16:24

只要你符合http 协议是可以自己写的。

支持(0) 反对(0) xiaobaiskill | 园豆:1028 (小虾三级) | 2019-07-11 18:14
0

HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。 nginx 没支持到4位

xiaobaiskill | 园豆:1028 (小虾三级) | 2019-07-11 18:13

这个有官方文档说明吗?

支持(0) 反对(0) 皇上吉祥 | 园豆:93 (初学一级) | 2019-07-12 11:36

@皇上吉祥: 什么官方文档? http 状态码

支持(0) 反对(0) xiaobaiskill | 园豆:1028 (小虾三级) | 2019-07-12 18:22

@皇上吉祥: 一般是不会修改http status ,正常使用200 和404 这两个。 项目的状态码一般是放在data中的

支持(0) 反对(0) xiaobaiskill | 园豆:1028 (小虾三级) | 2019-07-12 18:27

@xiaobaiskill: 这个了解的。 我是想知道nginx对于这种情况是怎么处理的,为啥会导致请求pending

支持(0) 反对(0) 皇上吉祥 | 园豆:93 (初学一级) | 2019-07-13 14:45

@皇上吉祥: 不知道,看文档吧 http://www.nginx.cn/doc/

支持(0) 反对(0) xiaobaiskill | 园豆:1028 (小虾三级) | 2019-07-14 11:13
0

协议改成 HTTP/1.1 试试??

电磁魔王喵喵 | 园豆:639 (小虾三级) | 2019-07-11 18:32

试了, 一样的

支持(0) 反对(0) 皇上吉祥 | 园豆:93 (初学一级) | 2019-07-12 11:35
0

各家软件对http code解析和支持并不一样,有的甚至超过5XX+就不认http协议。

还比如Content-Length是不是真的有意义呢?——那么如果写个很大得值,但是内容就很小怎么办?——这就是历史上的一个消耗服务器的案例,当然现在的server基本消除了这个问题。当然还有很多可以列举的例子。

花飘水流兮 | 园豆:9803 (大侠五级) | 2019-07-14 20:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册