前端浏览器通过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
噗,http状态码是可以乱改的吗?
只要你符合http 协议是可以自己写的。
HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。 nginx 没支持到4位
这个有官方文档说明吗?
@皇上吉祥: 什么官方文档? http 状态码
@皇上吉祥: 一般是不会修改http status ,正常使用200 和404 这两个。 项目的状态码一般是放在data中的
@xiaobaiskill: 这个了解的。 我是想知道nginx对于这种情况是怎么处理的,为啥会导致请求pending
@皇上吉祥: 不知道,看文档吧 http://www.nginx.cn/doc/
各家软件对http code解析和支持并不一样,有的甚至超过5XX+就不认http协议。
还比如Content-Length是不是真的有意义呢?——那么如果写个很大得值,但是内容就很小怎么办?——这就是历史上的一个消耗服务器的案例,当然现在的server基本消除了这个问题。当然还有很多可以列举的例子。
你们的业务很奇怪,为什么去改大家都约定http状态码为非常规的。。。不是应该自己另外起字段么,比如errorcode。
– 心雨纷扬 5年前@心雨纷扬: 我们这个是测试, 遇到这个问题了。 所以想搞清楚原理
– 皇上吉祥 5年前