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.rhkb.cn/news/376788.html

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

相关文章

【JavaWeb程序设计】Servlet(二)

目录 一、改进上一篇博客Servlet&#xff08;一&#xff09;的第一题 1. 运行截图 2. 建表 3. 实体类 4. JSP页面 4.1 login.jsp 4.2 loginSuccess.jsp 4.3 loginFail.jsp 5. mybatis-config.xml 6. 工具类&#xff1a;创建SqlSessionFactory实例&#xff0c;进行 My…

fortran简单排序算法,对一维、二维矩阵进行正序或倒序排序

fortran简单排序算法&#xff0c;对一维、二维矩阵进行正序或倒序排序 0. 引言1. 算法实现1.1 一维数组排序1.2 二维数组排序1.2 module文件 2. 结语 0. 引言 排序算法是计算机科学中的一项重要技术&#xff0c;它将一组数据按照特定的顺序排列起来。排序算法有很多种&#xff…

Three.js相机简明教程

相机校准是 3D 计算机图形学中的一个基本概念&#xff0c;涉及设置虚拟相机以模拟真实世界相机的视角和行为。在 Three.js&#xff08;一种流行的 3D 渲染 JavaScript 库&#xff09;中&#xff0c;了解相机校准对于创建逼真且身临其境的 3D 场景至关重要。在本文中&#xff0c…

2、ASPX、.NAT(环境/框架)安全

ASPX、.NAT&#xff08;环境/框架&#xff09;安全 源自小迪安全b站公开课 1、搭建组合&#xff1a; WindowsIISaspxsqlserver .NAT基于windows C开发的框架/环境 对抗Java xx.dll <> xx.jar 关键源码封装在dll文件内。 2、.NAT配置调试-信息泄露 功能点&#xf…

《Linux系统编程篇》Visual Studio Code配置下载,中文配置,连接远程ssh ——基础篇

引言 vscode绝对值得推荐&#xff0c;非常好用&#xff0c;如果你能体会其中的奥妙的话。 工欲善其事&#xff0c;必先利其器 ——孔子 文章目录 引言下载VS Code配置VS Code中文扩展连接服务器 连接服务器测试确定服务器的IP地址VS code 配置ssh信息选择连接到主机选择这个添…

【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(下)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 ✔️ 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事…

go-高效处理应用程序数据

一、背景 大型的应用程序为了后期的排障、运营等&#xff0c;会将一些请求、日志、性能指标等数据保存到存储系统中。为了满足这些需求&#xff0c;我们需要进行数据采集&#xff0c;将数据高效的传输到存储系统 二、问题 采集服务仅仅针对某个需求开发&#xff0c;需要修改…

Profibus协议转Profinet协议网关模块连接智能电表通讯案例

一、背景 在工业自动化领域&#xff0c;Profibus协议和Profinet协议是两种常见的工业通讯协议&#xff0c;而连接智能电表需要用到这两种协议之间的网关模块。本文将通过一个实际案例&#xff0c;详细介绍如何使用Profibus转Profinet模块&#xff08;XD-PNPBM20&#xff09;实…

Kubernetes 为pod指定DNS

在k8s里面&#xff0c;默认创建pod会给pod默认分配一个默认的dns&#xff0c;这个dns是哪来的呢&#xff1f;可不可以改成其他的dns呢&#xff1f; 先进入到pod里面来&#xff0c;可以看到这里面默认设置的DNS服务器&#xff0c;这个服务器地址为10.96.0.10。这个地址是k8s自动…

[web]-图片上传、文件包含-图片上传

题目内容提示&#xff1a;上传图片试试吧&#xff0c;注意统一时区问题 打开页面如图&#xff0c;源码没有过滤&#xff0c;随便输入&#xff0c;进入上传目录 根据链接可以看到是文件包含&#xff0c;可以利用编码读取源码&#xff0c;这里只列出有用页面的编码&#xff08;?…

一文入门【NestJs】Providers

Nest学习系列 ✈️一文入门【NestJS】 ✈️一文入门【NestJs】Controllers 控制器 &#x1f6a9; 前言 在NestJS的世界里&#xff0c;理解“Providers”是构建健壮、可维护的后端服务的关键。NestJS&#xff0c;作为Node.js的一个现代框架&#xff0c;采用了Angular的一些核…

科普文:微服务技术栈梳理

概叙 如上两图所示&#xff0c;微服务架构下&#xff0c;需要的组件很多&#xff0c;上面中也并未列全。下面将梳理一下国内微服务架构下&#xff0c;用到的技术栈&#xff0c;仅供参考。 科普文&#xff1a;12种常见的软件架构-CSDN博客 没有最好的架构&#xff0c;只有最适…

基于springboot+vue+uniapp的机电公司管理信息系统

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

【C++】 List 基本使用

C List 基本使用 基本概念 list 是一个序列容器&#xff0c;它内部维护了一个双向链表结构。与 vector 或 deque 等基于数组的容器不同&#xff0c;list 在插入和删除元素时不需要移动大量数据&#xff0c;因此在这些操作上具有较高的效率。然而&#xff0c;访问列表中的特定…

MAC通过SSH连接VirtualBox中的虚拟机

1、虚拟机网络连接方式使用桥接方式-桥接网卡 2、重启虚拟机&#xff0c;查看虚拟机ip地址是否跟Mac宿主机在同一网段 3、SSH工具&#xff08;推荐Tabby&#xff09;输入IP、用户名和密码就能连接虚拟机了

通过Bugly上报的日志查找崩溃闪退原因

第一步&#xff0c;解析堆栈信息 在bugly上收集到的信息是这样的 0x000000010542e46c 0x0000000104db4000 6792300 OS应用发生崩溃时&#xff0c;系统会生成一份崩溃日志&#xff0c;这份日志中包含了崩溃时的堆栈信息&#xff0c;但这些堆栈信息并非直接指向源代码&#x…

[ACM独立出版]2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024)

最新消息ICVISP 2024-已通过ACM出版申请投稿免费参会&#xff0c;口头汇报或海报展示(可获得相应证明证书) ————————————————————————————————————————— [ACM独立出版]2024年虚拟现实、图像和信号处理国际学术会议&#xff08;ICVI…

ArduPilot开源飞控之AP_Mount_Topotek

ArduPilot开源飞控之AP_Mount_Topotek 1. 源由2. 框架设计3. 重要函数3.1 动态过程3.1.1 AP_Mount_Topotek::update3.1.2 AP_Mount_Backend::calculate_poi 3.2 基础能力3.2.1 AP_Mount_Topotek::healthy3.2.2 AP_Mount_Topotek::has_pan_control 3.3 设备功能3.3.1 AP_Mount_T…

(十一) Docker compose 部署 Mysql 和 其它容器

文章目录 1、前言1.1、部署 MySQL 容器的 3 种类型1.2、M2芯片类型问题 2、具体实现2.1、单独部署 mysql 供宿主机访问2.1.1、文件夹结构2.1.2、docker-compose.yml 内容2.1.3、运行 2.2、单独部署 mysql 容器供其它容器访问&#xff08;以 apollo 为例&#xff09;2.2.1、文件…

Vue1-Vue核心

目录 Vue简介 官网 介绍与描述 Vue的特点 与其它 JS 框架的关联 Vue周边库 初识Vue Vue模板语法 数据绑定 el与data的两种写法 MVVM模型 数据代理 回顾Object.defineProperty方法 何为数据代理 Vue中的数据代理 数据代理图示 事件处理 事件的基本使用 事件修…