javaweb学习day5--《HTML篇》Springboot的模块创建、HTML的相关知识点详解

一、前言

从今天开始,就要启动后端的学习了,Springboot会贯穿到底,一定要跟着小编严谨的去搭建Springboot环境,依赖添加的过程可能需要2分钟左右,读者们要耐心等待一下,搭建好Springboot之后才算正式的开始web后端的学习,http相关的内容仅供了解。

如果大家准备好的话那就一起开启我们的后端之旅。

二、springboot模块创建

第一步:右键单击->新建->模块

第二步:Springboot->按照顺序进行填写->下一步

注:jdk和java版本号保持一致

第三步:选择版本->勾选Spring Web->创建

三、http协议

3.1 HTTP 的特点和概述

无连接性

  • HTTP 协议是无连接的,即每次请求都是独立的,服务器处理完一个请求后会断开连接,下一个请求需要重新建立连接。这种特性使得每个请求都是独立的,不会保留状态信息,适合分布式的、基于请求-响应模型的网络环境。

无状态性

  • HTTP 协议是无状态的,即服务器不会保存每个客户端的请求信息。每次请求都是独立的,服务器处理完后即忘记。这要求客户端每次请求都要提供必要的信息,如 Cookie、Session ID 等,以维持状态。

简单和灵活

  • HTTP 协议简单直观,使用起来灵活。请求和响应都是文本形式,易于阅读和调试。它支持各种数据格式,如文本、图片、音频、视频等,使其成为广泛应用于互联网上的基础协议。

基于请求-响应模型

  • HTTP 是基于请求-响应模型的协议。客户端发送请求给服务器,请求中包含方法(如 GET、POST)、资源路径、协议版本等信息;服务器根据请求进行处理,并返回响应,响应中包含状态码、响应头和响应体等信息。

状态码和头部信息

  • HTTP 使用状态码来表示请求的处理结果,如200表示成功,404表示未找到资源,500表示服务器内部错误等。同时,HTTP 使用头部信息(Header)来传递额外的请求和响应信息,如内容类型、长度、Cookie等。

安全性和扩展性

  • HTTP 协议本身不具备加密功能,通信内容可以被窃听和篡改,为了提高安全性,可以在 HTTP 上加入 SSL/TLS 协议形成 HTTPS。HTTP 协议也支持通过扩展头部和方法来实现功能的扩展,如缓存控制、身份认证等。

3.2 请求协议

HTTP 请求协议是客户端向服务器发送请求时所遵循的规范和格式。它定义了请求的结构、方法、请求头部、请求体等内容。

请求行(Request Line):

请求行包含了请求的方法、资源路径和协议版本,格式如下:

METHOD PATH VERSION
  • METHOD:请求方法,例如 GET、POST、PUT、DELETE 等,用来指定请求的类型和操作方式。
  • PATH:请求的资源路径,即服务器上请求资源的位置。
  • VERSION:HTTP 协议的版本号,通常是 HTTP/1.1 或 HTTP/2。

示例:

GET /index.html HTTP/1.1

请求头部(Request Headers):

请求头部包含了关于请求的各种信息,如客户端信息、请求内容类型、认证信息等。每个头部字段都以键值对形式出现,格式如下:

HeaderName: Value

常见的请求头部包括:

  • Host:请求的主机名,指示服务器请求的目标。
  • User-Agent:发送请求的用户代理(浏览器、爬虫等)信息。
  • Content-Type:请求体的类型(仅在有请求体时使用)。
  • Authorization:认证信息,用于访问受保护的资源。

示例:

Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36

请求体(Request Body):

某些请求(如 POST、PUT)可能会包含数据或内容,这些数据在请求体中传输。请求体的格式和内容根据请求的方法和需要而有所不同,通常是文本、JSON 数据或二进制数据。

示例:

POST /submit-form HTTP/1.1
Host: www.example.com
Content-Type: application/json{"username": "user123","password": "pass123"
}

