http状态码

Posted xiaoshuai666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http状态码相关的知识,希望对你有一定的参考价值。

100-199——信息性状态码

状态码

原因短语

含 义

 

100

Continue

说明收到了请求的初始部分,请客户端继续。发送了这个状态码之后,服务器在收到诮求之后必须进行响应。

101

Switching Protocols

说明服务器正在根据客户端的指定,将协议切换成Update首部所列的协议

  100 Continue状态码尤其让人糊涂。它的目的是对这样的情况进行优化:HTTP客户端应用程序有一个实体的主体部分要发送给服务器,但希望在发送之前査看一下服务器是否会接受这个实体。

1.客户端与100 Continue

  如果客户端在向服务器发送一个实体,并且愿意在发送实体之前等待100 Continue 响应,那么,客户端就要发送一个携带了值为100 ContinueExpect请求首部。如果客户端没有发送实体,就不应该发送100 Continue Expect首部。

  发送了值为100 ContinueExpect首部的客户端不应该永远在那儿等待服务器发送100 Continue响应。超时一定时间之后,客户端应该直接将实体发送出去。

2. 服务器与100 Continue

  如果服务器收到了--条带有值为100 ContinueExpect首部的请求,它会用100 Continue响应或一条错误码来进行响应。

3. 代理与100 Continue

  如果代理从客户端收到了一条带有100 Continue期望的请求,它需要做几件事情。如果代理知道下一跳服务器是HTTP/1.1兼容的,或者并不知道下一跳服务器与哪个版本兼容,它都应该将Expect首部放在请求中向下转发。如果它知道下一跳服务器只能与HTTP/1.1之前的版本兼容,就应该以417 Expectation Failed 错误进行响应。

200-299——成功状态码

状态码

原因短语

含 义

200

OK

请求没问题,实体的主体部分包含了所请求的资源

201

Created

用于创逮服务器对象的请求(比如,PUT)。响应的实体主体部分中 应该包含各种引用了已创建的资源的URL, Location首部包含的则是最具体的引用。服务器必须在发送这个状态码之前创建好对象。

202

Accepted

