【HTTP 协议2】如何构造 HTTP 请求

文章目录

  • 前言
  • 一、地址栏输入
  • 二、HTML 特殊标签
  • 三、form 表单
  • 四、ajax
  • 总结


前言

各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你:
📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等
📗 Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等
📘 JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议, Tomcat, Servlet, Linux, JVM等(正在持续更新)

上篇文章介绍了HTTP协议的报文格式, 分析了请求报文和响应报中需要掌握的属性或字段, 本篇主要介绍如何构造一个HTTP请求


提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之处欢迎批评指点~ 废话不多说,直接上干货!

一、地址栏输入

在地址栏输入一个 URL, 访问页面就会发送 GET 请求

比如在地址栏输入百度的域名 :
在这里插入图片描述

抓到的包显示, 发送了一个 GET 请求, 响应就是百度的 HTML 页面

在这里插入图片描述


二、HTML 特殊标签

HTML 中的 link, img, script, a 标签都会触发 GET 请求(前提是访问网络资源而不是本地资源)

在浏览器打开 HTML 文件后, 加载完所有的标签, 会根据以上这些标签给服务器发送 GET 请求以获取网络资源


三、form 表单

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

form 表单只能发送 GET 或 POST 方法的请求, 其他的方法不可以

  • 编写一个简单的 form 表单来构造 GET 请求 :
	<!-- action里是要访问的url, method指定请求的方法 -->
    <form action="https://www.baidu.com/abc" method="get">
        <input type="text" name = "a">
        <input type="text" name = "b">
        <input type="submit" value="提交">
    </form>
  • 运行这段代码 :

在这里插入图片描述

  • 分别填写 111999, 点击提交, 会发现 404 了, 因为我们的 URL 是随便写的, 根本不存在, 但不影响我们发送请求

在这里插入图片描述

  • 通过抓包工具可以看到我们发送成功了 GET 请求

在这里插入图片描述

  • 观察 form 代码和这个 GET 请求之间的关系 :
    在这里插入图片描述

  • 刚刚的 form 代码中把 method=“get” 改成 method=“post”, 来构造一个 POST 请求
	<!-- action里是要访问的url, method指定请求的方法 -->
    <form action="https://www.baidu.com/abc" method="post">
        <input type="text" name = "a">
        <input type="text" name = "b">
        <input type="submit" value="提交">
    </form>
  • 展示效果不变, 还是依次输入 111999 点击提交 :
    在这里插入图片描述

  • 依然404, 因为 URL 是瞎写的, 但不影响抓包, 可以看到构造成功了一个 POST 请求

在这里插入图片描述

  • 观察 form 代码和 POST 请求的关系 :
    在这里插入图片描述

综上:
1, form 表单构造请求, 根据代码中 name 的值会形成健, 用户输入的会形成值, 这二者结合成键值对
2, 如果是 GET 请求, form 构造的数据以 query string 的形式被携带在 URL 中, 如果是 POST 请求, 数据在请求报文的 Body 中

版本号默认为HTTP/1.1


四、ajax

目前 ajax 是最主流的前后端交互方式之一

ajax 全称 Asynchronous Javascript And XML, 是 2005 年提出的一种 JavaScript 给服务器发送HTTP 请求的方式

Asynchronous, 意思是异步, 反义词是同步
在多线程场景下, 同步是指多个线程可以同时访问同一个资源, 加了(互斥)锁之后就必须阻塞等待
在当前 IO 场景下, 同步是指请求的发起者, 自行获取响应, 异步是指, 请求的发起者不关心相应的结果, 由响应者把响应结果推送请求者

ajax 就是前后端异步交互的方式, 由于JavaScript 提供的原生 API 比较难用, 我们使用 jQuery 提供的 ajax API 来构造请求 :

在这里插入图片描述

可惜的是, 这个代码会报错

因为 ajax 的保护机制, 不允许跨域访问, 此处运行 ajax 的服务器和要访问的服务器域名不一致, 关于跨域问题暂时不多做讨论, 将来自己做网站, 自己的页面访问自己的服务器, 自然就没有跨域问题了

另外, 不只是 JS 可以, Java, C++, Pyhon等能够操作网络的语言, 都可以构造 HTTP 请求


总结

以上就是本篇的全部内容, 主要介绍了如何 构造HTTP 协议的请求

如果本篇对你有帮助,请点赞收藏支持一下,小手一抖就是对作者莫大的鼓励啦😋😋😋~


上山总比下山辛苦
下篇文章见

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA2

文章目录 前言 前言 创建&#xff0c;编译java&#xff08;每4修改一次就要重新编译&#xff01;&#xff09; 第一个程序&#xff1a; 解决中文乱码问题&#xff1a; 效果&#xff1a; 总结&#xff1a;

微信小程序——分页组件的创建与使用

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

volatile关键字和ThreadLocal

作用&#xff1a; 1.线程的可见性&#xff1a;当一个线程修改一个共享变量时&#xff0c;另外一个线程能读到这个修改的值。 2. 顺序一致性&#xff1a;禁止指令重排序。 线程之间的共享变量存储在主内存中&#xff08;Main Memory&#xff09;中&#xff0c;每个线程都一个都…

有哪些做任务赚佣金的平台 做任务挣钱的app

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 做任务赚佣金的平台&#xff1f;做任务赚钱一直是一种流行的赚钱方式。现在有无数的app可以通…

6-js基础-3

JavaScript 基础 - 3 知道什么是数组及其应用的场景&#xff0c;掌握数组声明及访问的语法&#xff0c;具备利用数组渲染柱形图表的能力 今日重点&#xff1a; 循环嵌套数组综合案例 今日单词&#xff1a; 循环嵌套 利用循环的知识来对比一个简单的天文知识&#xff0c;我们…

