常见的HTTPRequest状态码说明(详细版)
前⾔
作为⼀个互联⽹开发⼈员对于⼀些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码⼀⼀弄清楚,⼯作中遇到的各种问题才能够处理的得⼼应⼿。好了,下⾯就让我们来了解⼀下⽐较常见的HTTP状态码吧!
成功类
2开头 (请求成功)表⽰成功处理了请求的状态代码。
200 (成功) 服务器已成功处理了请求。 通常,这表⽰服务器提供了请求的⽹页。
201 (已创建) 请求成功并且服务器创建了新的资源。
202 (已接受) 服务器已接受请求,但尚未处理。
203 (⾮授权信息) 服务器已成功处理了请求,但返回的信息可能来⾃另⼀来源。
204 (⽆内容) 服务器成功处理了请求,但没有返回任何内容。
205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
206 (部分内容) 服务器成功处理了部分 GET 请求。
重定向类
3开头 (请求被重定向)表⽰要完成请求,需要进⼀步操作。 通常,这些状态代码⽤来重定向。
300 (多种选择) 针对请求,服务器可执⾏多种操作。 服务器可根据请求者 (user agent) 选择⼀项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的⽹页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会⾃动将请求者转到新位置。
302 (临时移动) 服务器⽬前从不同位置的⽹页响应请求,但请求者应继续使⽤原有位置来进⾏以后的请求。
303 (查看其他位置) 请求者应当对不同的位置使⽤单独的 GET 请求来检索响应时,服务器返回此代码。
304 (未修改) ⾃从上次请求后,请求的⽹页未修改过。 服务器返回此响应时,不会返回⽹页内容。
305 (使⽤代理) 请求者只能使⽤代理访问请求的⽹页。 如果服务器返回此响应,还表⽰请求者应使⽤代理。
307 (临时重定向) 服务器⽬前从不同位置的⽹页响应请求,但请求者应继续使⽤原有位置来进⾏以后的请求。
请求错误类
4开头 (请求错误)这些状态代码表⽰请求可能出错,妨碍了服务器的处理。
400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求⾝份验证。 对于需要登录的⽹页,服务器可能返回此响应。
403 (禁⽌) 服务器拒绝请求。
404 (未到) 服务器不到请求的⽹页。
405 (⽅法禁⽤) 禁⽤请求中指定的⽅法。
406 (不接受) ⽆法使⽤请求的内容特性响应请求的⽹页。
407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使⽤代理。
408 (请求超时) 服务器等候请求时发⽣超时。
409 (冲突) 服务器在完成请求时发⽣冲突。 服务器必须在响应中包含有关冲突的信息。
410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412 (未满⾜前提条件) 服务器未满⾜请求者在请求中设置的其中⼀个前提条件。
413 (请求实体过⼤) 服务器⽆法处理请求,因为请求实体过⼤,超出服务器的处理能⼒。
414 (请求的 URI 过长) 请求的 URI(通常为⽹址)过长,服务器⽆法处理。
415 (不⽀持的媒体类型) 请求的格式不受请求页⾯的⽀持。
416 (请求范围不符合要求) 如果页⾯⽆法提供请求的范围,则服务器会返回此状态代码。
417 (未满⾜期望值) 服务器未满⾜"期望"请求标头字段的要求。
服务器错误类
5开头(服务器错误)这些状态代码表⽰服务器在尝试处理请求时发⽣内部错误。 这些错误可能是服务器本⾝的错误,⽽不是请求出错。
500 (服务器内部错误) 服务器遇到错误,⽆法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器⽆法识别请求⽅法时可能会返回此代码。
502 (错误⽹关) 服务器作为⽹关或代理,从上游服务器收到⽆效响应。
503 (服务不可⽤) 服务器⽬前⽆法使⽤(由于超载或停机维护)。 通常,这只是暂时状态。
504 (⽹关超时) 服务器作为⽹关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受⽀持) 服务器不⽀持请求中所⽤的 HTTP 协议版本。
其他
1xx - 信息提⽰
这些状态代码表⽰临时的响应。客户端在收到常规响应之前,应准备接收⼀个或多个 1xx 响应。
· 100 - Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)
· 101 - Switching Protocols 服务器将遵从客户的请求转换到另外⼀种协议(HTTP 1.1新)
2xx - 成功
这类状态代码表明服务器成功地接受了客户端请求。
· 200 - OK ⼀切正常,对GET和POST请求的应答⽂档跟在后⾯。
· 201 - Created 服务器已经创建了⽂档,Location头给出了它的URL。
· 202 - Accepted 已经接受请求,但处理尚未完成。
· 203 - Non-Authoritative Information ⽂档已经正常地返回,但⼀些应答头可能不正确,因为使⽤的是⽂档的拷贝,⾮权威性信息(HTTP 1.1新)。
· 204 - No Content 没有新⽂档,浏览器应该继续显⽰原来的⽂档。如果⽤户定期地刷新页⾯,⽽Servlet可以确定⽤户⽂档⾜够新,这个状态代码是很有⽤的。
· 205 - Reset Content 没有新的内容,但浏览器应该重置它所显⽰的内容。⽤来强制浏览器清除表单输⼊内容(HTTP 1.1新)。
· 206 - Partial Content 客户发送了⼀个带有Range头的GET请求(分块请求),服务器完成了它(HTTP 1.1新)。
3xx - 重定向
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页⾯,或通过代理服务器重复该请求。
· 300 - Multiple Choices 客户请求的⽂档可以在多个位置到,这些位置已经在返回的⽂档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
· 301 - Moved Permanently 客户请求的⽂档在其他地⽅,新的URL在Location头中给出,浏览器应该⾃动地访问新的URL。
· 302 - Found 类似于301,但新的URL应该被视为临时性的替代,⽽不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。出现该状态代码时,浏览器能
,
有的服务器返回301,有的则返回302。严格地说,我们只能假定只有当原来的请求是GET时浏览器才会⾃动重定向。请参见307。· 303 - See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向⽬标⽂档应该通过GET提取(HTTP 1.1新)。
· 304 - Not Modified 客户端有缓冲的⽂档并发出了⼀个条件性的请求(⼀般是提供If-Modified-Since头表⽰客户只想⽐指定⽇期更新的⽂档)。服务器告诉客户,原来缓冲的
⽂档还可以继续使⽤。
· 305 - Use Proxy 客户请求的⽂档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。
· 307 - Temporary Redirect 和302(Found)相同。许多浏览器会错误地响应302应答进⾏重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时 才能重
定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分⼏个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只 能跟随
对GET请求的重定向。(HTTP 1.1新)
4xx - 客户端错误
发⽣错误,客户端似乎有问题。例如,客户端请求不存在的页⾯,客户端未提供有效的⾝份验证信息。
· 400 - Bad Request 请求出现语法错误。
· 401 - Unauthorized 访问被拒绝,客户试图未经授权访问受密码保护的页⾯。应答中会包含⼀个WWW-Authenticate头,浏览器据此显⽰⽤户名字/密码对话框,然后在 填写合
适的Authorization头后再次发出请求。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显⽰,但不在 IIS ⽇志中显⽰:
· 401.1 - 登录失败。
· 401.2 - 服务器配置导致登录失败。
· 401.3 - 由于 ACL 对资源的限制⽽未获得授权。
· 401.4 - 筛选器授权失败。
· 401.5 - ISAPI/CGI 应⽤程序授权失败。
· 401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专⽤。
· 403 - Forbidden 资源不可⽤。服务器理解客户的请求,但拒绝处理它。通常由于服务器上⽂件或⽬录的权限设置导致。禁⽌访问:IIS 定义了许多不同的 403 错误,它们指
明更为具体的错误原因:
· 403.1 - 执⾏访问被禁⽌。
· 403.2 - 读访问被禁⽌。
· 403.3 - 写访问被禁⽌。
· 403.4 - 要求 SSL。
· 403.5 - 要求 SSL 128。
· 403.6 - IP 地址被拒绝。
· 403.7 - 要求客户端证书。
· 403.8 - 站点访问被拒绝。
· 403.9 - ⽤户数过多。
· 403.10 - 配置⽆效。
· 403.11 - 密码更改。
· 403.12 - 拒绝访问映射表。
· 403.13 - 客户端证书被吊销。
· 403.14 - 拒绝⽬录列表。
· 403.15 - 超出客户端访问许可。
· 403.16 - 客户端证书不受信任或⽆效。
· 403.17 - 客户端证书已过期或尚未⽣效。
· 403.18 - 在当前的应⽤程序池中不能执⾏所请求的 URL。这个错误代码为 IIS 6.0 所专⽤。
· 403.19 - 不能为这个应⽤程序池中的客户端执⾏ CGI。这个错误代码为 IIS 6.0 所专⽤。
· 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专⽤。
·
404 - Not Found ⽆法到指定位置的资源。这也是⼀个常⽤的应答。
· 404.0 -(⽆) – 没有到⽂件或⽬录。
· 404.1 - ⽆法在所请求的端⼝上访问 Web 站点。
· 404.2 - Web 服务扩展锁定策略阻⽌本请求。
· 404.3 - MIME 映射策略阻⽌本请求。
· 405 - Method Not Allowed 请求⽅法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适⽤,⽤来访问本页⾯的 HTTP 谓词不被允许(⽅法不被允许)(HTTP 1.1
新)
重定向过多是什么意思· 406 - Not Acceptable 指定的资源已经到,但它的MIME类型和客户在Accpet头中所指定的不兼容,客户端浏览器不接受所请求页⾯的 MIME 类型(HTTP 1.1新)。
· 407 - Proxy Authentication Required 要求进⾏代理⾝份验证,类似于401,表⽰客户必须先经过代理服务器的授权。(HTTP 1.1新)
·
408 - Request Timeout 在服务器许可的等待时间内,客户⼀直没有发出任何请求。客户可以在以后重复同⼀请求。(HTTP 1.1新)· 409 - Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。(HTTP 1.1新)
· 410 - Gone 所请求的⽂档已经不再可⽤,⽽且服务器不知道应该重定向到哪⼀个地址。它和404的不同在于,返回407表⽰⽂档永久地离开了指定的位置,⽽404表⽰由于未知的
原因⽂档不可⽤。(HTTP 1.1新)
· 411 - Length Required 服务器不能处理请求,除⾮客户发送⼀个Content-Length头。(HTTP 1.1新)
· 412 - Precondition Failed 请求头中指定的⼀些前提条件失败(HTTP 1.1新)。
· 413 – Request Entity Too Large ⽬标⽂档的⼤⼩超过服务器当前愿意处理的⼤⼩。如果服务器认为⾃⼰能够稍后再处理该请求,则应该提供⼀个Retry-After头(HTTP 1.1
新)。
· 414 - Request URI Too Long URI太长(HTTP 1.1新)。
· 415 – 不⽀持的媒体类型。
· 416 – Requested Range Not Satisfiable 服务器不能满⾜客户在请求中指定的Range头。(HTTP 1.1新) · 417 – 执⾏失败。· 423 – 锁定的错误。
5xx - 服务器错误
服务器由于遇到错误⽽不能完成该请求。
· 500 - Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。
· 500.12 - 应⽤程序正忙于在 Web 服务器上重新启动。
· 500.13 - Web 服务器太忙。
· 500.15 - 不允许直接请求 Global.asa。
· 500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专⽤。
· 500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专⽤。
· 500.100 - 内部 ASP 错误。
·
501 - Not Implemented 服务器不⽀持实现请求所需要的功能,页眉值指定了未实现的配置。例如,客户发出了⼀个服务器不⽀持的PUT请求。
· 502 - Bad Gateway 服务器作为⽹关或者代理时,为了完成请求访问下⼀个服务器,但该服务器返回了⾮法的应答。 亦说Web 服务器⽤作⽹关或代理服务器时收到了⽆效响应
。
· 502.1 - CGI 应⽤程序超时。
· 502.2 - CGI 应⽤程序出错。
· 503 - Service Unavailable 服务不可⽤,服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供⼀个
Retry-After头。这个错误代码为 IIS 6.0 所专⽤。
· 504 - Gateway Timeout ⽹关超时,由作为代理或⽹关的服务器使⽤,表⽰不能及时地从远程服务器获得应答。(HTTP 1.1新) 。· 505 - HTTP Version Not Supported 服务器不⽀持请求中所指明的HTTP版本。(HTTP 1.1新)
----⽐如下⾯是我做图⽚上传的时候,判断是否是图⽚,⽽返回的状态码!--------
try
{
System.Drawing.Image img = System.Drawing.Image.FromStream(postedFile.InputStream);
postedFile.SaveAs(savepath + @"" + sNewFileName + sExtension);
context.Response.Write(tempPath + sNewFileName + sExtension);
context.Response.StatusCode = 200;
}
catch (ArgumentException ex)
{
context.Response.Write(ex.Message);
context.Response.StatusCode = 403;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论