美文网首页
常见的http状态码

常见的http状态码

作者: 前端小白的摸爬滚打 | 来源:发表于2022-02-15 15:12 被阅读0次

    1xx

    需要请求者继续执行操作的状态码

    • 100 continue 请求者需要继续发送请求,服务器收到部分请求,等待其余部分

    • 101 切换协议 请求要求服务器切换协议,服务器已经确认,准备切换

    2xx

    请求成功

    • 200 ok 服务器收到请求,并处理成功,返回结果

    • ❗️201 已创建 请求成功并且服务器已经创建了资源

    • ❗️202 已接受 服务器接受了请求但是未处理

    • 204 no content 服务器成功处理了请求,但是没有返回内容

    • 206 部分请求

    3xx

    重定向,完成请求需要进一步操作

    • 301 (Moved Permanently) 永久重定向 所请求的资源被永久移动了,响应的 location 字段中指明了新的 URL,浏览器自动使用 get 方法重定向到新的 URL,并且后续的请求也使用新的 URL

    • 302 (Found) 临时重定向 所请求的资源被临时移动了,响应的 location 字段中指明了新的 URL,浏览器自动使用 get 方法重定向到新的 URL,但是后续的请求依旧使用旧的 URL

    301 和 302 应该是支持任意方法的重定向,但是浏览器都使用 get 方法重定向

    • 303 see other 临时重定向 会将任意请求方法都重定向为 get 类似于 302

    • 304 not modified 协商缓存

    • 307 (Temporary Redirect) 临时重定向 类似于 302 , 不会修改重定向请求的方法

    • 308 (Permanent Redirect) 永久重定向 类似于 301

    301、302、303、307、308 的区别

    301、308 都是永久重定向
    302、303、307 都是临时重定向

    302 Found

    302 状态码表示目标资源临时移动到了另一个 URI 上。由于重定向是临时发生的,所以客户端在之后的请求中还应该使用原本的 URI。

    服务器会在响应 Header 的 Location 字段中放上这个不同的 URI。浏览器可以使用 Location 中的 URI 进行自动重定向。

    由于历史原因,用户代理可能会在重定向后的请求中把 POST 方法改为 GET 方法。如果不想这样,应该使用 307(Temporary Redirect) 状态码。

    303 See Other

    303 状态码表示服务器要将浏览器重定向到另一个资源,这个资源的 URI 会被写在响应 Header 的 Location 字段。从语义上讲,重定向到的资源并不是你所请求的资源,而是对你所请求资源的一些描述。

    303 常用于将 POST 请求重定向到 GET 请求,比如你上传了一份个人信息,服务器发回一个 303 响应,将你导向一个“上传成功”页面。

    不管原请求是什么方法,重定向请求的方法都是 GET(或 HEAD,不常用)

    到这里你可能发现,303 和 302 的作用很类似,除去语义差别,似乎是 302 包含了 303 的情况。

    307 Temporary Redirect

    307 的定义实际上和 302 是一致的,唯一的区别在于,307 状态码不允许浏览器将原本为 POST 的请求重定向到 GET 请求上。

    总结

    302 允许各种情况的重定向,一般情况下会实现为到 GET 的重定向,但是不能确保 POST 会重定向为 POST;303 会允许任意请求到 GET 的重定向;307 和 302 一样,但是不允许 GET 到 POST 的重定向

    301 和 308

    301 Moved Permanently

    301 状态码表明目标资源被永久的移动到了一个新的 URI,任何未来对这个资源的引用都应该使用新的 URI。

    308 Permanent Redirect

    308 的定义实际上和 301 是一致的,唯一的区别在于,308 状态码不允许浏览器将原本为 POST 的请求重定向到 GET 请求上。

    4xx

    客户端错误

    • 400 bad request 客户端的请求服务其无法理解

    • 401 未授权 需要客户端登陆认证

    • 403 forbidden 禁止访问

    • 404 not found 请求的资源不存在

    • 413 请求实体过大

    • 414 请求的 url 过长

    • 415 不支持的媒体类型

    5xx

    服务器错误

    • 500 服务器内部错误

    • 502 错误网关 服务器作为网关或代理,从上游服务器收到无效响应

    • 503 服务不可用 由于超载或者是维护无法提供服务,是暂时的状态 (响应中有一个 Retry-After 字段,提示客户端在多久之后重试)

    • 504 Gateway Timeout 服务器作为网关或者代理,但是没有即使从上游服务器收到响应

    • 505 HTTP 版本不支持 服务器不支持请求中使用的 http 协议的版本

    相关文章

      网友评论

          本文标题:常见的http状态码

          本文链接:https://www.haomeiwen.com/subject/agcllrtx.html