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只须要返回响应头,并不需要返回整个文件,所以只须要几字节就能够了,这样可能节俭大量的网络带宽,并缩小了页面的渲染工夫。

最初

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