知识点的梳理:
-
3 01,302,303状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动再次发送;
- 301,302标准是禁止将POST方法改变成GET方法的,但实际使用时,大家都会这么做;
-
有时,返回的状态码是错误的。比如Web应用程序内部出现错误,状态码依然返回200OK;
-
作用
-
作用:当客户端向服务器端发送请求时,描述返回的请求结果;
-
-
分类
-
2XX成功
- 说明:请求被正常处理了
-
200 OK
-
204 No Content
-
说明:服务器接收的请求已经成功处理,但在返回的响应报文中不含实体的主体部分。
- 另外,也不允许返回任何实体的主体;如:当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新;
- 一般在只需要从客户端往服务器发送消息,而对客户端不需要发送消息内容的情况下使用;
-
-
206 Partial Content
- 表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range指定范围的实体内容;
-
3XX重定向
- 说明:表明浏览器需要执行某些特殊的处理以正确处理请求
-
301 Moved Permanently
- 永久重定向。表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。
-
如:下图给出的请求URI,当指定资源路径的最后忘记添加斜杠"/",就会产生301状态码;
-
302 Found
- 临时性重定向。表示请求的资源已被分配了新的URI,希望用户本次能使用新的URI访问;
- 302代表的资源不是被永久移动,只是临时性质;
-
303See Other
- 表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。
- 303状态码与302的功能很像。但303明确表示客户端应该采用GET方法获取资源;
-
304Not Modified
- 服务器把文件的修改日期通过Last-Modified返回给浏览器,浏览器缓存这个文件,下次向服务器请求这个文件的时候,通过If-Modified-Since问服务器说"我本地文件的修改日期是。。。",服务器端如果发现文件还是那个文件,则告诉浏览器(304 Not Modified)文件没修改,还用本地的吧。
- ctrl+f5就会强制刷新页面,那么浏览器的缓存也会刷新,那么服务器就会返回给浏览器新的页面修改地址
-
307Temporary Redirect
- 临时重定向。307与302有着相同的含义。尽管302标准禁止POST变换为GET,但实际使用时大家都不遵守;
- 307会遵照浏览器标准,不会从POST变成GET。但对于处理响应的行为,每种浏览器有可能出现不同的情况;
-
4XX客户端错误
- 说明:4XX的响应结果表明客户端是发生错误的原因所在
-
400 Bad Request
- 表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求;
-
401 Unauthorized
- 表示发送的请求需要有通过HTTP认证的认证信息。若之前已经进行过1次请求,则表示用户认证失败。
-
403 Forbidden
- 表明对请求资源的访问被服务器拒绝了。服务器端没必要给出拒绝的理由。但如果想的话,可以在主体部分对原因进行描述。
- 访问权限出现问题,也可能是403的问题;
-
404 Not Found
- 表明服务器上无法找到请求的资源;
- 也可以表示在服务器端拒绝请求且不想说明理由时使用;
-
5XX服务器错误
- 说明:5XX的响应结果表明服务器本身发生错误。
-
500 Internal Server Error
- 表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障;
-
503 Service Unav ailable
- 表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。