状态码 订阅
状态代码(也称作错误代码),指为服务器所接收每个请求(网页点击)分配的 3 位数代码。多数有效网页点击都有状态代码 200("正常")。"网页未找到"错误会生产 404 错误。某些常见的代码以粗体显示。 展开全文
状态代码(也称作错误代码),指为服务器所接收每个请求(网页点击)分配的 3 位数代码。多数有效网页点击都有状态代码 200("正常")。"网页未找到"错误会生产 404 错误。某些常见的代码以粗体显示。
信息
又    名
错误代码
中文名
状态代码
状态代码1xx(临时响应)
用于表示临时响应并需要请求者执行操作才能继续的状态代码。
收起全文
精华内容
下载资源
问答
  • HTTP 304状态码的详细讲解

    万次阅读 多人点赞 2017-04-12 10:33:55
    HTTP 304错误状态码的详细讲解 304缓存策略及实现 网页web常见状态码:200,301,302,304,400,401,404,500

     

    HTTP 304状态码的详细讲解


    304状态码或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应。

     

    整个请求响应过程如下:


    客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。服务端只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。
    对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。
    因此,对于动态页面做缓存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回 304 的时候已经做了一次数据库查询,但是可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。当这些缓存有效的时候,通过 Fiddler 或HttpWatch 查看一个请求会得到这样的结果:

     

     


    第一次访问 200
    按F5刷新(第二次访问) 304
    按Ctrl+F5强制刷新 200

    下面用Fiddler来查看上面的访问请求过程

    第一次(首次)访问 200

     

     

    第二次F5刷新访问 304


    请求的头信息里多了 “If-Modified-Since","If-None-Match" 

     

     

     


    第三次 按Ctrl+F5强制刷新 200

    同第一次,不贴图了

     

     

     

    为什么要使用条件请求

    当用户访问一个网页时,条件请求可以加速网页的打开时间(因为可以省去传输整个响应体的时间),但仍然会有网络延迟,因为浏览器还是得为每个资源生成一条条件请求,并且等到服务器返回HTTP/304响应,才能读取缓存来显示网页.更理想的情况是,服务器在响应上指定Cache-Control或Expires指令,这样客户端就能知道该资源的可用时间为多长,也就能跳过条件请求的步骤,直接使用缓存中的资源了.可是,即使服务器提供了这些信息,在下列情况下仍然需要使用条件请求:

    在超过服务器指定的过期时间之后
    如果用户执行了刷新操作的话
    在上节给出的图片中,请求头中包含了一个Pragma: no-cache.这是由于用户使用F5刷新了网页.如果用户按下了CTRL-F5 (有时称之为“强刷-hard refresh”),你会发现浏览器省略了If-Modified-Since和If-None-Match请求头,也就是无条件的请求页面中的每个资源.

    避免条件请求
    通常来说,缓存是个好东西.如果你想提高自己网站的访问速度,缓存是必须要考虑的.可是在调试的时候,有时候需要阻止缓存,这样才能确保你所访问到的资源是最新的.

    你也许会有个疑问:“如果不改变网站内容,我怎么才能让Fiddler不返回304而返回一个包含响应体的HTTP/200响应呢?”

    你可以在Fiddler中的网络会话(Web Sessions)列表中选择一条响应为HTTP/304的会话,然后按下U键.Fiddler将会无条件重发(Unconditionally reissue)这个请求.然后使用命compare命令对比一下两个请求有什么不同,对比结果如下,从中可以得知,Fiddler是通过省略条件请求头来实现无缓存请求的:

    Screenshot of Windiff of conditional and unconditional requests

    如果你想全局阻止HTTP/304响应,可以这么做:首先清除浏览器的缓存,可以使用Fiddler工具栏上的Clear Cache按钮(仅能清除Internet Explorer缓存),或者在浏览器上按CTRL+SHIFT+DELETE(所有浏览器都支持).在清除浏览器的缓存之后,回到Fiddler中,在菜单中选择Rules > Performance > Disable Caching选项,然后Fiddler就会:删除所有请求中的条件请求相同的请求头以及所有响应中的缓存时间相关的响应头.此外,还会在每个请求中添加Pragma: no-cache请求头,在每个响应中添加Cache-Control: no-cache响应头,阻止浏览器缓存这些资源.

     

     

     

     

     

    动态网页如何设置304

    以aspx页面为例,代码如下:

     

    var request = context.Request;
                var response = context.Response;
                if (request.Headers["If-Modified-Since"].NotNullOrEmpty() || request.Headers["If-None-Match"].NotNullOrEmpty())
                {
                    response.StatusCode = 304;
                    return;
                }
    //非304情况下的操作 略
    //设置缓存选项
                response.Clear();
                response.ClearContent();
                response.Headers["Last-Modified"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                response.Headers["ETag"] = id;//这里假设的是根据不同的id
                response.CacheControl = "private";
                response.ExpiresAbsolute = DateTime.Now.AddMonths(6);
               

     

    ETag是什么意思?

    HTTP 协议规格说明定义ETag为“被请求变量的实体值” 。 另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端
     

    asp.net web api的实现代码如下:

     

    // GET /images/001.png 
    [HttpGet] 
    public HttpResponseMessage Get(string filename) 
    { 
    	HttpResponseMessage response = new HttpResponseMessage();  
    
    	.....
    	string etag = string.Format("\"{0}\"", fileInfo.MD5); 
    	var tag = Request.Headers.IfNoneMatch.FirstOrDefault(); 
    	if (Request.Headers.IfModifiedSince.HasValue && tag != null && tag.Tag == etag) 
    	{ 
    		response.StatusCode = HttpStatusCode.NotModified; 
    	} 
    	else 
    	{ 
    		//dealcode ......
    		responseStream.Position = 0; 
    		response.StatusCode = fullContent ? HttpStatusCode.OK : HttpStatusCode.PartialContent; 
    		response.Content = new StreamContent(responseStream); 
    		response.Content.Headers.ContentType = new MediaTypeHeaderValue(fileInfo.ContentType); 
    		response.Headers.ETag = new EntityTagHeaderValue(etag); 
    		response.Headers.CacheControl = new CacheControlHeaderValue(); 
    		response.Headers.CacheControl.Public = true; 
    		response.Headers.CacheControl.MaxAge = TimeSpan.FromHours(480); 
    		response.Content.Headers.Expires = DateTimeOffset.Now.AddDays(20); 
    		response.Content.Headers.LastModified = fileInfo.UploadDate; 
    	} 
    	return response;
    }

     

    常见状态码:

    一些常见的状态码为:

    • 200 – 服务器成功返回网页
    • 404 – 请求的网页不存在
    • 503 – 服务器超时

    下面提供 HTTP 状态码的完整列表。点击链接可了解详情。您也可以访问 HTTP 状态码上的 W3C 页获取更多信息

    1xx(临时响应)
    表示临时响应并需要请求者继续执行操作的状态码。

    100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
    101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

    2xx (成功)

    表示成功处理了请求的状态码。

    200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件。
    201(已创建) 请求成功并且服务器创建了新的资源。
    202(已接受) 服务器已接受请求,但尚未处理。
    203(非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
    204(无内容) 服务器成功处理了请求,但没有返回任何内容。
    205(重置内容) 服务器成功处理了请求,但没有返回任何内容。与 204 响应不同,此响应要求请求者重置文档视图(例如,清除表单内容以输入新内容)。
    206(部分内容) 服务器成功处理了部分 GET 请求。

    3xx (重定向)
    要完成请求,需要进一步操作。通常,这些状态码用来重定向。Google 建议您在每次请求中使用重定向不要超过 5 次。您可以使用网站管理员工具查看一下 Googlebot 在抓取重定向网页时是否遇到问题。诊断下的网络抓取页列出了由于重定向错误导致 Googlebot 无法抓取的网址。

    300(多种选择) 针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
    301(永久移动) 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。您应使用此代码告诉 Googlebot 某个网页或网站已永久移动到新位置。
    302(临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。此代码与响应 GET 和 HEAD 请求的 301 代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉 Googlebot 某个网页或网站已经移动,因为 Googlebot 会继续抓取原有位置并编制索引。
    303(查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。对于除 HEAD 之外的所有请求,服务器会自动转到其他位置。
    304(未修改)

    自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。

    如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。服务器可以告诉 Googlebot 自从上次抓取后网页没有变更,进而节省带宽和开销。

     

    305(使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。
    307(临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。此代码与响应 GET 和 HEAD 请求的 <a href=answer.py?answer=>301</a> 代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉 Googlebot 某个页面或网站已经移动,因为 Googlebot 会继续抓取原有位置并编制索引。

    4xx(请求错误)
    这些状态码表示请求可能出错,妨碍了服务器的处理。

    400(错误请求) 服务器不理解请求的语法。
    401(未授权) 请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应。
    403(禁止) 服务器拒绝请求。如果您在 Googlebot 尝试抓取您网站上的有效网页时看到此状态码(您可以在 Google 网站管理员工具诊断下的网络抓取页面上看到此信息),可能是您的服务器或主机拒绝了 Googlebot 访问。
    404(未找到)

    服务器找不到请求的网页。例如,对于服务器上不存在的网页经常会返回此代码。

    如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具“诊断”标签的 robots.txt 页上看到此状态码,则这是正确的状态码。但是,如果您有 robots.txt 文件而又看到此状态码,则说明您的 robots.txt 文件可能命名错误或位于错误的位置(该文件应当位于顶级域,名为 robots.txt)。

    如果对于 Googlebot 抓取的网址看到此状态码(在”诊断”标签的 HTTP 错误页面上),则表示 Googlebot 跟随的可能是另一个页面的无效链接(是旧链接或输入有误的链接)。

    405(方法禁用) 禁用请求中指定的方法。
    406(不接受) 无法使用请求的内容特性响应请求的网页。
    407(需要代理授权) 此状态码与 <a href=answer.py?answer=35128>401(未授权)</a>类似,但指定请求者应当授权使用代理。如果服务器返回此响应,还表示请求者应当使用代理。
    408(请求超时) 服务器等候请求时发生超时。
    409(冲突) 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,以及两个请求的差异列表。
    410(已删除) 如果请求的资源已永久删除,服务器就会返回此响应。该代码与 404(未找到)代码类似,但在资源以前存在而现在不存在的情况下,有时会用来替代 404 代码。如果资源已永久移动,您应使用 301 指定资源的新位置。
    411(需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
    412(未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
    413(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
    414(请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
    415(不支持的媒体类型) 请求的格式不受请求页面的支持。
    416(请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态码。
    417(未满足期望值) 服务器未满足”期望”请求标头字段的要求。

    5xx(服务器错误)
    这些状态码表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

    500(服务器内部错误) 服务器遇到错误,无法完成请求。
    501(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
    502(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
    503(服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
    504(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
    505(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

     

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,分享一下给大家点击跳转到教程

     

    引用内容源址:

    http://www.jb51.net/article/43143.htm

    http://blog.sina.com.cn/s/blog_4c98b9600100jd4z.html

    http://www.cnblogs.com/shanyou/archive/2012/05/01/2477500.html

    --- end ---

     

    展开全文
  • 状态码

    千次阅读 2020-04-22 10:52:02
    1 如果喊完暗号之后,没有人开门,这时候隔壁老王出来了,对思彤说:”...如果我们的浏览器是将这个URL收藏了,那么当接收到301的状态码之后,浏览器应该会修改链接,修改为新的URL。当然3XX的状态码不只有301。 ...

    1

     

    如果喊完暗号之后,没有人开门,这时候隔壁老王出来了,对思彤说:”铁锤搬家了,搬到了如花大街200号~“

     

    这时候思彤就要再去如花大街200号送信,这个过程就叫做永久移动(Moved Permanently),对应的HTTP状态码是301。如果我们的浏览器是将这个URL收藏了,那么当接收到301的状态码之后,浏览器应该会修改链接,修改为新的URL。当然3XX的状态码不只有301。

     

    2

     

    如果铁锤妹妹并没有搬家,而是暂时去闺蜜家住了。

     

    那么这种情况叫做临时重定向,对应的状态码为302。还有个状态码和302个功能很相似。

     

     

    3

     

    如果隔壁王大爷说,铁锤去闺蜜家住了,但是如果不是女生不给开门~

     

    这种情况中,铁锤妹妹去闺蜜家了,所以需要临时重定向,但是这种情况和302的临时重定向有什么区别呢?区别就在于请求的方式不一样。这里男生送信就是POST请求方式,女生请求就是GET请求方式。这时候的状态码就是303,表示需要临时重定向,并且必须用GET方式请求。

     

    4

     

    当然还有很多的可能性:比如说铁锤妹妹根本就没住在这~

     

    这种情况就叫做找不到系统资源,对应的HTTP状态码是大名鼎鼎的404。4XX家族还有很多状态

     

     

    5

     

    还有一些很有趣的情况,比如思彤到了铁锤妹妹家,喊错了暗号,喊成了:“天王盖地鼠~”,这时候铁锤妹妹听到这个暗号感觉外面有个神经病,这时候也不会给开门,直接让思彤走开~

     

    这种情况就是我们的协议格式出现了问题,这种情况下返回的状态码是:401

     

    6

     

    再比如,思彤到了铁锤妹妹家,喊出了口号:“天王盖地虎!”,但是今天铁锤妹妹心情不好,就是不开门,让思彤走开,无论你怎么说好话也叫不开门~(女生的心思你难猜~)

     

    这种情况就相当于是服务器拒绝了请求,HTTP状态码为:403。但是这个状态很有趣,这个状态是可以在返回体中给出拒绝的原因,但是通常情况下,这个状态码是在服务器不想给出原因的情况下使用的。所以这种情况很符合一个女生生气的情况~必然是有原因的,但是不会轻易告诉你~

     

    7

     

     我们再假设,思彤到了铁锤妹妹家,但是铁锤妹妹正在打电话,没有空理思彤~

     

    由于我们之前设定好的,邓哥相当于浏览器,铁锤妹妹相当于服务器,所以这个时候的情况就是服务器繁忙。服务器繁忙对应的状态码是503。一般在服务器负载时会返回503状态码。

     

     

    8

     

    思彤到了铁锤妹妹家,率先说出暗号:“天王盖地虎~”。铁锤妹妹答道:“邓哥一米五~”思彤:“宝塔镇河妖~”铁锤妹妹:“邓哥长不高~”对上暗号之后,思彤将信递给了铁锤妹妹~(思彤终于可以把信交给铁锤妹妹了~)但是这个时候出了个问题~铁锤妹妹不识字。。。这样就没法继续下去了。。。

     

    前面对暗号的过程,就好像是解析HTTP协议的过程。后面读信件的过程就相当于是获取出数据之后进行处理的过程。但是由于铁锤妹妹不识字没法正常的读信。这就像是服务器程序出现了错误,在读取信件的过程中发生了错误。所以这个时候报出的HTTP状态码为:500

     

    9

     

    我们假设思彤和铁锤妹妹对上了暗号,铁锤妹妹也认识字~铁锤妹妹仔读了这封信之后,给邓哥回了一封信。信的内容只有四个字:“做梦去吧~”。(经历了这么多的磨难,终于得到铁锤妹妹的回信了~)

     

    当浏览器要发送的内容被服务器端接收并处理之后,得到服务器端返回的消息。铁锤妹妹的回信就相当于是服务器端返回的信息。这样的一个来回就完成了一次HTTP请求。这个时候返回的状态码为:200

     

     

    10

     

     当思彤完成第一次送信之后,邓哥看到了铁锤妹妹的回信,觉得好桑心~于是决定再写一封信给铁锤妹妹。当思彤又一次送信给铁锤妹妹的时候,这次铁锤妹妹并没有直接回信,而是告诉思彤,还让邓哥看之前的那封信就行~(铁锤妹妹已经懒得写了~)

     

    当浏览器多次访问同一个资源的时候,如果第一次请求的结果还在缓存,还没有过期,那么在此访问这个资源的时候,为了减少网络传输的消耗,如果这个资源没有被修改过,则可以让浏览器继续使用之前缓存的内容,这样就不用再将资源发送一遍了,所以就减少了很多的网络开销。这个时候服务器返回的状态码为:304。虽然这个状态码也是3XX系列的,但是我们可以发现这个状态码看似和重定向没有什么关系~但是我们可以理解为,服务器要求浏览器将请求重定向到浏览器本身。

     

    以上的十个状态是HTTP状态码中最常见的一些状态码,也是我们Web前端初学者必须要记住的状态码。当然HTTP协议的状态码远远不止这些。我们之后讲HTTP协议的文章中,会更详细的为大家介绍HTTP协议。

     

    摘抄至渡一教育(微信公众号 腾讯课堂都可)

    展开全文
  • http常见状态码

    万次阅读 2020-06-25 09:36:22
    # 信息性状态码 100: ('continue',), 101: ('switching_protocols',), 102: ('processing',), 103: ('checkpoint',), 122: ('uri_too_long', 'request_uri_too_long'), # 成功状态码 200: ('ok', 'okay', 'all_ok',...
    # 信息性状态码
    100: ('continue',),
    101: ('switching_protocols',),
    102: ('processing',),
    103: ('checkpoint',),
    122: ('uri_too_long', 'request_uri_too_long'),
    
    # 成功状态码
    200: ('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '✓'),
    201: ('created',),
    202: ('accepted',),
    203: ('non_authoritative_info', 'non_authoritative_information'),
    204: ('no_content',),
    205: ('reset_content', 'reset'),
    206: ('partial_content', 'partial'),
    207: ('multi_status', 'multiple_status', 'multi_stati', 'multiple_stati'),
    208: ('already_reported',),
    226: ('im_used',),
    
    # 重定向状态码
    300: ('multiple_choices',),
    301: ('moved_permanently', 'moved', '\\o-'),
    302: ('found',),
    303: ('see_other', 'other'),
    304: ('not_modified',),
    305: ('use_proxy',),
    306: ('switch_proxy',),
    307: ('temporary_redirect', 'temporary_moved', 'temporary'),
    308: ('permanent_redirect',
          'resume_incomplete', 'resume',), # These 2 to be removed in 3.0
    
    # 客户端错误状态码
    400: ('bad_request', 'bad'),
    401: ('unauthorized',),
    402: ('payment_required', 'payment'),
    403: ('forbidden',),
    404: ('not_found', '-o-'),
    405: ('method_not_allowed', 'not_allowed'),
    406: ('not_acceptable',),
    407: ('proxy_authentication_required', 'proxy_auth', 'proxy_authentication'),
    408: ('request_timeout', 'timeout'),
    409: ('conflict',),
    410: ('gone',),
    411: ('length_required',),
    412: ('precondition_failed', 'precondition'),
    413: ('request_entity_too_large',),
    414: ('request_uri_too_large',),
    415: ('unsupported_media_type', 'unsupported_media', 'media_type'),
    416: ('requested_range_not_satisfiable', 'requested_range', 'range_not_satisfiable'),
    417: ('expectation_failed',),
    418: ('im_a_teapot', 'teapot', 'i_am_a_teapot'),
    421: ('misdirected_request',),
    422: ('unprocessable_entity', 'unprocessable'),
    423: ('locked',),
    424: ('failed_dependency', 'dependency'),
    425: ('unordered_collection', 'unordered'),
    426: ('upgrade_required', 'upgrade'),
    428: ('precondition_required', 'precondition'),
    429: ('too_many_requests', 'too_many'),
    431: ('header_fields_too_large', 'fields_too_large'),
    444: ('no_response', 'none'),
    449: ('retry_with', 'retry'),
    450: ('blocked_by_windows_parental_controls', 'parental_controls'),
    451: ('unavailable_for_legal_reasons', 'legal_reasons'),
    499: ('client_closed_request',),
    
    # 服务端错误状态码
    500: ('internal_server_error', 'server_error', '/o\\', '✗'),
    501: ('not_implemented',),
    502: ('bad_gateway',),
    503: ('service_unavailable', 'unavailable'),
    504: ('gateway_timeout',),
    505: ('http_version_not_supported', 'http_version'),
    506: ('variant_also_negotiates',),
    507: ('insufficient_storage',),
    509: ('bandwidth_limit_exceeded', 'bandwidth'),
    510: ('not_extended',),
    511: ('network_authentication_required', 'network_auth', 'network_authentication')
    
    
    展开全文
  • 面试官问你HTTP状态码,你敢答吗?

    万次阅读 多人点赞 2020-04-03 17:02:16
    听说面试会问HTTP状态码,相比那些神仙操作,这个记忆性的知识点准备起来比较容易,不应该成为丢分项。

    前言

    HTTP状态码的作用是告知客户端,从服务器端返回的请求结果。听说面试会问HTTP状态码,相比那些神仙操作,这个记忆性的知识点准备起来比较容易,不应该成为丢分项。

    本文参考了网上的资料列举了常见的HTTP状态码,如果接下来面试或者看面经有遇到的这里没有的状态码话,我还会及时更新。

    HTTP状态码分类

    HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP 状态码共分为以下 5 种类型:

    类别 原因短语
    1xx Information(信息状态码) 接受的请求正在处理
    2xx Success(成功状态码) 请求正常处理完毕
    3xx Redirection(重定向状态码) 需要进行附加操作以完成请求
    4xx Client Error(客户端错误状态码) 服务器无法处理请求
    5xx Server Error(服务端错误状态码) 服务器处理请求出错

    2XX 请求成功

    2XX 的响应结果表明请求被正常处理了。

    200 OK

    200表示请求在服务器端被正常处理了。在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。

    204 No Content

    204表示服务器接收的请求已经成功处理,但是在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。当浏览器在发送请求后接收到204响应,它的显示页面不会发生更新。

    通常应用在只需要客户端往服务端发送信息,而服务端不需要发送新信息的情况下使用

    206 Partial Content

    206表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文内包含由Content-Range指定范围的实体内容。

    3XX 重定向

    3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。

    301 Moved Permanently

    永久重定向,301状态码表示请求的资源已经分配了新的URI,以后请求该资源应该访问新的URI。也就是说,如果已经把资源对应的 URI保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。

    302 Found

    临时重定向,302表示请求的资源已经被分配了新的URI,希望客户端本次能使用新的URI访问。和301不同的是,这种资源的URI变更是临时的额,而不是永久的,因此不用去更新书签。

    303 See Other

    该状态码和 302 有着异曲同工之妙,表示由于请求对应的资源存在着另一个 URI,应使用 GET方法定向获取请求的资源。

    如果浏览器原本是用POST方法去请求服务器,收到303状态码之后,会改用GET并访问资源新的URI。

    304 Not Modified

    304 状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。304 状态码返回时,不包含任何响应的主体部分。304 虽然被划分在 3XX 类别中,但是和重定向没有关系。

    PS:附带条件的请求是指采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任一首部。

    307 Temporary Redirect

    临时重定向,和 302 Found 状态码有相同的含义。区别在于 307 不会强制浏览器将 POST 方法改为 GET 方法,而是遵循浏览器自身的标准。

    4XX 客户端错误

    4XX 的响应结果表明客户端是发生错误的原因所在。

    400 Bad Request

    400 状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像 200 OK 一样对待该状态码。

    401 Unauthorized

    401 状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。第一次收到 401 状态码表示需要进行用户认证,第二次再收到 401 状态码说明用户认证失败。

    403 Forbidden

    403 状态码表明对请求资源的访问被服务器拒绝了,当未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源 IP 地址试图访问)等列举的情况都可能发生 403 。

    404 Not Found

    404 是我们最常见的状态码之一,它表示服务器上无法找到请求资源。此外,也可能是服务器端在拒绝请求且不想说明原因的时候使用。

    5XX 服务器错误

    5XX 的响应结果表明服务器本身发生错误。

    500 Internal Server Error

    500 状态码表明服务器端在执行请求时发生了错误。也有可能是 Web应用存在的 bug 或某些临时的故障。

    503 Service Unavailable

    503 状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

    参考资料

    1. HTTP状态码| 菜鸟教程
    2. 《图解HTTP》

    那朵无名的花,真的会开吗?

    展开全文
  • 服务器返回的14种常见HTTP状态码

    万次阅读 多人点赞 2016-11-13 11:01:58
    服务器向我们返回状态码 状态码就是告诉我们服务器响应的状态 通过它,我们就可以知道当前请求是成功了还是出现了什么问题 状态码是由3位数字和原因短语组成的(比如最常见的:200 OK) 其中第一位数字表示响应...
  • HTTP状态码分类(常用HTTP状态码和HTTP状态码大全)

    千次阅读 多人点赞 2018-03-07 18:07:30
    http状态码有什么用?http状态码的核心作用是Web Server服务器用来告诉客户端,当前的网页请求发生了什么事,或者说当前Web服务器的响应状态。所以HTTP状态码常用来判断和分析当前Web服务器的运行状况。作为一个...
  • 状态码
  • Http状态码

    万次阅读 2020-04-14 13:21:16
    状态码 请求方式 描述 200 GET, PUT 操作成功 201 POST 对象创建成功 202 POST, PUT, DELETE 请求已经被接受 204 DELETE, PUT 操作已经执行成功,但是没有返回数据 301 GET, 资源已被移除 303 GET ...
  • HTTP状态码

    万次阅读 2019-07-12 11:22:32
    根据HTTP返回状态码,来判断api状态 以下是中英文HTTP返回状态码的对照信息。 1、信息 - 100 Continue - 101 Switching Protocols - 102 Processing 2、成功 - 200 OK - 201 Created - 202 Accepted - 203 .....
  • 常见状态码及其意义

    万次阅读 2019-07-14 21:13:36
    在开发过程中前端向后端请求数据,很多时候除了200以外对其他的状态码不是很了解,今天我们就一起来学习一下: 200 - - 请求成功。 304 - - 304状态码或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的...
  • HTTP状态码全部说明

    万次阅读 多人点赞 2020-04-22 15:48:06
    HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。 HTTP...
  • http status状态码,readyState状态码

    千次阅读 2018-06-01 14:09:28
    readyState状态码0:请求未初始化1:服务器已建立连接2:请求已接收3:请求处理中4:请求已完成,且响应已就绪作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一...
  • http状态码401

    万次阅读 2018-05-19 16:23:17
    浏览器访问网站如果出现401 这个错误是未经授权. 其他常见的http状态码 1XX系列: 指定客户端应相应的某些动作,代表请求已被接受,需要继续处理。...这系列中最常见的有200、201状态码。 ...
  • 网络状态码(HTTP状态码

    万次阅读 2017-05-25 21:32:00
    状态码的第一个数字代表了响应的五种状态之一。 1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向...
  • 图解HTTP状态码

    千次阅读 2020-11-02 16:02:15
    状态码的作用: 状态码可以在客户端向服务器端发送请求时,描述返回的请求结果。通过状态码,用户也可以知道服务器是正常处理了请求,还是出现了错误。 状态码的类别: 只要遵守状态码类别的定义,即使改变RFC2616...
  • HTTP常见状态码(14种)

    万次阅读 多人点赞 2019-01-02 17:24:56
    HTTP状态码表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常或者是出现的错误,能够根据返回的状态码判断请求是否得到正确的处理很重要。 状态码由3位数字和原因短语组成,例如下图所示: 数字中的第...
  • 204 No Content:服务器成功处理了请求,但是没有返回任何内容...大概分5类,第1位定义了状态码类型。具体分类如下: 分类 分类描述 1XX 信息,服务器收到请求,需要请求者继续执行操作 2XX 成功,操作被成功
  • 作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手。好了,下面就让我们来了解一下比较常见的HTTP状态码吧! ...
  • HTTP状态码汇总

    千次阅读 2020-03-13 18:52:53
    1开头:信息状态码 2开头:成功状态码 3开头:重定向状态码 4开头:客户端错误状态码 5开头:服务端错误状态码 1XX:信息状态码 状态码 含义 描述 100 继续 初始的请求已经接受,请客户端继续发送剩余部分 ...
  • http状态码解释

    千次阅读 2020-01-18 09:35:05
    之前我们讲了python的一些爬虫库的使用,有的同学可能还不太明白http状态码的意思,比如200,301等等。 这次咋们就说说,解释下http status code。 本文内容: 常见的http状态码 进阶学习 常见的http状态码 我们也...
  • nginx状态码

    千次阅读 2016-11-18 16:53:56
    nginx状态码
  • 常见的HTTP状态码

    万次阅读 2019-04-19 15:10:51
    常见的HTTP状态码说明 作为一个IT小民工对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手。好了,下面就让我们来了解一下比较常见的...
  • HTTP响应状态码

    千次阅读 2020-09-13 07:02:21
    HTTP响应状态码 (HTTP Status Code),也属于HTTP协议的一部分,用来标识响应的状态。响应状态码会随着响应消息一起被发送至...常见响应状态码,2**成功响应相关;3**重定向相关;4**客户端响应相关;5**服务端响应相关
  • 状态码定义

    千次阅读 2017-11-24 12:00:33
    状态码定义 文档地址:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 下面描述了每个状态代码,包括可以遵循的方法的描述以及响应中所需的任何元信息。 10.1信息1xx 这类状态码表示临时响应,仅由...
  • 302状态码

    万次阅读 2019-07-01 16:47:54
    原文:... 前言 ... 正文  302状态码应用的典型场景是服务器页面路径的重新规划, 比如一个portal页面,换了新的域名,但是老的域名地址还有很多用户在使...
  • 巧记HTTP状态码

    万次阅读 2019-04-20 00:14:20
    大家都知道http状态码从1xx到5xx 总共有好几百个要想记住这些状态码并不是个容易事,本人每天看一次状态码,尝试各种背,发现这样并没有什么卵用,于是开启了变相图文理解记忆法方便自己记忆。 有一天我们去给猫村...
  • scrapy 爬虫报415状态码和400状态码

    千次阅读 2020-04-28 09:25:04
    返回415状态码:请求包未加header 请求包 这是一个POST请求并需要提交表单数据,所以我用了scrapy.FormRequest构造数据包,具体spider代码: class yilicai(Spider): name = "yilicai" urls = ...
  • HTTP 状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。 HTTP...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,586
精华内容 22,234
关键字:

状态码