关于javascript:刘建HTTP常见的状态码

47次阅读

共计 1943 个字符,预计需要花费 5 分钟才能阅读完成。

HTTP 常见的状态码

Author: 刘建 (Abbott Liu)

Create: 2022/03/31

Update: 2022/03/31

HTTP 状态码示意客户端 HTTP 申请的返回后果、标记服务器端的解决是否失常或者是呈现的谬误,可能依据返回的状态码判断申请是否失去正确的解决很重要。
状态码由 3 位数字和起因短语组成,例如下图所示:

数字中的第一位指定了响应类别,后两位无分类,响应类别有一下 5 种:

类别 起因短语
1xxInformational(信息性状态码) 承受的申请正在解决
2xxSuccess(胜利状态码) 申请失常处理完毕
3xxRedirection(重定向) 须要进行附加操作以实现申请
4xxClient error(客户端谬误) 客户端申请出错,服务器无奈解决申请
5xxServer Error(服务器谬误) 服务器解决申请出错

各类别常见状态码:

2xx(3 种)

200 OK:示意从客户端发送给服务器的申请被失常解决并返回;

204 No Content:示意客户端发送给客户端的申请失去了胜利解决,但在返回的响应报文中不含实体的主体局部(没有资源能够返回);

206 Patial Content:示意客户端进行了范畴申请,并且服务器胜利执行了这部分的 GET 申请,响应报文中蕴含由 Content-Range 指定范畴的实体内容。

3xx(5 种)

301 Moved Permanently:永久性重定向,示意申请的资源被调配了新的 URL,之后应应用更改的 URL;

302 Found:临时性重定向,示意申请的资源被调配了新的 URL,心愿本次拜访应用新的 URL;

301 与 302 的区别:前者是永恒挪动,后者是长期挪动(之后可能还会更改 URL)

303 See Other:示意申请的资源被调配了新的 URL,应应用 GET 办法定向获取申请的资源;

302 与 303 的区别:后者明确示意客户端该当采纳 GET 形式获取资源

304 Not Modified:示意客户端发送附带条件(是指采纳 GET 办法的申请报文中蕴含 if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since 中任一首部)的申请时,服务器端容许拜访资源,然而申请为满足条件的状况下返回改状态码;

307 Temporary Redirect:长期重定向,与 303 有着雷同的含意,307 会遵循浏览器规范不会从 POST 变成 GET;(不同浏览器可能会呈现不同的状况);

4xx(4 种)

400 Bad Request:示意申请报文中存在语法错误;

401 Unauthorized:未经许可,须要通过 HTTP 认证;

403 Forbidden:服务器回绝该次访问(拜访权限呈现问题)

404 Not Found:示意服务器上无奈找到申请的资源,除此之外,也能够在服务器拒绝请求但不想给回绝起因时应用;

5xx(2 种)

500 Inter Server Error:示意服务器在执行申请时产生了谬误,也有可能是 web 利用存在的 bug 或某些长期的谬误时;

503 Server Unavailable:示意服务器临时处于超负载或正在进行停机保护,无奈解决申请;

前端性能优化 - 状态码 200 和 304

什么是 200 和 304

状态码 200:申请已胜利,申请所心愿的响应头或数据体将随此响应返回。即返回的数据为全量的数据,如果文件不通过 GZIP 压缩的话,文件是多大,则要有多大传输量。

状态码 304:如果客户端发送了一个带条件的 GET 申请且该申请已被容许,而文档的内容(自上次访问以来或者依据申请的条件)并没有扭转,则服务器该当返回这个状态码。即客户端和服务器端只须要传输很少的数据量来做文件的校验,如果文件没有批改过,则不须要返回全量的数据。

200 和 304 产生的条件

在客户端强制刷新,如 ctrl+f5 这种状况下,所有的缓存策略生效,服务器端都会返回 200;在客户端非强制刷新,如点击刷新按钮或按 f5 的状况下,服务器端会依据 request 头中:If-Modified-Since 字段的工夫与文件的理论批改工夫进行比拟,

如果批改工夫比 If-Modified-Since 工夫要新,则服务器会认为文件曾经批改过了,向客户端返回全量的数据,客户端本地的缓存生效,状态码为 200。

如果批改工夫比 If-Modified-Since 工夫要旧,则服务器会认为文件并未批改过,并且只会向客户端写回头文件,不返回文件数据,客户端应用本地缓存,状态码为 304。

根据上述以及图中所示,状态为 304 的申请要比状态为 200 的申请的数据量小很多,因为 304 只须要返回响应头,并不需要返回整个文件,所以只须要几字节就能够了,这样可能节俭大量的网络带宽,并缩小了页面的渲染工夫。

最初

看更多技术文章,请搜寻【刘建全栈技术】

正文完
 0