http协议-网页显示正常的500错误问题

http协议-网页显示正常的500错误问题

虐人心 发布于 2017-10-26 字数 127 浏览 1150 回复 4

我通过Firefox浏览器打开页面, 页面内容都显示正常, 不过发现Firbug工具监控页面是500错误, 这种页面是采用什么技术方法做到的?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

归属感 2017-11-06 4 楼

php 的 header 能设置页面的响应头,同时输出页面内容,比如

header("HTTP/1.0 500 server error");
//FastCGI 需要这么设置
header("status:500 server error");
echo '<h1>输出页面内容</h1>';

其他语言当然也都是可以设置的,Http的返回状态跟显示内容没有关系

浮生未歇 2017-11-05 3 楼

Http status code 和显示正常没有必然联系。本质上来讲,你的浏览器显示的内容和以跟 status code 没有任何必然关系。status code 更多感觉是一种额外信息,比如你是前端开发者,调用服务器端的一个基于 http 协议的接口,前端和后端两名程序员之间有约定(不仅是约定,而且通常大多数系统都这么做):403 表示没有权限,400 表示输入格式错误等等。这样前端程序员就可以根据 status code 来调试自己的程序,或者给用户友好的提示信息。具体的 status code 定义参照这里。你说的这个站点的情况,完全可以做到。

浮生未歇 2017-10-29 2 楼

HTTP Status code和显示内容没有必然联系,只是常规的HTTP状态码的产生都由HTTP服务器负责,web应用的编写者没有参与罢了,不过如楼主所说的请求到了正常页面内容还返回500,似乎不是人为的,因为这样做的意义并不大,我猜测可能是它在服务端设定了重定向规则,就是说你访问的页面确实出错了,但是为了防止这种错误妨碍到用户的正常浏览,服务器会自动转发备份内容到浏览器,类似的有一种伪静态页技术,就是利用404码将请求重定向到一个PHP文件上,然后PHP对URL分析,将实际的内容发送到浏览器。

偏爱自由 2017-10-28 1 楼

状态码是表示服务器状态的:根据http协议,服务器跟浏览器之间的通讯协议是http的,在http头中返回表示该连接状态的返回码,比如200,404,500等。
页面内容服务器传递给服务器的显示部分:在http的body部分返回的数据是服务器根据情况返回给客户端的。如果是html类型的文档,浏览器就可以显示出来。比如,在返回500的同时,返回一个解释性的html文档给用户,说明是什么问题。