HTTP 请求的基本流程:

  1. 建立连接:客户端与服务器建立 TCP 连接。
  2. 发送请求:客户端向服务器发送格式正确的 HTTP 请求。
  3. 服务器处理:服务器接收、解析并处理请求。
  4. 发送响应:服务器生成并发送 HTTP 响应给客户端。

3.3 响应协议

HTTP 响应协议是服务器响应客户端请求时遵循的规范和格式,它定义了响应的结构、状态码、响应头部、响应体等内容。

状态行(Status Line):

状态行包含了响应的协议版本、状态码和状态消息,格式如下:

VERSION STATUS_CODE REASON_PHRASE

  • VERSION:HTTP 协议的版本号,通常是 HTTP/1.1 或 HTTP/2。
  • STATUS_CODE:三位数字的状态码,表示服务器对请求的处理结果。
  • REASON_PHRASE:对状态码的简短描述,方便人类阅读,但实际上并不影响机器处理。

HTTP/1.1 200 OK

响应头部(Response Headers):

响应头部包含了关于响应的各种信息,如服务器类型、响应内容类型、日期等。每个头部字段同样以键值对形式出现,格式如下:

HeaderName: Value

常见的响应头部包括:

  • Content-Type:响应体的类型。
  • Content-Length:响应体的长度。
  • Date:响应的日期和时间。
  • Server:服务器的软件信息。
  • Set-Cookie:设置客户端的 Cookie 信息。

示例:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Date: Sat, 10 Jul 2024 12:00:00 GMT
Server: Apache/2.4.38 (Ubuntu)

响应体(Response Body):

响应体包含了服务器返回给客户端的实际内容,格式和内容根据响应的内容类型而有所不同,可以是文本、HTML、JSON 数据或二进制数据等。

示例:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1234<!DOCTYPE html>
<html>
<head><title>Welcome to Example.com</title>
</head>
<body><h1>Hello, World!</h1><p>This is a sample HTML response.</p>
</body>
</html>

HTTP 响应的基本流程:

  1. 接收请求:服务器接收客户端的 HTTP 请求。
  2. 处理请求:服务器处理请求,生成需要的数据和响应。
  3. 发送响应:服务器将响应的状态行、头部和体发送给客户端。

3.4 协议解析

 1. 请求方法(Request Methods)

HTTP 定义了几种请求方法,常见的包括:

  • GET:请求指定的资源。
  • POST:向指定资源提交数据进行处理请求(如提交表单或上传文件)。
  • PUT:上传指定的资源。
  • DELETE:删除指定的资源。
  • HEAD:获取报头信息,类似于 GET 请求,但服务器只返回报头,不返回实体的主体部分。
  • OPTIONS:列出可对资源实行的请求方法,用来查询服务器支持的方法。

2. 状态码(Status Codes)

HTTP 使用状态码来表示服务器对请求的处理结果,常见的状态码包括:

  • 2xx:成功。例如,200 表示请求成功。
  • 3xx:重定向。例如,301 表示永久重定向,302 表示临时重定向。
  • 4xx:客户端错误。例如,404 表示未找到请求的资源。
  • 5xx:服务器错误。例如,500 表示服务器内部错误。

3. 报文结构

HTTP 报文分为请求报文和响应报文:

  • 请求报文包括请求行、请求头部和请求体。
  • 响应报文包括状态行、响应头部和响应体。

4. 连接管理

HTTP/1.1 引入了持久连接(persistent connection)的概念,使得在同一个 TCP 连接上可以发送和接收多个 HTTP 请求和响应,减少了连接建立和关闭的开销,提高了性能。

URL(Uniform Resource Locator)

