Http 常见的状态码

  1. 状态码分类
    1. 1XX:服务器已经收到请求;
    2. 2XX:请求成功;
    3. 3XX:重定向;
    4. 4XX:客户端错误;
    5. 5XX:服务端错误;
  2. 常见的状态码
    1. 200:请求成功;
    2. 301:永久重定向,配合 Request Headers 中的 location 使用;比如一些老的静态资源需要换一个服务器;下次再请求这个地址时,直接被重定向到 location 指定的地址去
    3. 302:临时重定向,配合 Request Headers 中的 location 使用;比如搜索引擎的一些链接,都是通过302进行临时重定向过去的;
    4. 304:资源未被修改,和缓存相关;
    5. 404:地址错误,未找到;
    6. 403:没有权限;比如设置了白名单,未登录;
    7. 500:服务器内部错误;
    8. 502:网关错误;
    9. 503:服务不可用,暂停或者正在维护
    10. 504:网关超时

 

### HTTP 常见状态码及其处理方式 #### 成功类 (2xx) 对于成功的HTTP请求,服务器通常会返回 `200 OK` 状态码。这表明所请求的资源已被成功找到并返回给客户端[^1]。 当创建新资源时,可以使用 `201 Created` 来告知客户端已成功创建该资源,并通过响应头中的Location字段提供指向新建资源的位置链接。 如果请求被接受但尚未完成,则应发送 `202 Accepted` 给客户端作为回应;这意味着操作正在进行中,最终结果可能稍后可用。 ```php header('HTTP/1.1 201 Created'); header('Location: /new-resource-url'); ``` #### 客户端错误 (4xx) 针对客户端发出不正确的请求情况,最常用的是 `400 Bad Request` 和 `404 Not Found` 。前者用于指示客户端提交的数据存在问题或格式不对;后者则用来报告无法定位指定URL对应的任何内容。 权限不足的情况下应该给出 `403 Forbidden` ,表示即使提供了身份验证也无法获得授权访问特定页面或功能。 ```php if (!file_exists($requestedFile)) { header("HTTP/1.1 404 Not Found"); } ``` #### 服务端错误 (5xx) 遇到内部服务器错误或其他类型的异常状况时,一般会向用户展示 `500 Internal Server Error` 的消息。这类问题通常是由于应用程序逻辑缺陷或是环境配置不当引起的。 超载的服务可能会暂时拒绝新的连接尝试,在这种情况下适合用 `503 Service Unavailable` 并附带Retry-After头部来建议客户等待一段时间再试一次。 ```php // 如果数据库连接失败 header("HTTP/1.1 500 Internal Server Error"); echo "An unexpected error occurred."; ``` #### 重定向 (3xx) 为了指导浏览器转向其他位置加载所需数据,可利用诸如 `301 Moved Permanently` 或者临时性的 `307 Temporary Redirect` 。特别是涉及到永久迁移网页地址的时候推荐优先考虑 `301` ,因为它有助于搜索引擎优化(SEO)。 值得注意的是,虽然 `302 Found` 和 `303 See Other` 都能够触发GET请求形式下的跳转行为,不过按照标准定义来说,只有 `303` 明确指出了后续必须采用GET方法获取目标URI上的信息[^2]。 ```php header("HTTP/1.1 301 Moved Permanently"); header("Location: https://example.com/new-location"); // 对于POST之后需要重新以GET方式进行访问的情况 header("HTTP/1.1 303 See Other"); header("Location: https://example.com/target-uri"); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值