计算机网络——如何构造HTTP请求

news2025/7/6 20:42:50

        构造HTTP请求的常见方式有,通过form表单标签来实现,通过ajax来实现,这两种是通过HTML/JS来实现的,还可通过java使用Socket来进行构造(本质就是根据不同的格式来解析字符串,处理请求),最简单的也可以使用一些工具来进行构造,比如使用postman来进行构造。

        用的最多的还是使用HTML/JS来进行请求的构造


目录

1、浏览器自己构造

2、通过form表单构造HTTP请求

3、通过ajax构造HTTP请求

使用ajax构造请求的步骤:

4、通过Java socket 构造HTTP请求 

postman下载、使用:


1、浏览器自己构造

        地址栏里写url,构造出get请求(点击a标签,也会构造get请求,img、link、script也会构造get请求)

局限性太大了!


2、通过form表单构造HTTP请求

举例:

    <form action="https://baidu.com" method="get">
        <input type="text" name="aa">
        <input type="text" name="bb">
        <input type="submit" value="提交">
    </form>

说明: 

 

 补充:

  • action中的URL指的是接收请求的服务器地址。
  • 需要搭配input标签使用,否则无法提交
  • 构造的http请求,input标签中的name属性表示请求中的key,输入的内容表示请求中的value
  • 使用form表单构造请求页面,一定会发生页面跳转,如果不想跳转,就可以采用ajax来进行构造请求,在默认情况下,使用ajax是不会引起页面跳转的
  • 构造的是get请求,请求内容在查询字符串中,构造的是post请求,请求内容在body中

3、通过ajax构造HTTP请求

        该方法本质上是使用js代码来构造HTTP请求,然后可以使用js代码来处理请求,最后可以使用js将请求内容更新到页面上。


注意:
        ajax是基于异步等待来实现的,除了异步等待这个概念之外,还有同步等待的概念,asynchronous 表示异步,synchronized表示同步,下面来说一下异步等待与同步等待的区别:

        同步等待包括同步阻塞等待与同步非阻塞等待,为了便于介绍和理解,我们采用举例子的方式来解释这组概念。

        假设你去饭店吃饭,你点了一份特辣的青椒肉丝,老板收到你的请求后,立马去厨房做饭去了,假设你坐在座位上等,如果你坐在座位上什么也不干,就等着你的饭做好,然后老板喊你自己端上桌吃,这个过程相当于就是同步阻塞等待。

        但是如果你是点了餐后,你去做别的事情了,比如刷抖音,打王者啊,然后打完一把就看一下饭有没有好,经过若干次,发现饭好了,就自己端上来吃,这个就相当于同步非阻塞等待。

        如果点餐后,你去做别的事该干嘛干嘛,等着老板把饭给你端桌上,然后你直接吃,这个就相当于异步等待。

        异步等待与同步等待最大的区别就是到底是调用者主动关注还是被调用者给调用者通知,如果是调用者主动关注那就是同步,否则就是异步。


使用ajax构造请求的步骤:

        由于原生使用ajax较麻烦,所以我们使用jquery中的ajax来进行构造,所以先需要引入jQuery,然后使用$对象调用ajax函数,参数是一个对象,这个对象里面需要包含一些属性,常见的属性有type表示请求方法,url表示访问路径,success表示正确读到http响应之后需要做的事情,是一个函数,error表示请求失败后要做的事情,也是一个函数。

第一步,引入jQuery,搜索jQuery cdn,找到jQuery cdn文件的URL,我们选择min版本的


我一般都是用这个滴! 

        将这个js文件导入到需要使用ajax的HTML代码中即可,或者直接在HTML代码中直接导入官网提供的jQuery路径也是可以的,但是不稳定,毕竟jQuery cdn路径随时都有可能改变。

