【JavaWeb篇】HTTP请求构造方式

news2024/11/24 11:29:43

✅作者简介:大家好,我是小杨
📃个人主页:「小杨」的csdn博客

🐳希望大家多多支持🥰一起进步呀!


HTTP请求构造方式

1,通过form表单构造

form 表单是HTML中的一个常用标签,可以用于给服务器发送 GET 或者 POST 请求。

1)form表单标签的使用

image-20230526224917169

form中的重要参数:

action:构造的 HTTP 请求的 URL 是什么。

method:构造的 HTTP 请求的 方法 是 GET 还是 POST (form 只支持 GET 和 POST)。

input中的重要参数:

type:表示输入框的类型,text 表示文本,password 表示密码,submit 表示提交按钮。

name:表示构造出的 HTTP 请求的 query string 的 key,query string 的 value 就是输入框中用户输入的内容。

value:input 标签的值,对于 type 为 submit 类型来说,value 就对应了按钮上显示的文本。

2)构造GET请求

构造GET请求代码:

image-20230526225428749

页面展示的效果:

image-20230526225832128

在输入框中填写数据后,点击提交就构造GET请求并发送出去。

image-20230526225804011

通过Fiddler抓包工具抓取该GET请求,该请求详细信息如下:

image-20230526230411290

注意:除了首行之外,剩余的请求报头Header和请求正文Body部分都是浏览器自主添加的。

3)构造POST请求

构造POST请求代码:

image-20230526225938909

页面展示的效果:

image-20230526225832128

在输入框中填写数据后,点击提交就构造POST请求并发送出去。

image-20230526225804011

通过Fiddler抓包工具抓取该POST请求,该请求详细信息如下:

image-20230526230220335

注意:当method从 GET 变成 POST,数据从请求字符串query string移动到了请求正文body中。

2,通过 Ajax 构造

Ajax(Asynchronous JavaScript and XML)是 2005 年提出的一种 JavaScript 给服务器发送 HTTP 请求的方式。

其主要特点是异步通信,Ajax能够在不刷新整个页面的情况下向服务器发送异步请求,即可以不需要刷新页面/页面跳转就能数据传输。

拓展:同步通信和异步通信

同步执行是指代码按顺序执行,每一行代码执行完后再执行下一行。在同步执行的过程中,如果某一行代码需要等待某个操作完成(例如读取文件或网络请求),那么整个程序就会被阻塞,等待这个操作完成后才能继续执行下一行代码。

同步通信是指发送方在发送数据后,需要等待接收方的响应才能继续执行后续的操作。在同步通信中,发送方和接收方在数据传输过程中需要保持同步,即发送方发送数据后必须等待接收方的响应,接收方收到数据后需要立即响应。同步通信的特点是简单直观,确保数据传输的正确性。但是会导致通信过程中出现阻塞,响应速度慢,系统的可扩展性和并发性较差等问题。

异步通信是指发送方在发送数据后,无需等待接收方的响应即可继续执行后续的操作。在异步通信中,发送方和接收方的数据传输是异步的,即发送方发送数据后无需等待接收方的响应,接收方在收到数据后会立即进行处理,并在处理完成后发送响应。异步通信的特点是响应速度快,系统的可扩展性和并发性较好,但是会增加程序的复杂度和开发难度。

同步和异步生活实例:手机上银行转账

当你想把一张银行卡的钱转账到另外一张银行卡中时,银行转账系统会在你输入转账金额和收款方账户信息后,发送转账请求给银行系统。银行服务器会验证付款方账户余额是否充足,如果付款方账户余额充足,就会返回一条转账成功的响应,告诉你转账操作成功。但是,转账并不是立即完成的。在转账成功的响应返回之后,银行服务器需要一定的时间来处理转账请求,也就是需要过一段时间才能刷新账户余额才能看到钱到账。


这个过程是异步的,不需要等待转账操作完成后才返回响应。


如果你填写的账户信息有误,银行服务器会在处理转账请求时返回一条收款方信息有误,转账失败的响应,告诉你转账操作失败了。这时需要将钱原路返回给付款方,手机银行自动发送一个请求给银行系统,告诉它将钱转回给付款方。等到银行系统收到这个请求后,它才会执行将钱转回给付款方的操作,更新交易记录、信息提示等一系列操作。


这个过程是同步的,需要等待转账操作完成后才能执行后续的操作。

通过 Ajax 构造HTTP请求的代码:

image-20230526230630948

上述 Ajax 代码细节介绍:

在jQuery中,$ 是一个特殊的全局对象,jquery提供的API都是以$.ajax()方法形式来引出,该方法接受一个对象作为参数。

对象中包含了请求的相关配置信息,属性与属性值是以键值对形式存在,键与值之间使用冒号分隔,键值对之间使用逗号分隔。

