一、常用状态码介绍
在http响应协议中,我们通过HttpWatch抓包抓取到响应信息。其中响应首行中就包含一个状态码。状态码由三位数字组成,表示请求是否被理解或者被满足。HTTP响应状态码的第一个数字定义了响应的类别,后面两位没有具体分类,第一个数字有五种可能的取值。
具体介绍如下所示:
1xx :表示请求已接收,需要继续处理。
2xx :表示请求已经成功被服务器接收、理解、并接受
3xx :为完成请求,客户端需要进一步细化请求
4xx :客户端的请求有错误
5xx :服务器端出现错误
通过上面的介绍,现在我们来学习几个具体、常用的状态码,如下所示:
状态码说明如下:
200请求成功,浏览器会把响应回来的信息显示在浏览器端。
404表示客户端出错,比如说在浏览器端请求一个不存在的资源,这时浏览器端会出现404状态码。
405客户端错误的一种,表示当前的请求方式不支持。比如说服务器端只对GET请求做了处理,而客户端的请求是post方式的,这个时候会出现405状态码。
500服务器端错误,比如说服务器端代码出现空指针等异常,浏览器就会收到服务器发送的500状态码。
302表示重定向。比如说浏览器访问一个资源,服务器响应给浏览器一个302的状态码,并且通过响应头Location发送了一个新的url,告诉浏览器去请求这个url。这就是重定向。
304第一访问一个资源后,浏览器会将该资源缓存到本地,第二次再访问该资源时,如果该资源没有发生改变,那么服务器响应给浏览器304状态码,告诉浏览器使用本地缓存的资源。
二、304状态码详解:
(1)浏览器第一次请求资源,index.jsp。
(2)服务器端响应成功,发送状态码200,响应信息中包含一个Last-Modified响应头,该响应头的值是index.jsp文件的最后修改时间,如2014/11/10 6:51。
(3)浏览器接收到服务器发送过来的响应信息,将结果显示出来,并将响应内容及时间缓存在本地。
(4)浏览器第二次访问这个index.jsp页面,在请求信息中包含If-Modified-Since请求头,该请求头的值是浏览器缓存在本地的时间,也是第一次请求时服务器响应回来的时间:2014/11/10 6:51。
(5)服务器收到浏览器的请求,获得请求头If-Modified-Since的值,将这个值与服务器端index.jsp文件的最后修改时间进行比较,如果一致,表示服务器端没有对index.jsp进行修改,浏览器缓存的是最新的,这时服务器会响应304状态码给浏览器。如果不一致,则正常响应,将最新的资源响应给浏览器。
在上面的304详解时,提到了两个头:
Last-Modified: 这个是响应头,是浏览器第一次请求一个资源时,服务器发送给浏览器的,值为请求内容最后的修改时间。
If-Modified-Since: 这个是请求头,浏览器第二次请求一个资源时,浏览器发送给服务器的,把第一次服务器发送给它的时间归还给服务器。
Java优质课程推荐:
Java基础优质课程: java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受
Servlet服务: JavaWEB阶段Servlet小服务程序“努力学包会”:Servlet从入门到实战精选视教程/Servlet学习/Servlet视频教程
Git项目管理: Git分布式项目管理,不到一小时入门精通!玩转Git+GitHub必备教程_哔哩哔哩_bilibili
SpringMVC框架: SpringMVC框架特选教程_JavaEE进阶必备框架讲解/Spring框架学习/Spring视频实战/事务隔离级别/AOP IOC实战
Java全套优质课程UP主页: space.bilibili.com/609988934
Java项目:
八大项目最全Java练习项目合集!(附源码课件)Java项目每天练习手把手扶你进入高薪大厂!Java游戏_java项目_Java视频教程
【java项目】白嫖6套Java小游戏教程免费分享帮你解决期末作业烦恼!(附源码课件)
【王者荣耀项目】YYDS!!王者荣耀被大佬24小时开发成功-开发王者如此简单_王者荣耀游戏_java项目
优质配套课件: