HTTP响应码是什么?
当你在浏览器里输入一个网址,按下回车后,网站服务器会返回一个状态码,告诉你的设备“这次请求怎么样了”。这个状态码就是HTTP响应码。它就像服务员的回应:你点的菜是正在做、已经上桌,还是没货了。
这些数字通常由三位数组成,比如常见的404、500、200。它们被分成五类,每一类代表不同的处理结果。
1xx:信息提示
这类响应码表示“收到请求了,正在处理中,请稍等”。它属于临时反馈,用户一般看不到。比如100(Continue),意味着客户端可以继续发送请求体。这就像你打电话订餐,对方说“请讲”,还没到确认环节。
2xx:成功响应
请求成功,一切正常。最常见的就是200 OK,表示页面顺利加载出来了。你在刷新闻、看视频时,背后基本都是200在撑着。
其他如201 Created,常用于提交表单后新建资源;204 No Content,表示操作成功但没有内容返回,比如删了一条评论,页面刷新但不跳转。
3xx:重定向
意思是“你要的东西不在这里,在别处”。浏览器会自动跳转到新地址。比如你访问一个旧链接,网站已迁移,就会返回301 Moved Permanently。搜索引擎也会据此更新索引。
302 Found 是临时跳转,比如登录后跳回原页面。还有304 Not Modified,告诉浏览器“你缓存的版本还有效,不用重新下载”,节省流量又提速。
4xx:客户端错误
问题出在请求方,也就是你这边。最广为人知的是404 Not Found,访问的页面不存在。可能是链接写错了,或者页面被删了。就像去一家店,门牌号对不上。
400 Bad Request 表示请求格式有问题,服务器看不懂。比如提交的数据结构乱了。403 Forbidden 是“禁止访问”,你可能没权限,即使页面存在也打不开。而401 Unauthorized 则是没登录,需要先认证。
5xx:服务器错误
服务端出了问题,和用户无关。500 Internal Server Error 是通用错误,相当于“系统内部炸了”,具体原因得查日志。你可能见过“服务器开小差”之类的提示,本质就是500。
502 Bad Gateway 常出现在代理或网关场景,比如用Nginx转发请求时,后端服务没响应。503 Service Unavailable 表示服务器太忙或正在维护,暂时扛不住请求。就像餐厅爆满,服务员顾不过来。
504 Gateway Timeout 和502类似,但更明确:请求超时了,后端没在规定时间内回复。
实际应用场景举例
开发网页时,调试接口经常要看响应码。比如调用登录API,返回401说明没带token;返回200但数据为空,可能是逻辑问题。运维人员监控网站健康状态,也会重点关注5xx错误是否突增,判断服务器是否异常。
普通用户虽然不直接看到这些数字,但体验受其影响。比如总跳转登录页(302)、图片加载失败(404)、提交失败提示“网络异常”(可能是500),背后都有对应的响应码在起作用。
HTTP/1.1 200 OK\nContent-Type: text/html\n\n<html><body>页面正常加载</body></html>上面就是一个典型的200响应示例。服务器先返回状态行,接着是头信息,最后是页面内容。