HTTP协议中的状态码
状态码的第一位数字定义响应类型。后两位数字没有任何分类角色。
第一位数字有五种值:
信息类
-1xx: 报告的 - 接收到请求,继续进程.
成功类
-2xx: 成功 - 步骤成功接收,被理解,并被接受.
重定向类
-3xx: 重发 - 为了完成请求,必须采取进一步措施.
客户端错误类
-4xx: 客户端出错 - 请求包括错的顺序或不能完成.
服务器端错误类
-5xx: 服务器出错 - 服务器无法完成显然有效的请求.
下面列举HTTP/1.1定义的态码值,和对应的原因短语(Reason-Phrase)的例子,仅作参考,偶尔查询。
Status-Code
"100" ; 继续
"101" ; 转换协议
"200" ; OK
"201" ; 创建
"202" ; 接受
"203" ; 非权威信息
"204" ; 无内容
"205" ; 重置内容
"206" ; 局部内容
"300" ; 多样选择
"301" ; 永久移动
"302" ; 创建
"303" ; 观察别的部分
"304" ; 只读
"305" ; 用户代理
"307" ; 临时重发
"400" ; 坏请求
"401" ; 未授权的
"402" ; 必要的支付
"403" ; 禁用
"404" ; 没找到
"405" ; 不允许的方式
"406" ; 不接受
"407" ; 需要代理验证
"408" ; 请求超时
"409" ; 冲突
"410" ; 停止
"411" ; 需要的长度
"412" ; 预处理失败
"413" ; 请求实体太大
"414" ; 请求-URI太大
"415" ; 不支持的媒体类型
"416" ; 请求的范围不满足
"417" ; 期望失败
"500" ; 服务器内部错误
"501" ; 不能实现
"502" ; 坏网关
"503" ; 服务不能实现
"504" ; 网关超时
"505" ; HTTP版本不支持
扩展码
extension-code =3DIGIT
Reason-Phrase = *<TEXT,excluding CR,LF>
HTTP状态码是可扩展的。HTTP应用程序不需要理解所有已注册状态码的含义,尽管那样的理解显而易见是很合算的。但是,应用程序必须了解由第一位数字指定的状态码的类型,任何未被识别的响应应被看作是该类型的x00状态,有一个例外就是未被识别的响应不能缓存。例如,如果客户端收到一个未被识别的状态码431,则可以安全的假定请求有错,并且它会对待此响应就像它接收了一个状态码是400的响应。在这种情况下,用户代理(user agent)应当把实体和响应一起提交给用户,因为实体很可能包括人可读的关于解释不正常状态的信息。
上次面试的时候问到这个问题,除了知道403和404之外,其他的都答不出来,记录下~~虽然似乎记着玩意没多大用,但是也反映了经验不足啊!!!!