第二步,使用$对象中的ajax函数,传入一个对象作为参数,这个对象里面需要包含HTTP方法类型type,请求的url,请求成功后该做什么success,失败后该做什么error,请求内容body,当然完整的参数属性不止这一些,这里仅列举了一些必要的属性,更多属性可以参考官方文档手册。
 

    <!-- // 引入jQuery -->
    <script src="jquery路径"></script>
    <script>
        $.ajax({
            // 方法类型
            type:"HTTP方法类型",
            url:"请求页面路径",
            success: function(){
                // 请求处理这个后,该做什么
            },
            error:function(){
                // 请求失败后,该做什么
            }
        })
    </script>

        使用ajax给力扣官网传请求,由于浏览器不支持ajax跨域访问,所以请求也是无法成功被力扣收到的,但是可以抓包,看看发送了什么请求。

    <script src="jQuery.js"></script>
    <script>
        $.ajax({
            type:"post",
            url:"https://leetcode.cn/",
            data:"a=10&b=20",
            success:function(body){
                console.log(body);
            },
            error:function(){
                console.log("error");
            }
        });
    </script>

 抓包结果:

ret 


4、通过Java socket 构造HTTP请求 

        只要是某个编程语言,可以操作网络【能够进行socket编程】就一定可以构造HTTP请求【往一个tcp socket里写一个符合http协议格式的字符串

postman

属于一个专门用来构造http请求的第三方工具,主要用来帮助我们进行接口测试

postman下载、使用:

 记得注册后使用

 创建一个你自己Workspaces

 本期结束啦!!!下期见咯~

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

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

相关文章

【调优】大数据常见 Join 的使用场景

【调优】大数据常见 Join 的使用场景 上次写了大表和大表 join 的调优方法&#xff0c;今天总结一下大数据常见的 Join 方法。 1.Shuffle Join 大数据采用的是分布式存储&#xff0c;一个表的数据会分散在各个节点。为了进行 join&#xff0c;通常都会进行 shuffle 操作&…

【无标题】好消息 突破:IM开源项目OpenIM采用wasm技术实现jssdk

OpenIM 客户端sdk用golang实现&#xff0c;同时采用sqlite存储本地聊天记录&#xff0c;通过gomobile生成sdk&#xff0c;供iOS Android 调用&#xff0c;达到了了一套代码多端复用的效果。最近融合wasm技术&#xff0c;让浏览器具备存储能力&#xff0c;本地聊天记录存储在浏览…

【2022-11-26】JS逆向之北京百姓网

提示&#xff1a;文章仅供参考&#xff0c;禁止用于非法途径&#xff01; 文章目录前言一、页面分析二、验证码识别三、验证码获取四、总结前言 目标网站&#xff1a;https://beijing.baixing.com/zhengzu/?page40 一、页面分析 清除cookie&#xff0c;重新刷新网页&#xf…

学生个人html静态网页制作 基于HTML+CSS+JavaScript+jquery仿苏宁易购官网商城模板

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

第八章《Java高级语法》第4节:位运算经典应用举例

实际开发过程中,位运算有着相当广泛的应用,并且相对于算术运算,位运算的计算速度往往更快。本节就讲解一些使用位运算解决问题的经典例子。 8.4.1判断整数的奇偶性 按照传统的思路,判断一个整数的奇偶性是通过用这个数与2求模,看运算结果是否为0。其实使用位运算也能判断…

基于蚁群算法的车辆路径规划问题的研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

四、vue-cli 介绍与使用

一、单页面应用程序 1.1、什么是单页面应用程序 单页面应用程序&#xff08;英文名&#xff1a;Single Page Application&#xff09;简称SPA&#xff0c;顾名思义&#xff0c;指的是一个web网站中只有唯一的一个HTML页面&#xff0c;所有的功能与交互都在这唯一的一个页面内…

Python:函数使用