请求已被接受,但服务器还未对其执行任何动作。不能保证服务器会完成这个请求,这只是意味着接受请求时,它看起来是有效的。服务器应该在实体的主体部分包含对请求状态的描述,或许还应该有 对请求完成时间的估计(或者包含一个指针,指向可以获取此信息的位置

203

Non-

Authoritative Information

实体首部包含的佶息不是来自于源端服务器,而是来自资源的一份副本。如果中间节点上有一份资源副本,但无法或者没有对它所发送的与资源有关的元信息(首部)进行验证.就会出现这种情况。

204

No Content

响应报文中包含若干酋部和一个状态行,但没有实体的主体部分。主 要用于在浏览器不转为显示新文档的情况下,对其进行更新(比如刷新一个表单页面)

205

Reset Content

另一个主要用于浏览器的代码,负贵告知浏览器清除当前页面中的所有html表单元素

206

Partial Content

成功执行了一个部分或Range (范围)请求。客户端可以通过一些特殊的首部来获取部分或某个范围内的文档----这个状态码就说明范围请求成功了。

206响应中必须包含 Content-RangeDate以及ETagContent- Location 首部

300 - 399——重定向状态码

  重定向状态码要么告知客户端使用替代位置来访问他们所感兴趣的资源,要么就提供一个替代的响应而不是资源的内容。如果资源已被移动,可发送一个重定向状态码和一个可选的Location首部来告知客户端资源已被移走,以及现在可以在哪里找到它。

状态码

原因短语

含 义

 

300

Multiple Choices

客户端请求一个实际指向多个资源的URL时会返回这个状态码。有多个版本可用时,客户端需要沟通解决。服务器可以在Location首部包含首选URL

301

Moved Permanently

在请求的URL已被移除时使用。响应的Location首部中应该包含资源现在所处的URL

302

Found

301状态码类似,但是,客户端应该使用Location首部给出的URL来临时定位资源。将来的请求仍应使用老的URL

303

See Other

告知客户端应该用另一个URL来获取资源。新的URL位于响应报文的Location首部。其主要目的是允许POST清求的响应将客户端定向到某个资源上去

304

Not Modified

 

客户端可以通过所包含的请求首部,使其请求变成有条件的。如果客户端发起了一个条件GET请求,而最近资源未被修改的话,就可以用这个状态码来说明资源未被修改。带有这个状态码的响应不应该包含实体的主体部分

305

Use Proxy

 

用来说明必须通过一个代理来访问资源,代理的位置由Location 首部给出。很重要的一点是,客户端是相对某个特定资源来解析这条响应的,不能假定所有请求,甚至所有对持有所请求资源的服务器的请求都通过这个代理进行。如果客户端错误地让代理介入了某条请求,可能会引发破坏性的行为,而且会造成安全漏洞

306

(未使用)

 

307

Temporary Redirect

301状态码类似;但客户端应该使用Location首部给出的URL 来临时定位资源。将来的请求应该使用老的URL

  302303307状态码之间存在一些交叉。这些状态码的用法有着细微的差别,大部分差别都源干HTTP/1.0HTTP/1.1应用程序对这些状态码处理方式的不同。

HTTP/1.0客户端发起一个POST请求,并在响应中收到302重定向状态码时,它会接受Location首部的重定向URL,并向那个URL发起一个GET请求(而不会像原始请求中那样发起POST请求)。

  问题出在HTTP/1.1HTTP/1.1规范使用303状态码来实现同样的行为(服务器发送303状态码来重定向客户端的POST请求,在它后面跟上一个GET请求)

  为了避开这个问题,HTTP/1.1规范指出,对于HTTP/1.1客户端,用307状态码取代302状态码来进行临时重定向。这样服务器就可以将302状态码保留起来,为HTTP/1.0客户端使用了。

400 - 499——客户端错误状态码

状态码

原因短语

含 义

400

Bad Request

用干告知客户端它发送了一个错误的请求

401

Unauthorized

与适当的首部一同返回,在这些首部中请求客户端在获取对资源 的访问权之前,对自己进行认证

402

Payment Required

现在这个状态码还未使用,但已经被保留,以作未来之用

403

Forbidden

用干说明请求被服务器拒绝了,如果服务器想说明为什么拒绝请 求,可以包含实体的主体部分来对原因进行描述。但这个状态码通 常是在服务器不想说明拒绝原因的时候使用的

404

Not Found

用于说明服务器无法找到所请求的URL。通常会包含一个实体,以 便客户端应用程序显示给用户看

405

Method Not Allowed

发起的请求中带有所请求的URL不支持的方法时,使用此状态码。应该在响应中包含Allow首部,以告知客户端对所请求的资源可以使用哪些方法

406

Not Acceptable

客户端可以指定参数来说明它们愿意接收什么类型的实体。服务器没有与客户端可接受的URL相匹配的资源时,使用此代码。通常,服务器会包含一些首部,以便客户端弄淸楚为什么请求无法满足。

407

Proxy Authentication Required

401状态码类似,怛用于要求对资源进行认证的代理服务器

408

Request Timeout

如果客户端完成请求所花的时间太长,服务器可以回送此状态码,并关闭连接。超时时长随服务器的不同有所不同,但通常对所有的合法请求来说,都是够长的

409

Conflict

用于说明请求可能在资源上引发的一些冲突。服务器担心请求会引 发冲突时,可以发送此状态码。响应中应该包含描述冲突的主体

410

Gone

与404类似,只是服务器曾经拥有过此资源。主要用于Web站点的维护,这样服务器的管理者就可以在资源被移除的情况下通知客户端了

411

Length Required

服务器要求在请求报文中包含Content-Length首部时使用。

412

Precondition Failed

客户端发起了条件请求,且其中一个条件失敗了的时候使用。客户 端包含了 Expect首部时发起的就是条件请求。

413

Request Entity Too Large

客户端发送的实体主体部分比服务器能够或者希望处理的要大时, 使用此状态码

414

Request URI Too Long

客户端所发请求中的请求URL比服务器能够或者希望处理的要长时,使用此状态码

415

Unsupported Media Type

服务器无法理解或无法支持客户端所发实体的内容类型时,使用此状态码

416

Requested Range Not

Satisflabie

请求报文所请求的是指定资源的某个范围,而此范围无效或无法满足时,使用此状态码

417

Expectation Failed

请求的Expect请求首部包含了一个期望,但服务器无法满足此期 望时,使用此状态码。

 500--599 服务器错误状态码

状态码

原因短语

含 义

500

Internal Server Error

服务器遇到一个妨碍它为请求提供服务的错误时,

501

Not Implemented

客户端发起的请求超出服务器的能力范围(比如, 支持的请求方法)时,使用此状态码

502

Bad Gateway

作为代理或网关使用的服务器从请求响应链的下一条链路上收到了 一条伪响应(比如,它无法连接到其父网关)时,使用此状态码

503

Service Unavailable

用来说明服务器现在无法为请求提供服务,但将来可以。如果服务器知道什么时候资源会变为可用的,可以在响应中包含一个Retry- After首部。

504

Gateway Timeout

与状态码408类似,只是这里的响应来自一个网关或代理,它们在 等待另一服务器对其请求进行响应时超时了

505

HTTP Version Not

Supported

服务器收到的请求使用了它无法或不思支持的协议版本时,使用此 状态码。有些服务器应用程序会选择不支持协议的早期版本

 

以上是关于http状态码的主要内容,如果未能解决你的问题,请参考以下文章

http状态码分类以及常见状态码分析

HTTP状态码

Http状态码:简单获取http状态码

HTTP状态码404是啥意思?

http协议的状态码 200301304404502 HTTP状态码解释

http协议状态码及其意义