当前位置: 首页 > article >正文

SpringBoot 基础知识,HTTP 概述

1.  概述
1.1 Spring

Spring 提供若干个子项目,每个项目用于完成特定功能

Spring 的若干个子项目都基于一个基础的框架:Spring Framework

框架类似于 房屋的地基

但 Spring Framework 配置繁琐入门难度大

1.2 Spring Boot

于是,后面推出 配置简便快速入门的 Spring Boot

SpringBoot 可以帮助我们快速的构建应用程序 简化开发 提高效率

2. SpringBootWeb 快速入门

需求:使用 SpringBoot 开发一个 Web 应用,浏览器发送 /hello 请求后,给浏览器返回字符串 “ Hello World - ”

创建 SpringBootWeb 项目分为三步骤

        1.创建 SpringBoot 工程,填写模块信息,勾选 web 开发相关依赖

        2.创建请求类,添加 请求处理方法,并添加注解

        3.运行启动类,打开浏览器测试

2.1 创建 SpringBoot 项目

2.2 定义请求处理类

2.3 启动程序

启动程序需要运行 启动类的 main 方法

浏览器(推荐谷歌)输入网址

控制台返回执行程序的内容

若两处都能看到且内容相同,则项目运行成功!

3. HTTP 协议 
3.1 概述

Hyper Text Transfer Protocol :超文本传输协议,规定浏览器服务器之间数据传输的规则

即 浏览器与服务器数据传输的规则

以下是简单了解 浏览器与服务器数据传输 的过程

3.2 特点

基于 TCP 协议:面向连接,安全

基于请求-响应模型:一次请求对应一次响应

HTTP 协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的

        缺点:多次请求间不能共享数据

        优点:速度快

3.3 请求协议

请求协议即 请求格式

由三部分组成:

        请求

        请求

        请求

3.4 响应协议

响应协议 即响应格式

由三部分组成:

        响应

        响应

        响应

响应行中常见状态码:

一般只需要掌握三个即可:

        200:请求成功

        404:请求资源不存在:URL 输入有误或者网站资源被删除

        500:服务器发生不可预期的错误

        重定向的解释:

常见响应头:

3.5 请求解析

根据 HTTP 请求格式解析请求数据和响应数据

解析 HTTP协议分为两部分:

        客户端:各大厂商已经内置解析 HTTP协议 的程序

        服务(器)端:通过 Java 程序接受客户端浏览器发起的请求并获取请求数据,参照 HTTP

的请求协议格式对其进行解析。再参照 HTTP 的响应数据格式对浏览器响应对应的格式。

浏览器获取到响应回来的数据利用内置的 HTTP协议 程序进行自动解析,从而完成请求和响应;

手动编写一个服务端程序并解析 HTTP 协议,需要考虑各种各样的情况,代码量在几万行。

所有的 WEB 项目开发都需要解析  HTTP 协议

而 HTTP 协议是标准的,统一的,固定的

解析  HTTP 协议 的代码是通用的

所以很多公司都写好了这些代码,且封装到一个软件中

即 Web 服务器

4. Web 服务器

Web 服务器是一个软件程序

对 HTTP 协议的操作被封装在里面

主要 提供网上信息的浏览

tomcat 是当下最流行的 Web 服务

当然 tomcat 不需要单独部署,已经被内置到 SpringBoot 里面

5. Tomcat

Tomcat 是 Apache 软件基金会的一个核心项目

是一个开源免费的轻量级 Web 服务器

支持 Servlet / JSP 少量 JavaEE 规范

也被称为 Web 容器、Servlet 容器

Servlet 程序需要依赖 Tomcat 才能运行

基于SpringBoot 开发的 web 应用程序

内置了 tomcat 服务器

启动类运行时,会自动启动内嵌的 tomcat 服务器

相关文章:

SpringBoot 基础知识,HTTP 概述

1. 概述 1.1 Spring Spring 提供若干个子项目,每个项目用于完成特定功能 Spring 的若干个子项目都基于一个基础的框架:Spring Framework 框架类似于 房屋的地基 但 Spring Framework 配置繁琐,入门难度大 1.2 Spring Boot 于是&#xf…...

《网络管理》实践环节04:SNMP监控数据采集流程及SNMP协议详细分析

兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 1 实验目标 1. 理解SNMP网络管理原理 2. 掌握SNMP服务器采集SNMP Agent数据的方法 3. 掌握SNMP报文发送和应答流程 4. 掌握典型GetResponsePDU数据结构分析的方法 4. 具备SNMP通信…...

RTX30系显卡运行Tensorflow 1.15 GPU版本

​ 30系显卡只支持cuda11.0及以上版本,但很多tensorflow项目用的仍然是1.1x版本,这些版本需要cuda10或者以下版本,这就导致在30系显卡上无法正常运1.1x版本的tensorflow,最近几天我也因为这个问题头疼不已,网上一番搜索…...