SQL题型:根据逗号拆分列

例1&#xff1a; 表&#xff1a; 要实现的结果&#xff1a; 代码&#xff1a; select a.id as hyId,substring_index(substring_index(a.ch_ry_mc, ,,b.help_topic_id 1 ),,, - 1) AS CH_RY_ID FROM rsgl_hygl_hyxx a JOIN mysql.help_topic b ON b.help_topic_id < ( l…

python爬虫增加多线程获取数据

Python爬虫应用领域广泛&#xff0c;并且在数据爬取领域处于霸主位置&#xff0c;并且拥有很多性能好的框架&#xff0c;像Scrapy、Request、BeautifuSoap、urlib等框架可以实现爬行自如的功能&#xff0c;只要有能爬取的数据&#xff0c;Python爬虫均可实现。数据信息采集离不…

【算法】区间DP (从记忆化搜索到递推DP)⭐

文章目录 前期知识516. 最长回文子序列思路1——转换问题&#xff1a;求 s 和反转后 s 的 LCS&#xff08;最长公共子序列&#xff09;思路2——区间DP&#xff1a;从两侧向内缩小问题规模补充&#xff1a;记忆化搜索代码 1039. 多边形三角剖分的最低得分从记忆化搜索开始翻译成…

LLM - Hugging Face 工程 BERT base model (uncased) 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/131400428 BERT是一个在大量英文数据上以自监督的方式预训练的变换器模型。这意味着它只是在原始文本上进行预训练&#xff0c;没有人以…

el-table多级表头处理方法,了解lebel和prop的真实含义,template的意义,减少全局定义变量。

Element - The worlds most popular Vue UI framework 官网地址 其原理只需要在 el-table-column 里面嵌套 el-table-column&#xff0c;就可以实现多级表头。 要实现的效果如下图所示&#xff1a; <div class"c-table" id"tablePrint"><el-tabl…

信号链噪声分析15

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示&#xff1a;这里可以添加技术概要 模数转换器(ADC)将模拟量——现实世界中绝大部分现象的特征——转换为数字语言&#xff0c; 以便用于信息处理、计算、数据传输和控制系统。数模转换器(DAC)则用于将发送或存 储…

【学习笔记】Unity基础(九)【cinemachine基础(body、aim参数详解)】(多fig动图示范)

目录 一 速览1.1 cinemachine下载1.2 官方示例速览1.3 cinemachine定义 二 cinemachine详解2.1 Virtual Camera2.1.1 virtual camera参数通览2.1.2 Status2.1.3 有关Dutch angle2.1.4 Standby Update2.1.5 Transitions 2.2 virtual cameral关键参数详解2.2.1 Body2.2.1.1 Do No…

主辅助服务市场出清模型研究【旋转备用】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

vue 3.0 + vite + flv 视频流播放

官方提供的 demo 地址&#xff0c;大家可以用自己的流地址&#xff0c;先试试是否符合需求&#xff1b; http://bilibili.github.io/flv.js/demo/ Flv.js API https://gitee.com/mirrors/flv.js/blob/master/docs/api.md 安装 Flv.js npm install --save flv.js更改 tscon…

软件测试工程师的工作内容?告诉你们什么是真正的测试工程师

目录 前言 1.何为软件测试工程师&#xff1f; 2.软件测试工程师的职责&#xff1f; 3.为什么要做软件测试&#xff1f; 4.软件测试的前途如何&#xff1f; 5.工具和思维谁更重要&#xff1f; 6.测试和开发相差大吗&#xff1f; 7.成为测试工程师的必备条件 8.测试的分…

局域网远程连接

一根网线连接两台电脑 前言步骤1 设置B“允许远程连接”2 A和B必须在同一个网段下面3 “winr”&#xff0c;输入“mstsc”中4 弹出“远程桌面连接”窗口&#xff0c;输入B的ip地址和B电脑的用户名及密码&#xff08;winL键锁屏&#xff0c;看看B的用户名和密码是什么&#xff0…

【正点原子STM32连载】 第四十五章 FLASH模拟EEPROM实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

第四十五章 FLASH模拟EEPROM实验 STM32本身没有自带EEPROM&#xff0c;但是STM32具有IAP&#xff08;在应用编程&#xff09;功能&#xff0c;所以我们可以把它的FLASH当成EEPROM来使用。本章&#xff0c;我们将利用STM32内部的FLASH来实现第三十六章实验类似的效果&#xff0…

MVTEC 3D dataset

官网&#xff1a;https://www.mvtec.com/company/research/datasets/mvtec-3d-ad/downloads https://www.mvtec.com/company/research/datasets/mvtec-3d-adhttps://www.mvtec.com/company/research/datasets/mvtec-3d-ad 数据大小&#xff1a;13个G 1. 介绍 MVTec 3D异常检测…

OpenCV 学习笔记(C++)(1.4W字)

一切图像皆Mat OpenCV中图像对象的创建与复制 Mat基本结构 Mat对象数据组成&#xff1a;头部和数据部分&#xff0c;头部存储图像的属性&#xff08;大小、宽高、图像类型&#xff1a;浮点数类型、字节类型、16位整型、32位整型、双精度浮点型&#xff0c;通道数量和获取途径…

【Soft-prompt Tuning for Large Language Models to Evaluate Bias 论文略读】

Soft-prompt Tuning for Large Language Models to Evaluate Bias 论文略读 INFORMATIONAbstract1 Introduction2 Related work3 Methodology3.1 Experimental setup 4 Results5 Discussion & Conclusion总结A Fairness metricsB Hyperparmeter DetailsC DatasetsD Prompt …
最新文章