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

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…...

背包问题(java)实现

1、01背包 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scannew Scanner(System.in);int nscan.nextInt();int mscan.nextInt();int[][] dpnew int[n1][m1];int[] vnew int[n1];int[] wnew int[n1];for(int i1;i<n;i) {v…...

HDCP(一)

HDCP的核心目标解析 1. 数字内容版权保护 HDCP&#xff08;高带宽数字内容保护&#xff09;的核心目标是防止未经授权的设备对高清音视频内容进行非法复制或截取。它通过加密技术保护数字信号在传输链路&#xff08;如HDMI、DisplayPort、DVI等接口&#xff09;中的安全性&am…...

HTTP 1.0 时代,第一次优化

HTTP 是 “HyperText Transfer Protocol” 的缩写&#xff0c;即超文本传输协议。 相较于最初的设计&#xff0c;1.0增加了以下特性&#xff1a; 增加head&#xff0c;post等新方法。 引入新方法是为了扩充语义&#xff0c;其中 head 方法可以只拿元信息&#xff0c;不必传输…...

【吾爱出品】[Windows] 鼠标或键盘可自定义可同时多按键连点工具

[Windows] 鼠标或键盘连点工具 链接&#xff1a;https://pan.xunlei.com/s/VONSFKLNpyVDeYEmOCBY3WZJA1?pwduik5# [Windows] 鼠标或键盘可自定义可同时多按键连点工具 就是个连点工具&#xff0c;功能如图所示&#xff0c;本人系统win11其他系统未做测试&#xff0c;自己玩…...

计算机网络起源

互联网的起源和发展是一个充满创新、突破和变革的历程&#xff0c;从20世纪60年代到1989年&#xff0c;这段时期为互联网的诞生和普及奠定了坚实的基础。让我们详细回顾这一段激动人心的历史。 计算机的发展与ARPANET的建立&#xff08;20世纪60年代&#xff09; 互联网的诞生…...

Vue3 watch 与 watchEffect 深度解析

Vue3 watch 与 watchEffect 深度解析 一、响应式监听的基石作用 在Vue3的响应式系统中&#xff0c;watch和watchEffect是构建复杂状态逻辑的关键工具。它们实现了对响应式数据的精准监听&#xff0c;支撑着现代前端开发中的状态管理、副作用处理等核心功能。 1.1 演变 Optio…...

服务器信息收集

信息收集又叫打点&#xff0c;打仗也要侦探敌情&#xff0c;攻防更是如此。 但要获取哪些信息呢&#xff1f; 目录 一. 获取公网IP 如何知道一个网站用了CDN&#xff1f; 如何绕过CDN&#xff1f; 二. 旁站信息收集 三. C段主机查询 四. 子域名信息收集 五. 端口信息收…...

Java设计模式之装饰器模式:从入门到架构级实践

一、开篇&#xff1a;为什么需要装饰器模式&#xff1f; 在软件开发中&#xff0c;我们经常面临这样的困境&#xff1a;如何在不修改原有对象结构的情况下&#xff0c;动态地扩展对象的功能&#xff1f;当系统需要为对象添加多种可能的扩展功能时&#xff0c;如果直接使用继承…...

Vue3性能优化全攻略:从原理到极致性能实战

一、性能瓶颈深度诊断 1.1 关键性能指标分析 1.2 性能剖析工具矩阵 工具类型典型工具适用场景检测维度综合检测工具Lighthouse首屏加载性能分析加载评分/优化建议运行时监控工具Web Vitals页面交互性能监控FCP/LCP/TTI等框架专项工具Vue Devtools组件渲染性能分析渲染耗时/更…...

阿里云 AI 搜索开放平台:从算法到业务——AI 搜索驱动企业智能化升级

——已获知乎作者【GitHub Daily】授权转载 目前大模型的强大能力&#xff0c;使其成为一些企业和行业的主要创新驱动力&#xff0c;企业亟需重新审视和调整现有的创新机制&#xff0c;以适应AI技术和大数据的快速发展。目前很多企业已经开始尝试大模型在业务中进行赋能&#x…...

特权FPGA之AT24C02 IIC实现

0 简介 IIC的物理层 IIC一共有只有两个总线&#xff1a; 一条是双向的串行数据线&#xff33;&#xff24;&#xff21;&#xff0c;一条是串行时钟线&#xff33;&#xff23;&#xff2c;. SDA(Serial data)是数据线&#xff0c;D代表Data也就是数据&#xff0c;Send Data …...

Docker 容器内运行程序的性能开销

在 Docker 容器内运行程序通常会有一定的性能开销&#xff0c;但具体损失多少取决于多个因素。以下是详细分析&#xff1a; 1. CPU 性能 理论开销&#xff1a;容器直接共享宿主机的内核&#xff0c;CPU 调度由宿主机管理&#xff0c;因此 CPU 运算性能几乎与原生环境一致&…...

SpringBoot依赖冲突引发的 log4j 日志打印问题及解决方法

依赖冲突引发的 log4j 日志打印问题及解决方法 在软件开发过程中&#xff0c;依赖管理是至关重要的一环。然而&#xff0c;时常会遇到依赖冲突的情况&#xff0c;其中就包括影响日志框架正常使用&#xff0c;比如因依赖冲突导致无法正常打印 log4j 日志的问题。 问题描述 当…...

MacOS中的鼠标、触控板的设置研究

一、背景和写这篇文章的原因 想搞清楚和配置好鼠标&#xff0c;比如解决好为什么我的滚动那么难用&#xff1f;怎么设置滚轮的方向跟windows相同&#xff1f;调整双击速度&#xff0c;调整鼠标滚轮左右拨动的"冷却时间"。 二、各种设置之详细解释 1. MacOS设置 -&…...

Clickhouse试用单机版部署

问题 最近需要试用clklog数据收集的社区版&#xff0c;clklog用数据库是Clickhouse。这就需要我先单机部署一个Clickhouse数据库&#xff0c;先试用试用。 步骤 这里假设我们已经拥有一台Ubuntu的服务器了&#xff0c;现在我们需要在这台机器上面安装Clickhouse数据库。Clic…...

【运维 | 硬件】服务器中常见的存储插槽类型、对应的传输协议及其特性总结

Why&#xff1a;最近更换设备&#xff0c;具体了解一下。 传输协议对比 协议 底层接口 最大带宽 队列深度 典型延迟 适用场景 AHCI SATA 6 Gbps (~600 MB/s) 单队列&#xff08;32命令&#xff09; 较高 传统 HDD/SATA SSD SAS SAS 24 Gbps (~2.4 GB/s) 单队列&…...

本地laravel项目【dcat-admin】部署到liunx服务器

文章目录 前言一、部署流程1、数据库搬迁2、宝塔创建网站&#xff0c;配置php3、修改nginx配置4、在public目录设置软连接5、修改env配置、刷新缓存 二、其他问题1.后台登陆失败问题2.完美解决接口跨域问题 总结 前言 laravel新手记录 差不多一个月&#xff0c;总算用laravel…...

DeepSeek:AI如何重构搜索引擎时代的原创内容生态

一、当生成式AI遇上搜索引擎&#xff1a;一场效率与价值的博弈 2023年&#xff0c;全球搜索引擎处理了超过2万亿次查询&#xff0c;其中超40%涉及复杂问题解答。而与此同时&#xff0c;Google的"Helpful Content Update"算法升级直接淘汰了26%的低质AI生成页面。这场…...

在docker里装rocketmq-console

首先要到github下载&#xff08;这个一般是需要你有梯子&#xff09; GitHub - apache/rocketmq-externals at release-rocketmq-console-1.0.0 如果没有梯子&#xff0c;用下面这个百度网盘链接下 http://链接: https://pan.baidu.com/s/1x8WQVmaOBjTjss-3g01UPQ 提取码: fu…...

蓝桥杯C++组算法知识点整理 · 考前突击(上)【小白适用】

【背景说明】本文的作者是一名算法竞赛小白&#xff0c;在第一次参加蓝桥杯之前希望整理一下自己会了哪些算法&#xff0c;于是有了本文的诞生。分享在这里也希望与众多学子共勉。如果时间允许的话&#xff0c;这一系列会分为上中下三部分和大家见面&#xff0c;祝大家竞赛顺利…...

Docker 是什么? Docker 基本观念介绍与容器和虚拟机的比较

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;历代文学&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;高并发设计&#xf…...

Docker:安装与部署 Nacos 的技术指南

1、简述 Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个动态服务发现、配置管理和服务治理的综合解决方案,适用于微服务架构。 Nacos 主要功能: 服务发现与注册:支持 Dubbo、Spring Cloud 等主流微服务框架的服务发现与注册。动态配置管理:支持…...

UE5 RPC调用示例详解

文章目录 前言一、示例场景二、代码实现三、关键点解析3.1 RPC类型选择3.2 可靠性设置3.3 权限控制3.4 输入处理 四、测试与验证总结 前言 在UE5中&#xff0c;RPC&#xff08;远程过程调用&#xff09;是实现多人游戏逻辑同步的核心机制。以下通过一个玩家跳跃的示例&#xf…...

MATLAB在工程领域的实际应用案例

文章目录 前言自动驾驶汽车路径规划系统汽车先进驾驶辅助系统&#xff08;ADAS&#xff09;开发控制电气系统设计与优化桥梁结构分析与安全性评估 前言 MATLAB 在工程领域应用广泛&#xff0c;能解决复杂问题、优化系统设计。下面从不同工程领域选取了具有代表性的案例&#x…...

【完美解决】VSCode连接HPC节点,已配置密钥却还是提示需要输入密码

目录 问题描述软件版本原因分析错误逻辑链 解决方案总结 问题描述 本人在使用 ​​VSCode Remote-SSH 插件​​连接超算集群节点时&#xff0c;遇到以下问题&#xff1a;已正确配置 SSH 密钥&#xff0c;且 VSCode 能识别密钥文件&#xff08;如图1&#xff09;&#xff0c;但在…...

智能物联网网关策略部署

实训背景 某智慧工厂需部署物联网网关&#xff0c;实现以下工业级安全管控需求&#xff1a; 设备准入控制&#xff1a;仅允许注册MAC地址的传感器接入&#xff08;白名单&#xff1a;AA:BB:CC:DD:EE:FF&#xff09;。协议合规性&#xff1a;禁止非Modbus TCP&#xff08;端口…...

玩转代理 IP :实战爬虫案例

在现代互联网环境下&#xff0c;爬虫不仅是数据获取的利器&#xff0c;也成为应对网站反爬机制的技术博弈。而在这场博弈中&#xff0c;"代理 IP" 是核心武器之一。本文将以高匿名的代理ip为核心&#xff0c;结合 Python 实战、代理策略设计、高匿技巧与反封锁优化&a…...

Deepseek解锁科研绘图新方式

在科研领域&#xff0c;一张清晰、准确且美观的图片往往能比冗长的文字更有效地传达研究成果。从展示实验数据的图表&#xff0c;到阐述理论模型的示意图&#xff0c;科研绘图贯穿于研究的各个环节。然而&#xff0c;传统的科研绘图工具往往操作复杂&#xff0c;学习成本高&…...

【unity游戏开发入门到精通——动画篇】Animator反向动力学(IK)

考虑到每个人基础可能不一样&#xff0c;且并不是所有人都有同时做2D、3D开发的需求&#xff0c;所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】&#xff1a;主要讲解C#的基础语法&#xff0c;包括变量、数据类型、运算符、…...

【JavaScript】十八、页面加载事件和页面滚动事件

文章目录 1、页面加载事件1.1 load1.2 DOMContentLoaded 2、页面滚动事件2.1 语法2.2 获取滚动位置 3、案例&#xff1a;页面滚动显示隐藏侧边栏 1、页面加载事件 script标签在html中的位置一般在</body>标签上方&#xff0c;这是因为代码从上往下执行&#xff0c;在htm…...

Solana链开发全景指南:从环境搭建到生态实践

——2025年高性能区块链开发技术栈深度解析 一、Solana核心优势与技术特性 1. 突破性技术架构 历史证明&#xff08;PoH&#xff09;&#xff1a;通过时间戳序列化交易&#xff0c;实现并行处理能力&#xff0c;支持5万TPS的吞吐量 并行执行引擎&#xff08;Sealevel&#xf…...

这是一个文章标题

# Markdown 全语法示例手册本文档将全面演示 Markdown 的语法元素&#xff0c;包含 **标题**、**列表**、**代码块**、**表格**、**数学公式** 等 18 种核心功能。所有示例均附带实际应用场景说明。---## 一、基础文本格式### 1.1 标题层级 markdown # H1 (使用 #) ## H2 (使用…...

预言机与数据聚合器:DeFi的数据桥梁与风险博弈

一、核心机制与价值定位 预言机&#xff08;Oracle&#xff09;与数据聚合器是DeFi生态的“数据基建层”&#xff0c;解决链上-链下数据互通与链上数据可读性两大问题&#xff1a; 数据输入层&#xff08;预言机&#xff09;&#xff1a;将现实世界数据&#xff08;价格、天气…...

通过百度OCR在线API识别带水印扫描图片文字

目录 0 环境准备 1 百度OCR API申请 1.1 登录百度智能云 1.2 创建应用 1.3 获取API key和secret key 2 创建项目python环境 2.1 conda创建python环境 2.2 在pycharm中创建项目 2.3 激活python环境 2.4 安装项目依赖包 3 程序逻辑实现 3.1 导入依赖包 3.2 定义百度k…...

ocr python库

ocr python库 上手Git、Gitee和Github&#xff01;watt toolkit...

Node 处理 request 的过程中,都会更新哪些 metadata 和 property

什么是 Metadata&#xff1f; 用于描述帧状态、控制参数、处理结果等 是随 request 流动的结构&#xff0c;通常是 PerFrameMetaData&#xff0c;每一帧一份 属于 HAL3 metadata 树的组成部分 什么是 Property&#xff1f; 是 CamX 内部定义的一种帧级别的轻量信息块 不一…...

基于labview的多功能数据采集系统

基于labview的多功能数据采集系统&#xff08;可定制功能&#xff09; 包含基于NI温度采集卡。电流采集卡。电压采集卡的数据采集功能 数据存储 报表存储 数据处理与分析 生产者消费者架构 有需要可联系...

李沐《动手学深度学习》 | 线性神经网络-线性回归

文章目录 线性回归1.确定模型2.衡量预估质量-损失函数3.深度学习的基础优化算法随机梯度下降小批量随机梯度下降 从线性回归到深度网络 线性回归从0开始实现构造一个人造数据集创建数据集可视化数据集 读取数据-随机抽取样本模型定义模型参数初始化定义模型定义损失函数定义优化…...

LabVIEW 中 “Flatten To Json String” VI 应用及优势

在 LabVIEW 开发涉及机器人数据等场景时&#xff0c;常需将数据以特定 JSON 格式输出。“Flatten To Json String” VI 在此过程中能发挥重要作用&#xff0c;相比 LabVIEW 系统自带的 JSON 处理方式&#xff0c;它具备独特优势。以下将介绍其获取、使用方法及相较系统自带方式…...

关于 Spring Boot 后端项目使用 Maven 打包命令、JAR/WAR 对比、内嵌服务器与第三方服务器对比,以及热部署配置的详细说明

以下是关于 Spring Boot 后端项目使用 Maven 打包命令、JAR/WAR 对比、内嵌服务器与第三方服务器对比&#xff0c;以及热部署配置的详细说明&#xff1a; 一、Maven 打包命令详解 1. 基础命令 1.1 清理并打包 mvn clean packageclean&#xff1a;删除 target 目录中的旧构建文…...

用labview写crc8校验

crc8校验有好几种&#xff0c;我这里写的是不带任何后缀的crc8。 首先&#xff0c;我们百度一下crc8的计算方式 一般搜索出来下面还有c语言写的crc8可以做为参考。 下面便是根据百度的计算方式写的crc8&#xff0c;已校验过&#xff0c;无问题。 写完后&#xff0c;可以输入下…...

阿里云CDN与DCDN主动推送静态资源至边缘服务器的ASP.NET WEB实例

一、CDN,需要调用PushObjectCache接口进行URL预热,以下是操作步骤: 1. 准备工作 首先,安装阿里云SDK NuGet包: Install-Package Aliyun.NET.SDK.CDN -Version 3.0.0 Install-Package Aliyun.NET.SDK.Core -Version 3.0.0 2. 创建ASP.NET Web页面代码 CDNPreheat.aspx…...

LangChain-提示模板 (Prompt Templates)

提示模板是LangChain的核心组件&#xff0c;用于构建发送给语言模型的输入。本文档详细介绍了提示模板的类型、功能和最佳实践。 概述 提示工程是使用大型语言模型的关键技术。通过精心设计的提示&#xff0c;可以显著提高模型的输出质量和相关性。LangChain的提示模板系统提…...

多线程中的互斥与同步

多线程中的互斥与同步 1. 互斥与同步的区别 互斥&#xff1a;确保某一资源在同一时刻只能被一个线程访问。其主要目的是保证资源的唯一性和排他性&#xff0c;但无法控制访问的顺序。同步&#xff1a;在互斥的基础上&#xff0c;进一步通过其他机制保证访问资源的有序性。 2…...

ValueError: Cannot handle batch sizes > 1 if no padding token is defined`

ValueError: Cannot handle batch sizes > 1 if no padding token is defined` batch sizes > 1 进行掩码填充:pad_token,eos_token 在处理自然语言处理任务时,尤其是在使用批量数据进行训练或推理时,经常需要对输入文本进行填充(padding),以确保每个输入序列具…...

Gemma 3模型:Google 开源新星,大语言模型未来探索

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《深度探秘&#xff1a;AI界的007》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、快速发展的AI世界&#xff1a;为何关注Gemma 3&#x…...

先占个日常,等会写。

引入一个重要的概念 “struct” &#xff08;译为中文&#xff1a;结构体&#xff09; 可用作设出比较复杂的一些变量类型 语法 &#xff1a;struct point name { int x; int y; int z;} point 和 name是任意命名的名字&#xff0c;含义是&#xff0c;声明一个变量类型为st…...

PyTorch Tensor维度变换实战:view/squeeze/expand/repeat全解析

本文从图像数据处理、模型输入适配等实际场景出发&#xff0c;系统讲解PyTorch中view、squeeze、expand和repeat四大维度变换方法。通过代码演示对比不同方法的适用性&#xff0c;助您掌握数据维度调整的核心技巧。 一、基础维度操作方法 1. view&#xff1a;内存连续的形状重…...

212、【图论】字符串接龙(Python)

题目描述 题目链接&#xff1a;110. 字符串接龙 代码实现 import collectionsn int(input()) beginStr, endStr input().split() strList [input() for _ in range(n)]deque collections.deque() # 使用队列遍历结点 deque.append([beginStr, 1]) # 存储当前字符串和遍…...