success声明的回调函数,当服务器收到请求后能够根据请求返回对应的响应才会被调用,如果请求失败或返回的数据格式不正确,则不会触发该函数,此时可以通过 error 声明的回调函数来处理请求失败的情况。

通过Ajax构造请求可以一下创建多个,也就是在<script标签里写多个$.ajax();,请求构造的顺序是从上往下依次执行,但是收到响应的顺序和触发回调函数的顺序也是不确定的,因为网络上存在后发先至的情况。

通过Fiddler抓包工具抓取该GET请求,该请求详细信息如下:

image-20230526230758816

打开开发者工具可查看到报错信息:

image-20230526230916367

产生报错的原因为:上述代码执行只能构造对应的请求往搜狗服务器发送,但无法获取到正确的请求响应信息,而这是因为我们构造的请求,搜狗服务器无法正常处理,故服务器无法返回与请求对应的响应。

通过Fiddler抓包工具抓取该GET请求,该请求响应详细信息如下:

image-20230526231041422

Ajax构造方式与form表单构造方式对比:

Ajax构造方式与form表单构造方式相比,ajax功能更强,不仅支持构造GET和POST请求,还支持构造PUT请求,DELETE请求 …

Ajax构造发送的请求中的请求报头header 和请求正文body可以灵活地进行设置。

3,通过第三方工具构造

除了上述的构造请求的方式,我们还可以通过第三方工具进行构造,例如第三方工具Postman。

首先,打开Postman后,依次点击 Workspaces —> My Workspace :

image-20230526231324453

其次,点击 + 新建标签页:

image-20230526231437656

最后,在该标签页构造HTTP请求

image-20230526232026636

构造的GET请求的相关信息

image-20230526232252852

构造的请求返回的响应信息

image-20230526233043413

GET请求的构造和返回的响应信息:

image-20230526232834824


结语

这就是本期博客的全部内容啦!如果有什么其他的问题无法自己解决,可以在评论区留言哦!

最后,如果你觉得这篇文章写的还不错的话或者有所收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(点赞👍,评论✍,收藏📖),多多支持一下!各位的支持是我最大的动力,后期不断更新优质的内容来帮助大家,一起进步。那我们下期见!

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

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

相关文章

【深度学习】pytorch——线性回归

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 深度学习专栏链接&#xff1a; http://t.csdnimg.cn/dscW7 pytorch——线性回归 线性回归简介公式说明完整代码代码解释 线性回归简介 线性回归是一种用于建立特征和目标变量之间线性关系的统计学习方法。它假设…

GoLong的学习之路(十七)基础工具之GORM(操作数据库)(更新)

书接上回&#xff0c;上回写道&#xff0c;GORM的查询和创建&#xff08;插入数据&#xff09;&#xff0c;这回继续些增删改查的改和删的操作。 文章目录 更新update修改单个列修改多个列修改选定字段批量更新新阻止全局更新 使用 SQL 表达式更新注意 根据子查询进行更新不使用…

Modbus转Profinet网关与流量变送器兼容转ModbusTCP协议博图配置案例

首先&#xff0c;我们需要明确电磁流量计的通信协议是Modbus&#xff0c;而西门子1200PLC的通信协议是Profinet。这两种协议在功能和特性上存在一定的差异&#xff0c;因此需要使用兴达易控Modbus转Profinet网关设备进行转换。兴达易控的XD-MDPN100是Profinet转ModbusTCP的网关…

功率放大器的种类和作用是什么

功率放大器是一种电子设备&#xff0c;用于将输入信号的功率增加到更高的水平&#xff0c;以驱动负载或输出设备。功率放大器广泛应用于各种领域&#xff0c;包括通信、音频、无线电频谱分析、激光器和雷达等。 根据应用需求和工作原理不同&#xff0c;功率放大器可分为几种不同…

笔记:IDEA如何修改代码后,不重启服务器局部更新资源

前言 平常用IDEA开发网页写调样式和测功能最讨厌改一丁点东西就要重启整个服务器&#xff0c;所以本文主要就是解决此问题从而提高开发效率&#xff0c;避免浪费过多时间。 具体步骤 1、打开设置框 2、先新增exploded结尾的&#xff0c;并apply应用&#xff0c;把没有结尾的…

【Kubernetes部署】二进制部署单Master Kurbernetes集群 超详细

二进制部署K8s 一、基本架构和系统初始化操作1.1 基本架构1.2 系统初始化操作 二、部署etcd集群2.1 证书签发Step1 下载证书制作工具Step2 创建k8s工作目录Step3 编写脚本并添加执行权限Step4 生成CA证书、etcd 服务器证书以及私钥 2.2 启动etcd服务Step1 上传并解压代码包Step…

云尘-Node1 js代码

继续做题 拿到就是基本扫一下 nmap -sP 172.25.0.0/24 nmap -sV -sS -p- -v 172.25.0.13 然后顺便fscan扫一下咯 nmap: fscan: 还以为直接getshell了 老演员了 其实只是302跳转 所以我们无视 只有一个站 直接看就行了 扫出来了两个目录 但是没办法 都是要跳转 说明还是需要…

