http协议中的响应代码从 1xx ~ 5xx,一共有41种,不过很多状态码很少会接触到。 下面把开发过程中常接触到的讲解一遍
- 200
200 表示响应成功了,比如打开页面, 就会看到200响应码
http://127.0.0.1/login.html
- 301
301 表示客户端跳转,永久性的跳转
为了实现301跳转,在Servlet中应该使用如下代码:
response.setStatus(301); response.setHeader("Location", "fail.html");
- 302
302 客户端跳转,临时性的跳转
比如访问页面
提交数据会访问addHero,addHero把数据加到数据库后,就会302跳转到listHero来显示新增加的Hero。http://127.0.0.1/addHero.html
在Servlet的代码实现要比301简单点,直接使用
response.sendRedirect("/listHero")
- 304
304 表示资源未被修改。
当不是第一次访问一个静态页面或者图片的时候,就会得到这么一个提示。这是服务端提示浏览器,这个资源没有发生改变,你直接使用上一次下载的就行了,不需要重新下载。 这样就节约了带宽,并且浏览器的加载速度也更快。
第二次访问页面
就会看到304http://127.0.0.1/addHero.html
- 404
404表示访问的页面不存在
比如访问页面
这是一个不存在的页面,就会得到404响应码http://127.0.0.1/addHero2.html
这表示一个浏览器的错误,就是服务端没提供这个服务,但是你却去访问。 这个锅要算到浏览器头上,不能算在服务器头上。
当然,有的时候是因为服务器没有配置这个路径,所以浏览器访问不到对应的资源。 比如在web.xml中,没有配置listHero,就会得到404错误。
- 500
500 表示服务端的错误
比如增加新的英雄的时候,血量应该是一个数字,但是提交的数据是“100a"。 而在服务端,使用Float.parseFloat() 试图把它转换为数字的时候,就会抛出异常。 这个就属于服务端的问题。