JavaEE - HTTP状态码

news2024/11/15 22:40:55

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的日志,观察是否存在报错
  • 出现连接失败往往意味着 服务没有正常启动,也需要观察服务的自身日志是否有错误提示

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1946812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2 YOLO8的使用

1 介绍 YOLOv8是YOLO (You Only Look Once) 目标检测模型系列的最新版本,由Ultralytics公司开发和维护。YOLOv8是在先前版本的基础上进行的重大更新,不仅提升了性能,还增加了更多的功能,它不仅能够进行目标检测,还能完…

构建智慧水利系统,优化水资源管理:结合物联网、云计算等先进技术,打造全方位、高效的水利管理系统,实现水资源的最大化利用

本文关键词:智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

RBAC权限管理设置

RBAC权限管理设置 RBAC(Role-Based Access Control,基于角色的访问控制)是一种常用的访问控制机制,用于管理系统中的用户权限。RBAC通过将用户分配给角色,并将权限授予角色,从而控制用户对资源的访问。 基…

BUU [BSidesCF 2020]Cards

BUU [BSidesCF 2020]Cards 开题: 做题目之前先了解一下21点的规则: 二十一点玩法规则和概率在二十一点游戏中,拥有最高点数的玩家获胜,其点数必须等于或低于21点;超过21点的玩家称为爆牌。 2点至10点的牌以牌面的点数…

谷歌新的网站索引策略:将来可能不再为您的网站编制索引

10 年前,在 WordPress 上推出新博客的同时,Google 上的内容几乎是即时索引。 搜索引擎试图尽快向用户提供所有信息,这对内容创作者也有利。 然而,随着时间的推移,情况发生了变化,现在谷歌在索引方面变得极…

RPA软件-影刀使用

流程自动化 影刀将操作进行抽象,分为一下几个对象: 网页自动化 (1) 网页自动化应用场景:网页操作、数据抓取 (2) 网页操作:基础操作-指令操作,智能操作-关联元素&#…

Redis-数据的极速之旅(一)

Redis基础篇 Redis的自我介绍我的核心数据结构1.字符串(String)2.哈希(Hash)3.列表(List)4.集合(Set)5.有序集合(Sorted Set) 高性能原理1.Redis为什么快&…

C# VS2019 Form 图标的修改

一、 窗口的左上角图标 1、Form的属性中找到Icon项直接选择图标(.ico)路径,窗口左上角会自动更新选择更新的图标。 Form属性 2.发布后的exe图标

日常开发记录分享-SQL中的partition分区功能使用

文章目录 需求来源实现思路实施SQL 语句结构内部查询(子查询)外部查询 结果 partition的升级使用解释 验证一下看看分区 分区的一些操作1. 普通查询2. 分区表上的查询优化3. 插入数据4. 删除分区中的数据5. 分区维护操作添加新的分区删除分区重组分区 6.…

Mongodb入门介绍

文章目录 1、Mongodb:NoSQL数据库,分布式的文档型数据库2、适合场景:3、不适合场景:4、概念5、总结 1、Mongodb:NoSQL数据库,分布式的文档型数据库 2、适合场景: 1、web网站数据存储&#xff…

Live555源码阅读笔记:哈希表的实现

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

星环科技携手东华软件推出一表通报送联合解决方案

随着国家金融监督管理总局“一表通”试点工作的持续推进,星环科技携手东华软件推出了基于星环科技分布式分析型数据库ArgoDB和大数据基础平台TDH的一表通报送联合解决方案,并已在多地实施落地中得到充分验证。 星环科技与东华软件作为战略合作伙伴&…

功能性的安全性保障:TOKEN鉴权校验

1. 引言 在软件开发过程中,确保系统的安全性是至关重要的一环。它不仅关乎保护用户数据的完整性和隐私性,也是维护系统稳定运行的基石。我认为,从宏观角度审视,软件开发的安全性保障主要可分为两大类:功能性的安全性保…

昇思MindSpore 应用学习-DCGAN生成漫画头像-CSDN

日期 心得 昇思MindSpore 应用学习-DCGAN生成漫画头像(AI代码学习) DCGAN生成漫画头像 在下面的教程中,我们将通过示例代码说明DCGAN网络如何设置网络、优化器、如何计算损失函数以及如何初始化模型权重。在本教程中,使用的动…

Python从0到100(四十六):实现管理员登录及测试功能

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

-XX:MaxDirectMemorySize和-Dio.netty.maxDirectMemory区别

-XX:MaxDirectMemorySize是java运行参数,用户控制java程序可以使用的最大直接内存(堆外/本地); -Dio.netty.maxDirectMemory是netty运行参数,用户控制netty程序可以使用的最大直接内存(堆外/本地&#xff…

SQLynx数据库管理工具

背景:业主对网络安全要求比较高,不提供VPN等远程工具,也不能开放3306端口到互联网。那怎么样运维数据库就是个难题?找到了SQLynx这个可以网页访问的数据库管理工具,给大家分享一下。 1.介绍 SQLynx原名SQL Studio&…

如何优化 Selenium 和 BeautifulSoup 的集成以提高数据抓取的效率?

摘要 在互联网时代,数据的价值日益凸显。对于电商网站如京东,其商品信息、用户评价等数据对于市场分析、产品定位等具有重要意义。然而,由于这些网站通常使用 JavaScript 动态生成内容,传统的爬虫技术难以直接获取到完整数据。本…

Vue 实现电子签名并生成签名图片

目录 前言项目结构代码实现 安装依赖创建签名画布组件生成签名图片 总结相关阅读 1. 前言 电子签名在现代Web应用中越来越普遍,例如合同签署、确认表单等。本文将介绍如何使用Vue.js实现一个简单的电子签名功能,并将签名生成图片。 2. 项目结构 项…

基于 LlamaIndex 构建自己的 RAG 知识库

创建虚拟环境用于运行 运行 InternLM 的基础环境,命名为 llamaindex conda create -n llamaindex python3.10 查看存在的环境 conda env list 激活刚刚创建的环境 conda activate llamaindex 安装基本库pytorch,torchvision ,torchaudio,pytorch-cuda 并指定通道&…