URL 是统一资源定位符,用来唯一标识互联网上的资源。HTTP 使用 URL 来指定请求的资源地址,包括协议类型(http:// 或 https://)、主机名、路径、查询参数等信息。

5. 安全性

HTTP 并不具备加密功能,因此传输的数据在传输过程中可能会被窃听或篡改。为了解决这个问题,HTTPS(HTTP Secure)应运而生,通过 SSL/TLS 加密协议来保证通信安全。

6. 版本演变

  • HTTP/0.9:最早的版本,只支持 GET 方法,没有头部信息,响应只包含 HTML 文档。
  • HTTP/1.0:引入了多种请求方法、状态码、头部字段等。
  • HTTP/1.1:支持持久连接、流水线处理、Host 头部字段等,广泛应用于现代 Web。
  • HTTP/2:引入了新的二进制格式,多路复用、头部压缩等,提升了性能。
  • HTTP/3:基于 UDP 实现,提供更快的传输速度和更好的性能。

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

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

相关文章

算力革命:弹性租赁,解锁无限可能

华为创始人任正非曾在一场程序设计竞赛中说道&#xff0c;我们即将进入第四次工业革命&#xff0c;基础就是大算力。事实上&#xff0c;随着5G、人工智能等信息技术的迅猛发展&#xff0c;算力需求持续增长&#xff0c;但高昂的成本和快速的技术迭代让许多中小企业和个人开发者…

Covalent Network(CXT)通过社区投票将代币迁移并更名为 CXT,以推动人工智能更深层次的创新

专注于人工智能和 Web3 的模块化数据基础设施 Covalent Network&#xff08;CXT&#xff09;宣布&#xff0c;其治理提案已通过社区投票并顺利实施&#xff0c;即将原生代币 CQT 迁移为新的 CXT 代币&#xff0c;并部署至新的合约。这一关键性转变标志着 Covalent Network&…

springboot文达办公物资管理系统-计算机毕业设计源码51191

摘要 本文介绍了一种名为"文达办公物资管理系统"的基于JAVA语言、基于Springboot框架和MYSQL数据库开发的管理系统。该系统主要分为管理员和员工用户两个角色&#xff0c;以满足不同用户的需求。 对于管理员用户&#xff0c;系统提供了仪器设备管理、设备借用管理、设…

【大数据技术】换新电脑了,如何快速迁移MySQL到新电脑上(含程序+数据),这样既快速又高效,省去了“各种安装+各种配置+各种迁移数据”带来的麻烦和时间

【大数据技术】换新电脑了&#xff0c;如何快速迁移MySQL到新电脑上(含程序数据 背景步骤总结 背景 很久没有写博文了哦&#xff0c;最近我换了新的笔记本,于是需要在新笔记本电脑上搭建MySQL环境&#xff0c;因为我原电脑上是安装的MySQL解压版&#xff0c;故我想偷偷懒&…

可理解性评估:使用Google Gemini优化语音识别的意义保留

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

实验1 —— 安全策略的练习

实验拓扑图 实验要求 1.DMZ区内的服务器&#xff0c;办公区仅能在办公时间内&#xff08;9&#xff1a;00-18&#xff1a;00&#xff09;可以访问&#xff0c;生产区的设备全天可以访问&#xff1b; 2.生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3.办公区…

动手学Avalonia:基于硅基流动构建一个文生图应用(一)

文生图 文生图&#xff0c;全称“文字生成图像”&#xff08;Text-to-Image&#xff09;&#xff0c;是一种AI技术&#xff0c;能够根据给定的文本描述生成相应的图像。这种技术利用深度学习模型&#xff0c;如生成对抗网络&#xff08;GANs&#xff09;或变换器&#xff08;T…

【Mac】Charles for Mac(HTTP协议抓包工具)及同类型软件介绍

软件介绍 Charles for Mac 是一款功能强大的网络调试工具&#xff0c;主要用于HTTP代理/HTTP监视器。以下是它的一些主要特点和功能&#xff1a; 1.HTTP代理&#xff1a;Charles 可以作为HTTP代理服务器&#xff0c;允许你查看客户端和服务器之间的所有HTTP和SSL/TLS通信。 …

金航标kinghelm宋仕强在介绍自己公司时说

金航标kinghelm宋仕强在介绍自己公司时说&#xff0c;金航标成立于2007年&#xff0c;成立地点在华强北雷圳大厦803室&#xff0c;后搬到华强北广业大厦24楼CD室&#xff0c;后搬迁到龙华展滔科技大厦C座C809和C817室&#xff0c;现在的办公地址为龙岗区坂田街道百瑞达大厦&…

PageDTO<T>,PageQuery,BeanUtils,CollUtils的封装

一、PageDTO<T> import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.annotation.JsonIgnore; import com.tianji.common.utils.BeanUtils; import com.tianji.common.utils.CollUtils; import com.tianji.common.utils.…

C#中的MD5摘要算法与哈希算法

文章目录 一、哈希算法基础二、MD5 算法原理三、MD5摘要算法四、哈希算法五、C#实现示例MD5算法示例哈希算法示例字符串MD5值对比 六、总结 一、哈希算法基础 哈希算法是一种单向密码体制&#xff0c;它将任意长度的数据转换成固定长度的字符串。这种转换是不可逆的&#xff0…

IDEA中配置代理,解决Codearts Snap登陆不了的问题

问题描述&#xff1a;在mac电脑中的idea中安装了华为的codearts snap插件&#xff0c;一直登录不了&#xff0c;账号是没问题的&#xff0c;后来我怀疑是我的代理有问题&#xff0c;找到IDEA中的代理设置先是有这个问题“You have JVM property "https.proxyHost" se…

千呼新零售2.0分销商城视频介绍

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

Android初学者书籍推荐

书单 1.《Android应用开发项目式教程》&#xff0c;机械工业出版社&#xff0c;2024年出版2.《第一行代码Android》第二版3.《第一行代码Android》第三版4.《疯狂Android讲义》第四版5.《Android移动应用基础教程&#xff08;Android Studio 第2版&#xff09;》 从学安卓到用安…

【机器学习】支持向量机与主成分分析在机器学习中的应用

文章目录 一、支持向量机概述什么是支持向量机&#xff1f;超平面和支持向量大边距直觉 二、数据预处理与可视化数据集的基本信息导入必要的库加载数据集数据概况数据可视化特征对的散点图矩阵类别分布条形图平均面积与平均光滑度的散点图变量之间的相关性热图 三、模型训练&am…

在conda的环境中安装Jupyter及其他软件包

Pytorch版本、安装和检验 大多数软件包都是随Anaconda安装的&#xff0c;也可以根据需要手动安装一些其他软件包。 目录 创建虚拟环境 进入虚拟环境 安装Jupyter notebook 安装matplotlib 安装 pandas 创建虚拟环境 基于conda包的环境创建、激活、管理与删除http://t.cs…

podman 替代 docker ? centos Stream 10 已经弃用docker,开始用podman了!

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

浅谈React

forwardRef和useImperativeHandle的联动使用 import React, { useImperativeHandle, useRef } from "react" import { forwardRef } from "react"const CustomInput forwardRef((props, ref) > {const inputRef useRef<HTMLInputElement>(null…

解决MCM功率电源模块EMC的关键

对MCM功率电源而言&#xff0c;由于其工作在几百kHz的高频开关状态&#xff0c;故易成为干扰源。电磁兼容性EMC&#xff08;Electro Magnetic Compatibility&#xff09;&#xff0c;是指设备或系统在其电磁环境中符合要求运行并不对其环境中的任何设备产生无法忍受的电磁干扰的…

浪潮天启防火墙TQ2000远程配置方法SSL-xxx、L2xx 配置方法

前言 本次设置只针对配置VXX&#xff0c;其他防火墙配置不涉及。建议把防火墙内外网都调通后再进行Vxx配置。 其他配置可参考&#xff1a;浪潮天启防火墙配置手册 配置SSLVxx 在外网端口开启SSLVxx信息 开启SSLVxx功能 1、勾选 “启用SSL-Vxx” 2、设置登录端口号&#xff0…