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

jsp中关于一些常识的区别

文章目录

  • Get 请求
  • Post 请求
  • Post 请求和 Get 请求的主要区别
  • 如何选择 Post 请求和 Get 请求?
  • forward
  • redirect
  • forward和redirect的区别
  • Jsp中的动态include和静态include的区别
  • session和cookie的区别

Get 请求

Get 请求是 HTTP 协议中的一种请求方法,通常用于从服务器获取资源。使用 Get 请求时,参数会附加在 URL 的末尾,多个参数之间用 & 符号分隔。

Get 请求的一些特点:

  • 可以从服务器获取资源。
  • 参数暴露在 URL 中,存在安全隐患。
  • 受到 URL 长度的限制,无法传输大量数据。
  • Get 请求具有幂等性,多次请求得到的结果是相同的。
  • 响应结果可以被浏览器缓存。

Post 请求

Post 请求是 HTTP 协议中的一种请求方法,通常用于向服务器提交数据,或者创建新的资源。使用 Post 请求时,数据会放在请求体(body)中传输,而不是暴露在 URL 里。

Post 请求的一些特点:

  • 可以向服务器提交数据,或者创建新的资源。
  • 参数在请求体中传输,较为安全和隐蔽。
  • 请求体的大小没有限制,可以传输大量数据。
  • Post 请求默认不具有幂等性,多次请求可能得到不同结果。
  • 响应结果默认不会被浏览器缓存。

Post 请求和 Get 请求的主要区别

Post 请求和 Get 请求在以下几个方面存在显著的差异:

1、参数传递方式不同

  • Get 请求的参数附加在 URL 末尾,多个参数用 & 分隔。
  • Post 请求的参数放在请求体中传输。

2、安全性和隐私性不同

  • Get 请求的参数直接暴露在 URL 中,不安全也缺乏隐私性。
  • Post 请求的参数在请求体中,相对更加安全和隐蔽。

3、传输数据量的限制不同

  • Get 请求受限于 URL 的最大长度(通常是 2048 个字符),无法传输大量数据。
  • Post 请求的请求体大小没有限制,可以传输任意量的数据。

4、幂等性不同

  • Get 请求是幂等的,多次请求得到的结果是相同的。
  • Post 请求默认是非幂等的,多次请求可能会创建多个资源或产生不同结果。

5、可缓存性不同

  • Get 请求的响应可以被浏览器缓存,下次请求时直接使用缓存数据。
  • Post 请求的响应默认不会被浏览器缓存。

6、书签和历史记录支持度不同

  • Get 请求的 URL 可以被加入书签,请求参数会被保留。
  • Post 请求的参数不会被保存在书签或浏览器历史记录中。

如何选择 Post 请求和 Get 请求?

在选择使用 Post 还是 Get 请求时,可以遵循以下一些原则:

  • 如果是获取资源,并且没有修改服务器数据,使用 Get 请求。
  • 如果是向服务器提交数据,或者创建、更新资源,使用 Post 请求。
  • 如果参数包含敏感信息(如密码),或者数据量较大,使用 Post 请求。
  • 如果要支持 URL 收藏和分享,使用 Get 请求。

在设计 RESTful 风格的 API 时,通常也会根据资源的操作语义来映射 HTTP 方法:

  • 获取资源列表: GET /resources
  • 获取单个资源: GET /resources/:id
  • 创建新资源: POST /resources
  • 更新资源: PUT 或 PATCH /resources/:id
  • 删除资源: DELETE /resources/:id

遵循这套规范和最佳实践,可以设计出语义清晰、易于理解和使用的接口。
总结:总之,PUT 和 POST 请求是 RESTful API 中两种非常重要的请求方法。正确理解并使用它们,对于开发高质量的后端接口至关重要。

forward

forward又叫转发,表示转发,当请求来到时,可以将请求转发到其他的指定服务,用户端不知晓。

在这里插入图片描述
使用forward注意事项:
1.转发和被转发的请求类型必须一致,即全是GET或者POST
2.转发者方法不能被标识位@RestController或者@ResponseBody

redirect

redirect又叫重定向,表示转发,当请求发给A服务时,服务A返回重定向给客户端,客户端再去请求B服务。

在这里插入图片描述
使用redirect注意事项:
1.redirect不支持post请求
2.redirect需要携带请求参数,需要在url地址中进行编码防止中文乱码。

forward和redirect的区别

1.从地址栏显示来说:
​forword是服务器内部的重定向,服务器直接访问目标地址的 url网址,把里面的东西读取出来,但是客户端 并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的。
​redirect是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的地址。

2.从数据共享来说:
​由于在整个定向的过程中用的是同一个request,因此forward会将request的信息带到被重定向的jsp或者 servlet中使用。即可以共享数据。
​redirect不能共享。

3.从运用的地方来说:
​forword 一般用于用户登录的时候,根据角色转发到相应的模块。
​redirect一般用于用户注销登录时返回主页面或者跳转到 其他网站。

4.从效率来说:
​forword效率高,而redirect效率低。

5.从本质来说:
​forword转发是服务器上的行为,而redirect重定向是客户端的行为。

6.从请求的次数来说:

​forword只有一次请求;而redirect有两次请求。

Jsp中的动态include和静态include的区别

**动态include:**动态include用jsp:include动作实现,会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
**静态include:**静态include用include伪码实现,不会检查所含文件的变化,适合用于包含静态页面。

session和cookie的区别

  1. 存储位置:cookie数据存放在客户的浏览器上,session数据放在服务器上。
  2. 安全性:cookie数据容易修改不安全,session比较安全。
  3. 数据大小:cookie只有4KB,存储量不多,session比较大。
  4. 服务器性能:session会在一定时间内保存在服务器上。当访问量增多,会比较占用你的服务器的性能,考虑性能方面,应该使用cookie。

http://www.mrgr.cn/news/63542.html

相关文章:

  • vscode 创建 vue 项目时,配置文件为什么收缩到一起展示了?
  • 测试RESTful Web服务的工具-RESTClient
  • Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
  • Pytest-Bdd-Playwright 系列教程(6):在测试步骤函数中设置别名数据共享
  • android 逆向破解360加固(MT管理器反编译)
  • 高效记录编程笔记
  • 【AIGC】逆向拆解OpenAI官方提示词Prompt技巧:高效提升ChatGPT输出质量
  • 【私聊记录】最近在忙什么啊?听说你在学人工智能?
  • 工业数字化| 2024年最新物联网平台案例一览
  • 骨传导耳机哪个牌子值得入手?这五款优质机型闭眼入也不踩雷
  • 企业培训知识库 | 产品知识培训的终极指南(定义、好处、方法)
  • 包子凑数(完全背包)
  • 2024 Rust现代实用教程 Borrowing借用 Lifetime生命周期
  • 【C++】关联式容器
  • [ 问题解决篇 ] win11中本地组策略编辑器gpedit.msc打不开(gpedit.msc缺失)
  • ElementUI中el-table双击单元格显示输入框
  • 提升安全上网体验:Windows 11 启用 DOH(阿里公共DNS)
  • 多SpringBoot项目同进程下统一启动
  • 华为认证HCIE通过需要考到多少分?_博睿谷·博睿慕课
  • layui 自定义验证单选框必填
  • Raspberry Pi 树莓派产品系列说明
  • Django入门教程——用户管理实现
  • 【C语言学习笔记】
  • 现货白银实时行情怎么看?首先搞清楚这个原则
  • @Async(“asyncTaskExecutor“) 注解介绍
  • 链栈的引用