轻松搭建Nextcloud私有云盘并实现远程访问【内网穿透】

文章目录 摘要1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文件共享服…

opencv第一个例子

目的 这是用用QTopencv实现的一个完整的展示图片的例子&#xff0c;包括了项目的配置文件&#xff0c;完整的代码&#xff0c;以用做初次学习opencv用。 代码 工程文件&#xff1a; QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsTARGET openCv1 TEMPL…

双路比例阀放大器

双路比例阀放大器是一种常见的电子设备&#xff0c;它能够将输入信号放大到所需的水平&#xff0c;并输出两个相等或不同的放大信号。这种放大器通常由一个放大器和一个驱动电路组成&#xff0c;可以用于各种应用中&#xff0c;如液压控制、气动控制等。 在液压控制方面&#…

物联网系统的基本构件

1.基本组件 云服务器 数据库消息服务器应用服务器管理平台 云APP 云服务器的维护终端微信客户端网页管理平台 页面式的更全面的管理。组态软件和PLC软件 编程软件终端设备 PLC 主要指标&#xff0c;模拟数字接口数量 DO有 继电器和1.5,2.5.5V数字输出一般支持扩展IO模块模拟量…

利用win32的GetLastInputInfo函数实现锁屏(C#)

前两天看到群里面讨论这个问题&#xff0c;刚好我们上一家公司的系统也有这个功能&#xff0c;就研究了一下&#xff0c;我们这边实现这个功能的目的如下&#xff1a;当用户长时间不操作系统时&#xff0c;自动退出系统并退回到登录界面&#xff0c;想要使用系统&#xff0c;就…

软文投放、发稿:如何写一篇优质的软文

在当今的营销世界中&#xff0c;软文是一种强大的工具&#xff0c;可以用来宣传产品、建立品牌形象&#xff0c;以及与受众建立更深层次的联系。然而&#xff0c;要写一篇优质的软文并不容易。本文将介绍如何撰写一篇引人入胜的软文&#xff0c;以吸引读者的兴趣和赢得他们的信…

用 Java 实现 Syslog 功能

1、业务场景 用一个 Spring Boot 的项目去实现对管控设备的监控、日志收集等。同时需要将接收到的日志进行入库&#xff0c;每天存一张表&#xff0c;如device_log_20231026… 2、Syslog客户端&#xff08;接收日志的服务器&#xff0c;即运行Java程序的服务器&#xff09; 2…

JavaScript 基础 - 第4天

理解封装的意义&#xff0c;能够通过函数的声明实现逻辑的封装&#xff0c;知道对象数据类型的特征&#xff0c;结合数学对象实现简单计算功能。 理解函数的封装的特征掌握函数声明的语法理解什么是函数的返回值知道并能使用常见的内置函数 函数 理解函数的封装特性&#xff0c…

软件测试/测试开发丨UbuntuServer环境准备

点此获取更多相关资料 前提 现有设备是一套 i54090 的组合&#xff0c;安装了 Ubuntu 22.04.3 LTS Server 版本&#xff0c;后文的安装步骤都是基于这套系统和配置进行操作。 系统准备 查看是否安装了 gcc 命令行中执行 gcc -v 正常输入如图效果的&#xff0c;说明已经成功…

kubeadm部署kubernetes1.28

k8s在1.24版本以后删除了内置dockershim插件&#xff0c;原生不再支持docker运行时&#xff0c;需要使用第三方cri接口cri-docker https://github.com/Mirantis/cri-dockerd.git 安装前&#xff0c;需要先升级systemd和主机内核&#xff0c;本操作文档安装的是最新的版本kube…

微信小程序渲染的富文本里面除了img标签外什么都没有,该如何设置img的大小

微信小程序富文本渲染&#xff1a; <rich-text nodes"{{content}}"style"{{style}}" ></rich-text> content是接口得到的值 let cont object.contentlet a cont.replace(/<img/gi,<img style"max-width:94%;height:auto;margi…

大厂面试题-什么是IO的多路复用机制?

IO多路复用机制&#xff0c;核心思想是让单个线程去监视多个连接&#xff0c;一旦某个连接就绪&#xff0c;也就是触发了读/写事件。 就通知应用程序&#xff0c;去获取这个就绪的连接进行读写操作。 也就是在应用程序里面可以使用单个线程同时处理多个客户端连接&#xff0c…

四川竹哲电子商务有限公司服务怎么样?

随着抖音电商的日益崛起&#xff0c;越来越多的商家开始关注这个充满无限商机的平台。四川竹哲电子商务有限公司作为一家专业的抖音电商服务公司&#xff0c;凭借其丰富的经验和优秀的服务&#xff0c;成为了众多商家在抖音电商领域中的重要合作伙伴。 一、专业实力 作为一家专…