目录 一、函数的基本介绍 函数与方法的区别 函数的定义 二、函数返回值及传参的情况 test01 test02 test03 三、函数嵌套 test04 四、lambda表达式 test05 一、函数的基本介绍 函数与方法的区别 直接调用的是函数 通过对象点出来的是方法 print("hello"…

【Leetcode每日一题:882. 细分图中的可到达节点~~~单源最短路径Dijkstra算法】

题目描述 给你一个无向图&#xff08;原始图&#xff09;&#xff0c;图中有 n 个节点&#xff0c;编号从 0 到 n - 1 。你决定将图中的每条边 细分 为一条节点链&#xff0c;每条边之间的新节点数各不相同。 图用由边组成的二维数组 edges 表示&#xff0c;其中 edges[i] […

Docker配置nginx

1.Docker安装nginx 安装的命令 sudo docker search nginx docker pull nginx查看是否安装 docker images运行测试nginx docker run --name nginx-test -p 9091:80 -d nginx --name #给你启动的容器起个名字&#xff0c;以后可以使用这个名字启动或者停止容器 -p #映射端口…

Fedora-14源配置

By: Ailson Jack Date: 2022.11.26 个人博客&#xff1a;http://www.only2fire.com/ 本文在我博客的地址是&#xff1a;http://www.only2fire.com/archives/149.html&#xff0c;排版更好&#xff0c;便于学习&#xff0c;也可以去我博客逛逛&#xff0c;兴许有你想要的内容呢。…

兆易创新GD32 (二)官方工程 Template 和 创建工程

官方例程位于标准库的目录下&#xff0c;详细路径如下 GD32F4xx_Firmware_Library_V3.0.0\GD32F4xx_Firmware_Library_V3.0.0\GD32F4xx_Firmware_Library\Template 文件目录清晰简单。值得注意的是system_gd32f4xx.c 位于CMSIS目录下 CMSIS简单理解ARM公司的统一软件命名规则C…

Spring Security 中的 RememberMe 登录,so easy!

1. RememberMe简介 RememberMe 这个功能非常常见&#xff0c;图 6-1 所示就是 QQ 邮箱登录时的“记住我”选项。 提到 RememberMe&#xff0c;一些初学者往往会有一些误解&#xff0c;认为 RememberMe 功能就是把用户名/密码用 Cookie 保存在浏览器中&#xff0c;下次登录时不…

11.25总结

目录 一.做题总结 1.约瑟夫问题 2.最近请求次数 4.选择题订正 二.最长字符串 三.最长数组问题 一.做题总结 1.约瑟夫问题 我的思路就是先遍历按队员编号添加按顺序初始化每个人的编号. 就建立循环,终止条件就是大小为1 进入每次叫号的循环.让编号不为1的全部移出去 因…

尚硅谷axios笔记——入门学习

这篇笔记不包括源码分析&#xff0c;呜呜感觉时间不够用了还得留时间准备教资面试 axios理解和使用 json-server服务与搭建 终端安装npm i -g json-server 启动服务 json-server --watch db.json 启动在当前文档前 数据去db.json找 查看id为2的页面在http://localhost:3000.…

Linux下调试方法汇总

一、Linux驱动调试方法 Linux驱动调试主要有以下几种方法&#xff1a; 1、利用printk。 2、查看OOP消息。 3、利用strace。 4、利用内核内置的hacking选项。 5、利用ioctl方法。 6、利用/proc 文件系统。 7、使用kgdb。 1.1、printk 这是驱动开发中最朴实无华&#xff0c;同时…

使用 Lambda 表达式的正确姿势,写得太好了叭

​ 编辑切换为居中 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; Lambda 表达式非常方便&#xff0c;在项目中一般在 stream 编程中用得比较多。 List<Student> studentList gen(); Map<String, Student> map studentList .stream() .…

Redis缓存的几个名词,缓存命中、缓存穿透、缓存雪崩、缓存击穿

本文为转载整理&#xff1a;原文地址为【https://zhuanlan.zhihu.com/p/422627839】 1. 缓存命中 缓存命中(cache hit)&#xff1a;当应用程序或软件请求数据时&#xff0c;会首先发生缓存命中。首先&#xff0c;中央处理单元&#xff08;CPU&#xff09;在其最近的内存位置&…

MySQL之BufferPool

文章目录前言一、BufferPool是什么二、BufferPool的组成2.1 结构图2.2 如何读取缓冲页三、BufferPool在MySQL中的作用前言 本文会讲述BufferPool是什么&#xff0c;BufferPool的组成&#xff0c;在mysql中的作用 一、BufferPool是什么 在mysql中是用来缓存磁盘中的页&#xff…

央企招聘:中储粮集团2023公开招聘公告(校招+社招,共700人)

中国储备粮管理集团有限公司2023年度招聘包括校园招聘和社会招聘&#xff0c;计划招募优秀人才700余人。 中国储备粮管理集团有限公司是经国务院批准组建的涉及国家安全和国民经济命脉的国有大型重要骨干企业&#xff0c;受国务院委托具体负责中央储备粮油棉的经营管理&#xf…