复习HTML(进阶)

news/2024/10/4 14:26:52/
htmledit_views">

前言

上一篇的最后我介绍了在表单中,上传文件需要使用到 method属性 和enctype属性。本篇博客主要是详细的介绍这些知识

html">   <form  action="http://localhost:8080/test" method="post"  enctype="multipart/form-data">

method属性

method请求方式有

1 get(默认的请求方式):数据跟在资源路径下(也就是我们在后端使用@RequestMapping, @GetMapping 映射下的初始路径)

如图所示:test? +请求数据(查询参数)

  @RequestMapping("/test")public String ff(User user ,MultipartFile file) {System.out.println("user="+user);System.out.println("file="+file.getSize());return "收到数据";}

2 post : 发送的数据在请求体(requestbody)

补充:我们常使用@RequestBody注解 在请求体中招发送的数据

注意:enctype属性 常常和post 搭配使用

举个例:我们上传文件时需要使用enctype属性,是向服务器发送数据

3 get 请求和post请求的区别

1 发送数据位置不同

原因:

上面介绍的。get:数据是跟在路径下的。也就是我们后面要了解的请求行中;post:数据是在请求体中

2 应用场景不同

原因:

1 get:主要是从服务器中,获得数据。;post:主要是向服务器中提交数据。

3 后端接收方式不同

原因:

1 发送get请求时,需要使用@GetMapping注解映射

2 发送post请求时,需要使用@PostMapping注解 映射

4 安全性不同

原因:

1 发送get请求时,请求数据是直接呈现地址栏上,容易被捕捉,安全性方面较弱。

如下图所示:我标红的就是csdn网址中请求数据(该数据使用键值对的方式:k=v)

2  发送post请求时,请求的数据是在request body请求体中,不会在地址栏上显示,安全性比较高然而,需要注意的是,即使使用POST请求,如果不使用HTTPS加密,报文正文仍然是明文传输,可能仍然面临被截获和读取的风险。

enctype属性

作用

在post请求时,指定请求体的数据格式

常见的数据格式如下图所示:

 数据格式

含义:发送请求时,数据需要遵循的规则如编码要求等

重点:当我们上传文件时指定数据格式为: multipart/form-data

重点:表单只支持以application/x-www-form-urlencoded 和 multipart/form-data格式发送数据

1 application/x-www-form-urlencoded

注意:

1 get 和post都是默认使用application/x-www-form-urlencoded数据格式

2 编码使用 url编码 

url编码:utf-8 +16进制

什么意思呢

如果遇到特殊字符如汉字 

步骤

1 先转换成utf-8编码

2 最后使用16进制替换

2 multipart/form-data

注意:

1 使用boundary =123作为分隔符,把多个内容分隔开

2 多个编码形式根据有多少个内容决定

3 application/json

含义

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有简洁、清晰、易于阅读和编写的特点,同时易于机器解析和生成。JSON的应用场景非常广泛,

注意:

1 当我们使用json 数据格式时,向服务器发送请求,并传递数据,必须先通过@RequestBody 从请求体中找到对应的数据,并转化成可以被JavaBean识别的形式。

2 当我们需要返回数据时,需要通过@ResponseBody注解方式重新转成json数据格式被前端接受或作用于其他。

特点:使用utf-8 编码,数据采用键值对的方式

典型的应用场景:

  1. Web应用

    • 在前后端分离架构中,服务器端通过HTTP响应将数据以JSON格式发送给客户端(如浏览器)。
    • 客户端的JavaScript代码可以解析JSON并动态更新网页内容,例如从服务器获取用户信息、商品列表、新闻文章等。
  2. AJAX异步请求

    • 浏览器使用AJAX技术发起异步请求,服务器返回JSON数据。
    • 无需刷新整个页面即可实现局部内容的动态加载和更新。
  3. RESTful API

    • JSON是现代API设计的标准数据格式之一,用于规定请求参数和响应数据结构。
    • API使用者通过发送JSON请求到服务器,并接收JSON格式的响应结果。
  4. 数据库

    • 某些NoSQL数据库(如MongoDB)直接支持JSON作为存储格式。
    • 在关系型数据库中,也常将JSON字符串化后存入特定字段,便于存储半结构化或松散结构的数据。
    • JSON字段在数据库中适用于数据结构动态变化、存储复杂数据类型、存储非关系型数据、减少数据库查询次数、存储元数据以及实现灵活的查询方式等场景。
  5. 本地存储

    • 浏览器提供的localStorage或IndexedDB等API允许以JSON格式存储用户数据、应用设置等。
    • 便于离线访问或持久化状态。
  6. 应用程序配置

    • 在软件开发中,JSON常用于编写配置文件。
    • 其清晰的结构和易读性便于开发者管理应用程序的各项设置和参数。
  7. 跨服务通信

    • 在微服务架构中,JSON常用作RPC调用的数据交换格式。
    • 使得不同服务间能以统一、标准的方式传递复杂数据结构。
  8. 原生/混合移动应用

    • 通过HTTP请求从服务器获取JSON数据,用于填充移动端界面。
    • 如新闻阅读、社交媒体、电商应用等。

