美国上市公司,专注Java培训21年

Java学习中HTTP状态码都有哪些?


作为一名Java开发人员对http状态码都是有一定的理解的,因为只有对这些http状态码熟悉,才能找到问题的关键所在,那么http状态码是什么意思?http常用状态码有哪些?接下来我就向大家介绍一下http状态码。

1.常用状态码介绍

在http响应协议中,我们通过HttpWatch抓包抓取到响应信息。其中响应首行中就包含一个状态码。状态码由三位数字组成,表示请求是否被理解或者被满足。HTTP响应状态码的第一个数字定义了响应的类别,后面两位没有具体分类,第一个数字有五种可能的取值,具体介绍如下所示:

1xx :表示请求已接收,需要继续处理。

2xx :表示请求已经成功被服务器接收、理解、并接受

3xx :为完成请求,客户端需要进一步细化请求

4xx :客户端的请求有错误

5xx :服务器端出现错误

通过上面的介绍,现在我们来学习几个具体、常用的状态码,如下所示:

状态码说明如下:

200请求成功,浏览器会把响应回来的信息显示在浏览器端。

404表示客户端出错,比如说在浏览器端请求一个不存在的资源,这时浏览器端会出现404状态码。

405客户端错误的一种,表示当前的请求方式不支持。比如说服务器端只对GET请求做了处理,而客户端的请求是post方式的,这个时候会出现405状态码。

500服务器端错误,比如说服务器端代码出现空指针等异常,浏览器就会收到服务器发送的500状态码。

302表示重定向。比如说浏览器访问一个资源,服务器响应给浏览器一个302的状态码,并且通过响应头Location发送了一个新的url,告诉浏览器去请求这个url。这就是重定向。

304第一访问一个资源后,浏览器会将该资源缓存到本地,第二次再访问该资源时,如果该资源没有发生改变,那么服务器响应给浏览器304状态码,告诉浏览器使用本地缓存的资源。

2.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:这个是请求头,浏览器第二次请求一个资源时,浏览器发送给服务器的,把第一次服务器发送给它的时间归还给服务器。

以上就是对http状态码是什么意思?http常用状态码有哪些的全部介绍,如果你想了解更多有关Java学习教程,学习it方面的知识请关注达内教育


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • Java教程第十三节:Java Character 类
    Java教程第十三节:Java Character 类
    Character 类用于对单个字符进行操作。 详情>>

    2019-05-22

  • Java教程第十四节:Java String 类
    Java教程第十四节:Java String 类
    字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 详情>>

    2019-05-22

  • Java教程第十五节:Java StringBuffer 和 StringBuilder 类
    Java教程第十五节:Java StringBuffer 和 StringBuilder 类
    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。 详情>>

    2019-05-22

  • Java教程第十六节:Java 数组
    Java教程第十六节:Java 数组
    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。 详情>>

    2019-05-23

  • Java开班时间

    收起