debian系统中文输入法失效解决

在 Debian 9.6 上无法切换中文输入法的问题通常与输入法框架(如 Fcitx 或 IBus)的配置或依赖缺失有关。以下是详细的解决步骤: 1. 安装中文语言包 确保系统已安装中文语言支持: sudo apt update sudo apt install locales sudo…...

《Uniapp-Vue 3-TS 实战开发》构建HTTP请求拦截器

引言 在 UniApp 结合 TypeScript 和 Vue3 的项目开发中,请求拦截器起着至关重要的作用。它能够在请求发送前和响应接收后对数据进行统一处理,极大地提高了代码的可维护性和功能性。本文将详细解析上述代码中请求拦截器的实现及其在 UniApp-Ts-Vue3 项目中…...

C#基础类型系统-接口

接口 - 定义多种类型的行为 接口包含非抽象 class 或 struct 必须实现的一组相关功能的定义。接口可以定义 static 方法,此类方法必须具有实现。接口可为成员定义默认实现。接口不能声明实例数据,如字段、自动实现的属性或类似属性的事件。C#不支持类的…...

StringTemplate修仙指南:字符串处理的“言出法随“大法

各位在字符串处理苦海中挣扎的道友们!今天要解锁的是StringTemplate这门"言出法随"的绝学——用模板语法让字符串替换变得优雅如诗!无论是代码生成、邮件模板还是动态SQL,都能一键搞定!准备好告别String.format()的混沌…...

从PDF中提取表格:以GB/T2260—2007为例

文章目录 先说结论前因后果思路1、PDF2CSV2、PDF2MD → MD2CSV3、针对不同表格的两种思路1) 竖形三线表2)五元素为一组 还没结束批量处理1、分割markdown文档2、跳过另一种格式的文档 总结一下 先说结论 结论就是,博主用了一天的时间去研究如…...

初识MySQL · 复合查询(内外连接)

目录 前言: 基本查询回顾 笛卡尔积和子查询 笛卡尔积 内外连接 子查询 单行子查询 多行子查询 多列子查询 from中使用子查询 合并查询 前言: 在前文我们学习了MySQL的基本查询,就是简单的套用了select语句,最多不过是…...

电视剧角色扮演AI Agent中的大模型操作流程

电视剧角色扮演AI Agent中的大模型操作流程 在您描述的 “电视剧角色扮演 + 挑战任务” 的AI Agent场景中,大模型(如GPT-4、Claude等)需要完成多个关键操作,以下是详细的技术流程分解: 1. 用户输入处理阶段 操作:文本向量化(Embedding) 技术实现: 使用 文本嵌入模型…...

Android学习总结之数据结构篇

Java 的集合体系 Java 的集合框架主要分为两大接口体系:Collection 和 Map。以下是对这两大体系下常见集合类的介绍: Collection 体系 Collection 是单列集合的根接口,它有三个主要的子接口:List、Set 和 Queue。 List 接口&a…...

OpenCV--图像平滑处理

在数字图像处理领域,图像平滑处理是一项极为重要的技术,广泛应用于计算机视觉、医学影像分析、安防监控等多个领域。在 OpenCV 这一强大的计算机视觉库的助力下,我们能便捷地实现多种图像平滑算法。本文将深入探讨图像平滑的原理,…...

8. git branch

基本概述 git branch 的作用是:查看、创建、删除、重命名和跟踪分支等。 查看分支 1.查看本地分支 git branch当前分支前会标记 * 2.查看远程分支 git branch -r3.查看所有分支 git branch -a4.查看分支信息 git branch -v会显示分支的最新提交信息 5.查看…...

辛格迪客户案例 | 北京舒曼德医药实施电子合约系统(eSign)

01 北京舒曼德医药科技开发有限公司:医药科技的数字化先锋 北京舒曼德医药科技开发有限公司(以下简称“舒曼德医药”)作为国内医药科技领域的领军企业,致力于创新药物的研发、临床试验和市场推广。公司以“科技兴药、质量为先、服…...

Python面向对象-开闭原则(OCP)

1. 什么是开闭原则? 开闭原则(Open-Closed Principle, OCP) 是面向对象设计的五大SOLID原则之一,由Bertrand Meyer提出。其核心定义是: “软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。” 对扩展开放:当需求…...

网络安全-等级保护(等保) 1-0 等级保护制度公安部前期发文总结

################################################################################ 等级保护从1994年开始已经有相关文件下发,进行建设,后续今年多年制度完善,现在已进入等保2.0时代,相关政策已运行多年。 前期等保相关发文,目前还在使用的包括:《中华人民共和国计算…...

Class 文件和类加载机制

