响应状态码
和请求报文相比,响应报文多了一个“响应状态码”,它以“清晰明确”的语言告诉客户端本次请求的处理结果。
HTTP的响应状态码由5段组成:
- 1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急...
- 2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
- 3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
- 4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
- 5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。
以下是几个常见的状态码:
200 OK
你最希望看到的,即处理成功!
303 See Other
我把你redirect到其它的页面,目标的URL通过响应报文头的Location告诉你。
引用
悟空:师傅给个桃吧,走了一天了
唐僧:我哪有桃啊!去王母娘娘那找吧
304 Not Modified
告诉客户端,你请求的这个资源至你上次取得后,并没有更改,你直接用你本地的缓存吧,我很忙哦,你能不能少来烦我啊!
404 Not Found
你最不希望看到的,即找不到页面。如你在google上找到一个页面,点击这个链接返回404,表示这个页面已经被网站删除了,google那边的记录只是美好的回忆。
500 Internal Server Error
看到这个错误,你就应该查查服务端的日志了,肯定抛出了一堆异常,别睡了,起来改BUG去吧!
1xx(临时响应)表示临时相应并需要请求者继续执行操作
100--(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分
101--(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换
2xx(成功))表示成功处理了请求的状态代码。代码说明200(成功)服务器已成功处理了请求。通常,这表示服务器提供了请求的网页
201--(已创建)请求成功并且服务器创建了新的资源
202--(已接受)服务器已接受请求,但尚未处理
203--(已接受)服务器已接受请求,但尚未处理
204--(无内容)服务器成功处理了请求,但没有返回任何内容
205--重置内容)服务器成功处理了请求,但没有返回任何内容
206--(部分内容)服务器成功处理了部分GET请求
3xx(重定向)表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向。代码说明300(多种选择)针对请求,服务器可执行多种操作。服务器可根据请求者(user agent)选择一项操作,或提供操作列表供请求者选择
301--(永久移动)请求的网页已永久移动到新位置。服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置
302--(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
303--(查看其他位置)请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码
304--(未修改)自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容
305--(使用代理)请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理
307--(临时重定向)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
400(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理
400--(错误请求))服务器不理解请求的语法
401--(未授权)请求要求身份验证。对于需要登录的网页,服务器可能返回此响应
403--(禁止)服务器拒绝请(没有权限)
404--(未找到)服务器找不到请求的网页
405--(方法禁用)禁用请求中指定的方法
406--(不接受)无法使用请求的内容特性响应请求的网页
407--(需要代理授权)此状态代码与401(未授权)类似但指定请求者应当授权使用代理
408--(请求超时)服务器等候请求时发生超时
409--(冲突)服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息
410--(已删除)如果请求的资源已永久删除,服务器就会返回此响应
411--(需要有效长度)服务器不接受不含有效内容长度标头字段的请求
412--(需要有效长度)服务器不接受不含有效内容长度标头字段的请求
413--(请求实体过大)服务器无法处理请求,因为请求实体过大,超出服务器的处理能力
414--(请求的URI过长)请求的URI(通常为网址)过长,服务器无法处理
415--(不支持的媒体类型)请求的格式不受请求页面的支持
416--(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态代码
417--(未满足期望值)服务器未满足"期望"请求标头字段的要求
419--(在larvel框架中出现过)csrf防护问题
5xx(服务器错误))这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错
500--(服务器内部错误)服务器遇到错误,无法完成请求
501--(尚未实施)服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码
502--(错误网关)服务器作为网关或代理,从上游服务器收到无效响应
503--(服务不可用)服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态
504--(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求
505--(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本