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 概述

H yperT extT ransfer P rotocol :超文本传输协议,规定浏览器服务器 之间数据传输的规则

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

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

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 服务器

相关推荐
c***42101 分钟前
python的sql解析库-sqlparse
数据库·python·sql
不穿格子的程序员2 分钟前
MySQL篇1——MySQL深度揭秘:事务隔离级别与 MVCC 原理详解
数据库·mysql·innodb·mvcc·事务隔离级别
好好研究4 分钟前
SSM整合(一)
java·spring·mvc·mybatis·db
v***7947 分钟前
MySQL篇之对MySQL进行参数优化,提高MySQL性能
数据库·mysql
q***735526 分钟前
在Spring Boot项目中使用MySQL数据库
数据库·spring boot·mysql
z***026026 分钟前
GaussDB数据库中SQL诊断解析之配置SQL限流
数据库·sql·gaussdb
s***558128 分钟前
【MySQL】RedHat8安装mysql9.1
数据库·mysql·adb
笨笨没好名字33 分钟前
AI4CAD:用python+creo实现批量参数建模(creo二次开发示例)
数据库·python·microsoft
f***453234 分钟前
PostgreSQL常用时间函数与时间计算提取示例说明
数据库·postgresql
6***092634 分钟前
Spring 中集成Hibernate
java·spring·hibernate