【修真院web小课堂】http状态码有那些?分别代表是什么意思?

         【JS-5】 
             http状态码有那些?分别代表是什么意思? 
             分享人:陈星宇 
         
         
             目录 
             1.背景介绍 
             2.知识剖析 
             3.常见问题 
             4.解决方案 
             5.编码实战 
             6.扩展思考 
             7.参考文献 
             8.更多讨论 
         
         
             一.背景介绍 
         
         
             http状态码是什么?有什么用? 
             HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。 
             http状态码的核心作用是Web Server服务器用来告诉客户端,当前的网页请求发生了什么事,或者说当前Web服务器的响应状态。所以HTTP状态码常用来判断和分析当前Web服务器的运行状况。 我们作为程序猿,需要对这些状态码,尽可能了解的更多一些,将这些状态码一一弄清楚,工作中遇到的时候,能够明白问题出在哪里,针对性的解决问题 
         
         
            二.知识剖析 
         
         
             
                HTTP状态码分类 
               
             【修真院web小课堂】http状态码有那些?分别代表是什么意思?
             
                 各个类别的详细介绍 
             
             
                 1xx - 信息提示 
              
             【修真院web小课堂】http状态码有那些?分别代表是什么意思?
             
                 2xx -(请求成功)表示成功处理了请求的状态代码 
               
             【修真院web小课堂】http状态码有那些?分别代表是什么意思?
             
                 3xx - (请求被重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。 
               
             【修真院web小课堂】http状态码有那些?分别代表是什么意思?
             
                 4xx - (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。 
                
             
             【修真院web小课堂】http状态码有那些?分别代表是什么意思?【修真院web小课堂】http状态码有那些?分别代表是什么意思?
               
             
             
                 5xx -(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。 
               
             【修真院web小课堂】http状态码有那些?分别代表是什么意思?
         
         
            三.常见的问题: 
         
         

             1.常见的http状态码有哪些 ?

              2.http状态码301和302都是重定向,有什么区别

                3.有什么状态码是和缓存有关系的?

       

         
             四.解决问题 
         
         
             1.常见的http状态码: 
                200  OK 服务器成功处理了请求(这个是我们见到最多的) 

                301/302  Moved Permanently(重定向)请求的URL已移走。 Response中应该包含一个Location URL, 说明资源现在所处的位置 

                 404  Not Found(页面丢失)未找到资源 

                501  Internal Server Error服务器遇到一个错误,使其无法对请求提供服务

          2.http状态码301和302有什么区别

               官方的比较简洁的说明:

                  301 redirect: 301 代表永久性转移(Permanently Moved)

                  302 redirect: 302 代表暂时性转移(Temporarily Moved )

              详细来说,301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)——这是它们的共同点。他们的不同在于。301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址 


         3.有什么状态码是和缓存有关系的?

                   

200 OK (from cache)  是浏览器没有跟服务器确认,直接用了浏览器缓存;

304 Not Modified 是浏览器和服务器多确认了一次缓存有效性,再用的缓存。

    200(from cache) 是速度最快的,因为不需要访问远程服务器,直 接使用本地缓存.304 的过程是, 先请求服务器, 然后服务器告诉我们这个资源

    没变, 浏览器再使用本地缓存.

         
         
             5.编码实战 
         
         
             6.扩展思考 
         
         
             http状态码在哪里查看? 
         
         
             1.浏览器的F12调试(或者右键检查),network查看Status.再刷新页面就能看到了 
          
         【修真院web小课堂】http状态码有那些?分别代表是什么意思?
         
             2.各种在线输入网址查询HTTP状态的工具:
                比如:站长工具,http状态查询:http://tool.chinaz.com/pagestatus/
                其他的应该还有很多,可以自己去搜索一下。
             


         
         
             7.参考文献 
         
         
             参考一:http状态码是什么,有什么用,在哪里查看,分别代表什么意思?
             参考二:菜鸟教程:HTTP教程-HTTP状态码