JavaEE - HTTP状态码

avatar
作者
猴君
阅读量:0

Web服务器

浏览器和服务器两端进行数据交互,使用的就是HTTP协议(HTTP客⼾端和 HTTP服务器之间的交互数据 的格式)。

Web服务器就是对HTTP协议进⾏封装,程序员不需要直接对协议进⾏操作(⾃⼰写代码去解析http协议 规则),让Web开发更加便捷,所以Web服务器也被称为WWW服务器,HTTP服务器,主要功能是提供网上信息浏览服务。

常⻅的Web服务器有:Apache,Nginx,IIS,Tomcat,Jboss等。

 SprootBoot内置了Tomcat服务器,无需配置即可直接运行。

Tomcat默认端口号是8080,所以程序访问时的端口号也是8080端口号。

请求响应流程

浏览器输入URL之后,发情请求,就和服务器之间建立了连接。

浏览器:

输入网址:http://127.0.0.1:8080/hello

        首先,通过IP地址127.0.0.1定位到网络上的一台计算机,127.0.0.1就是本机

        再,通过端口号8080找到计算机上对应的进程,也就是在本地计算机中找到正在运行的

                8080端口程序

再,/user/sayhi是请求资源位置

        对于计算机而言 资源就是数据。web资源 : 通过网络可以访问到的资源(通常指存放          在服务器上的数据)

        http://127.0.0.1:8080/user/sayhi,就是向本地计算机中的8080端⼝程序,获取资源位置         是/user/sayhi的数据

8080端⼝程序,在服务器找/hello位置的资源数据,发给浏览器

服务器:

接收到浏览器发送的信息 (/user/sayhi)

在服务器上找到 /user/sayhi 的资源

把资源发送给浏览器

状态码报错

4xx    客户端发生错误

5xx    服务端发生错误(第一时间去看错误日志)

 1)404错误

404表示用户访问的资源不存在。大概率是URL的路径写的不正确。

正确示例:

package com.example.demo;  import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;  @RestController public class UserController {      @RequestMapping("/sayHi")     public String say() {         return "hello Spring Boot ~";     } }

错误示例1:url单词拼错

错误示例2:注解写错

通过fiddler观察http请求

2)500错误

500表示服务器出现内部错误。一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃)就会产生这个状态码。

错误示例:

@RestController public class UserController {  @RequestMapping("/sayHi")  public String sayHi(){  int res = 10/0;  return "hello,Spring";  } } 

重启服务重新访问:

可以观察在idea上,程序后端控制台打印了具体的异常调用栈

异常信息⾥已经提⽰了出现异常的代码是 UserController.java 的第 11 ⾏。

错误原因是算术异常: 除数为0 。按照异常提⽰,去解决对应的问题即可。

总结:

  • 4xx 状态码 表示路径不存在,往往需要检查URL是否正确,和代码中设定的contex path 以及 servlet path 是否一致
  • 5xx 状态码 表示服务器出现错误,往往需要观察页面的提示内容 和 Tomcat的日志,观察是否存在报错
  • 出现连接失败往往意味着 服务没有正常启动,也需要观察服务的自身日志是否有错误提示

观察⽇志是调试程序的重要途径.系统⽇志往往很多,需要在工作或学习过程中耐⼼阅读,经常阅读,熟练了就能更快速的找到问题了~


广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!