阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HTTP状态码分类

196次阅读
没有评论

共计 3560 个字符,预计需要花费 9 分钟才能阅读完成。

前言:

我们经常使用浏览器发出 http 请求,那么对于请求返回的状态,对于开发人员来讲,我们必须要明白其所代表的含义,如:

常见状态吗:400(请求无效),401(需要权限),500(服务器错误),

今天本人就遇到了 400 错误,无效请求,后来检查发现是,post 请求传入的参数类型错误了:

public class TestData{

public string ID{get;set;}

public string Name{get;set;}

public int SortNo{get;set;}

}

【httppost】

Public void testAction(TestData data){

     //result

}

页面请求:

$http({
url: seagull2Url.getPlatformUrl(configURL.AddNotic),
method: ‘POST’,
data: {“ID”:”a”,”Name”:”aaa”,“SortNo”:””},
}).success(function (data) {
if (data.state == true) {
alert(“ 保存成功 ”);
}
}).error(function (ex, state) {
console.log(ex);
});

这里的错误就是传入的对象里的属性:SortNo 原本应该传 int 数字,这里却给了一个空值,请求就会返回 400 错误。

对于 400 错误具体的信息,可以通过浏览器的调式功能,找出 ex 对象的错误属性找到详细信息。

{“message”:” 请求无效。”,”modelState”:{“bannerEntity.SortNo”:[“Error converting value {null} to type ‘System.Int32’. Path ‘SortNo’, line 1, position 69.”]}}

 

正文:

HTTP 状态码分类

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

HTTP 状态码分类

分类

分类描述

1**

信息,服务器收到请求,需要请求者继续执行操作

2**

成功,操作被成功接收并处理

3**

重定向,需要进一步的操作以完成请求

4**

客户端错误,请求包含语法错误或无法完成请求

5**

服务器错误,服务器在处理请求的过程中发生了错误

HTTP 状态码列表:

HTTP 状态码列表

状态码      

状态码英文名称

中文描述

100

Continue

继续。客户端应继续其请求

101

Switching Protocols

切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到 HTTP 的新版本协议

 

200

OK

请求成功。一般用于 GET 与 POST 请求

201

Created

已创建。成功请求并创建了新的资源

202

Accepted

已接受。已经接受请求,但未处理完成

203

Non-Authoritative Information

非授权信息。请求成功。但返回的 meta 信息不在原始的服务器,而是一个副本

204

No Content

无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档

205

Reset Content

重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域

206

Partial Content

部分内容。服务器成功处理了部分 GET 请求

 

300

Multiple Choices

多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择

301

Moved Permanently

永久移动。请求的资源已被永久的移动到新 URI,返回信息会包括新的 URI,浏览器会自动定向到新 URI。今后任何新的请求都应使用新的 URI 代替

302

Found

临时移动。与 301 类似。但资源只是临时被移动。客户端应继续使用原有 URI

303

See Other

查看其它地址。与 301 类似。使用 GET 和 POST 请求查看

304

Not Modified

未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源

305

Use Proxy

使用代理。所请求的资源必须通过代理访问

306

Unused

已经被废弃的 HTTP 状态码

307

Temporary Redirect

临时重定向。与 302 类似。使用 GET 请求重定向

 

400

Bad Request

客户端请求的语法错误,服务器无法理解

401

Unauthorized

请求要求用户的身份认证

402

Payment Required

保留,将来使用

403

Forbidden

服务器理解请求客户端的请求,但是拒绝执行此请求

404

Not Found

服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置 ” 您所请求的资源无法找到 ” 的个性页面

405

Method Not Allowed

客户端请求中的方法被禁止

406

Not Acceptable

服务器无法根据客户端请求的内容特性完成请求

407

Proxy Authentication Required

请求要求代理的身份认证,与 401 类似,但请求者应当使用代理进行授权

408

Request Time-out

服务器等待客户端发送的请求时间过长,超时

409

Conflict

服务器完成客户端的 PUT 请求是可能返回此代码,服务器处理请求时发生了冲突

410

Gone

客户端请求的资源已经不存在。410 不同于 404,如果资源以前有现在被永久删除了可使用 410 代码,网站设计人员可通过 301 代码指定资源的新位置

411

Length Required

服务器无法处理客户端发送的不带 Content-Length 的请求信息

412

Precondition Failed

客户端请求信息的先决条件错误

413

Request Entity Too Large

由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个 Retry-After 的响应信息

414

Request-URI Too Large

请求的 URI 过长(URI 通常为网址),服务器无法处理

415

Unsupported Media Type

服务器无法处理请求附带的媒体格式

416

Requested range not satisfiable

客户端请求的范围无效

417

Expectation Failed

服务器无法满足 Expect 的请求头信息

 

500

Internal Server Error

服务器内部错误,无法完成请求

501

Not Implemented

服务器不支持请求的功能,无法完成请求

502

Bad Gateway

充当网关或代理的服务器,从远端服务器接收到了一个无效的请求

503

Service Unavailable

由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的 Retry-After 头信息中

504

Gateway Time-out

充当网关或代理的服务器,未及时从远端服务器获取请求

505

HTTP Version not supported

服务器不支持请求的 HTTP 协议的版本,无法完成处理

 

常见错误的处理方法:

500 错误

500 错误是站长经常遇到的问题,就本人的经验,原因及解决方法归纳如下:

1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报 HTTP500 错误。

这个原因是网站报 500 错误的最主要原因,很多网站为什么突然会报 500 错误(service unavailable)呢?90% 是由于空间压力过大,超出了空间商设定的上限而造成的。

遇到这个问题,最好是第一时间找到空间商的售后服务,他们一般会帮你回收一下应用程序池,问题便得到解决。如果没有找到售后服务,可以自己在空间管理后台,找到“回收应用程序池”那个项目,自己手动执行一下即可。不过,一些空间管理后台并没有提供该项服务。

2、如果排除了第 1 的可能性,那么很大原因便是程序上出现了问题。

可以做个简单的测试页面,看是否能运行成功,再检测报错的页面,从而针对性的进行修改。

该做关联的地方没有去做关联,则报 HTTP500 错误。进行手工或者自动关联,问题得到解决。

3、如果测试中所进行的操作需要向数据库中插入数据,若大数据量的情况下导致数据库中表空间已满,或者缓冲池较小无法满足数据的存取等,都有可能导致 HTTP500 错误。

解决方法是调整数据库、修改连接池大小等等,根据个人具体情况进行修正即可。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-02/140609.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3560字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中