json对象格式:{“ 属性名”:属性值}

补充:属性值可以是:字符串/数字/true/false/null

HTTP请求

HTTP请求组成

1 请求行 2 请求头 3 请求体

以下是get请求示例 和post请求示例

从中,我们可以发现 :

1 get请求数据位于请求行中;post 请求数据位于请求体

2 Content-Type ,Content-Length 表示请求体的数据格式 和请求体的长度

3 在HTTP请求中 请求行和请求头是必须要有的,至于请求体都可以(可有,可不有)

session 原理

含义:session作为一个短暂的存储器

理解:

每当客户端(也就是运行前端代码时)发送请求,使用session对象 记录我们向服务器传递的数据。

同时 当session对象存储我们发送的数据后,也会返回一个特殊的标识(相当于门牌号)JSESSIONID,当我们需要二次使用时,我们可以根据标识来找到我们之前发送的数据。


http://www.ppmy.cn/news/1534460.html

相关文章

C/C++/EasyX ——入门图形编程(2)

【说明】这一篇的内容都是很基础的&#xff0c;所以内容会很多&#xff0c;具体现在也不知道要写多少&#xff0c;先写下去吧&#xff0c;新手小白们都不用担心&#xff0c;这个内容不会很难&#xff0c;因为我也是从一无所知过来的&#xff0c;很好入门的&#xff0c;&#xf…

确保接口安全:六大方案有效解决幂等性问题

文章目录 六大方案解决接口幂等问题什么是接口幂等&#xff1f;天然幂等不做幂等会怎么样&#xff1f; 解决方案1&#xff09;insert前先select2&#xff09;使用唯一索引3&#xff09;去重表加悲观锁4&#xff09;加乐观锁之版本号机制5&#xff09;使用 Redisson 分布式锁6&a…

Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录

概述 公司有个项目使用到Grafana作为监控界面,因为项目方的环境极其复杂,仅物理隔离的环境就有三四个,而且每个都得部署项目,今天在某个环境测试,查看界面遇到一个比较奇怪的Grafana问题,后面针对该问题进行跟踪分析并解决,故而博文记录,用于备忘。 问题 登录项目We…

30min 的OpenCV learning Note

1.安装python和pycharm与环境搭配 打开Windows终端&#xff1a;&#xff08;winR&#xff09;&#xff08;一般使用清华镜像网站安装库比较快&#xff09; pip install opencv-contrib-python -i https://pypi.mirrors.ustc.edu.cn/simple 或者 python -m pip install open…

geodatatool(地图资源下载工具)3.8更新

geodatatool&#xff08;地图资源下载工具&#xff09;3.8&#xff08;新&#xff09;修复更新&#xff0c;修复更新包括&#xff1a; 1.高德POI数据按行政区划下载功能完善。 2.修正高德POI数据类型重复问题。 3.对高德KEY数据访问量超过最大限制时&#xff0c;提示错误并终止…

python的内存管理机制

python的内存管理机制主要分为三个部分&#xff1a;引用计数、垃圾回收和内存池机制。 引用计数机制&#xff1a; python通过维护每个对象的引用计数来跟踪内存中的对象。当对象被创建时就会有一个引用计数&#xff0c;当对象不再被使用时&#xff0c;引用计数为0&#xff0c…

win系统网络重置

重置网络命令&#xff1a;netsh winsock reset 输入winR 调用运行窗口&#xff0c;回车 输入重置网络命令&#xff1a;netsh winsock reset 注意空格

3D Gaussian Splatting 学习笔记

目录 突破3DGS泛化和实用壁垒&#xff01;GS-Net&#xff1a;首个具有跨场景泛化能力的即插即用3DGS模块 升级版 SGD 一问读懂3D Gaussian Splatting 3DGS高斯泼溅技术 系统首先对 SfM 点云进行初始化 代码概要 突破3DGS泛化和实用壁垒&#xff01;GS-Net&#xff1a;首个…