一、Class 文件 与 类加载机制 概述 什么是 Class 文件? Java 源码(.java)经过 javac 编译器 编译生成的字节码文件(.class);由 JVM 识别执行,包含类的完整结构信息(如字段、方法、…...

Vue3+Vite+TypeScript+Element Plus开发-07.Mockjs引用与Axios封装

系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 登录成功跳转主页 多用户动态加载菜单 Pinia持久化 动态路由-配置 文章目录 目录 系列文档目…...

安全理念和安全产品发展史

从安全理念的发展历史来看,技术与产品的演进始终围绕 “威胁对抗” 与 “业务适配” 两大核心展开。以下从七个关键阶段解析安全技术与产品的发展脉络,并结合最新实践与未来趋势提供深度洞察: 一、密码学奠基阶段(1970s 前) 安全理念:以 “信息保密” 为核心,防御手段…...

【Redis】背景知识

一、Redis的特性 Redis是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由string(字符串),hash(哈希),list&#xf…...

Spring MVC 返回 JSON 视图的方式及对比(6种)

Spring MVC 返回 JSON 视图的方式及对比(新增 MappingJackson2JsonView) 1. 方式一:ResponseBody 注解 作用:直接返回对象,由消息转换器(如 Jackson)序列化为 JSON。 适用场景:简单…...

【Kafka基础】消费者命令行完全指南:从基础到高级消费

Kafka消费者是消息系统的关键组成部分,掌握/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh工具的使用对于调试、测试和监控都至关重要。本文将全面介绍该工具的各种用法,帮助您高效地从Kafka消费消息。 1 基础消费模式 1.1 从最…...

在 Vue 中监听常用按键事件(回车,ESC 键,空格等)。

一、Vue 原生按键修饰符&#xff08;推荐&#xff09; html <!-- 常用按键监听 --> <input keyup.enter"submit" <!-- 回车键 -->keydown.esc"cancel" <!-- ESC 键 -->keyup.space"togglePlay" <!-- 空格键…...

航电系统的任务载荷集成技术要点概述!

一、任务载荷集成技术难点 1. 接口标准化与兼容性 异构设备协议冲突&#xff1a;不同厂商的载荷设备&#xff08;如光学相机、雷达、电子战模块&#xff09;采用不同的通信协议&#xff08;如1553B、RS422、以太网&#xff09;&#xff0c;需设计统一的总线接口标准以支持即…...

OceanBase V4.3.5 上线全文索引功能,让数据检索更高效

近日&#xff0c;OceanBase 4.3.5 BP1 版本正式推出了企业级全文索引功能。该版本在中文分词、查询效率及混合检索能力上进行了全面提升。经过自然语言模式和布尔模式在不同场景下的对比测试&#xff0c;OceanBase 的全文索引性能明显优于 MySQL。 点击下载 OceanBase 社区版…...

Qt中的信号与槽及其自定义

信号源&#xff1a;哪个控件发的信号 信号的类型&#xff1a;用户进行不同的操作就会触发不同的信号 如点击按钮&#xff0c;在输入框移动光标&#xff0c;勾选一个复选框&#xff0c;选 择一个下拉框 信号的处理方式&#xff1a;槽(slot)----也就是函数&#xff0c;Qt中用con…...

【PFPGA学习】状态机思想编程HDLbitsFPGA练习

目录 一、用状态机实现LED流水灯 1.1状态机思想 1.2状态机思想LED流水灯 1.3 modesim仿真 1.4 FPGA烧录实现 二、CPLD和FPGA芯片 1. 核心结构与技术原理 2. 性能与容量 3. 适用场景 &#xff14;. 选型建议 三、HDLbitsFPGA练习记录&#xff08;combinational logic…...

Android 中集成 Unity 工程的步骤

在 Adroid 项目中集成 Unity 工程,主要步骤如下: 一、前提条件 1、已有一个 Android 工程项目; 2、Unity 工程已导出为 Android 工程,目录大概如下: 二、集成步骤 1、在 Android 工程中导入 Unity 工程的 unityLibrary 模块。 在 Android Studio 中,点击菜单栏 Fil…...

Python从入门到精通全套视频教程免费

概述 &#x1f4e2; 所有想学Python的小伙伴看过来&#xff01;作为深耕编程领域的技术分享者&#xff0c;最新整理了一份Python从0到1的视频教程。 &#x1f4a1;亮点 ✅ 保姆级系统路线&#xff1a;从环境搭建、语法精讲&#xff0c;到爬虫/数据分析/AI/Web全栈开发&#…...

关于Spring MVC中@RequestMapping注解的详细解析,涵盖其核心功能、属性、使用场景及最佳实践

以下是关于Spring MVC中RequestMapping注解的详细解析&#xff0c;涵盖其核心功能、属性、使用场景及最佳实践&#xff1a; 1. 基础概念 RequestMapping是Spring MVC的核心注解&#xff0c;用于将HTTP请求映射到控制器&#xff08;Controller&#xff09;的方法上。它支持类级…...