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

这篇具有很好参考价值的文章主要介绍了【HTTP 协议2】如何构造 HTTP 请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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

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


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

一、地址栏输入

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

比如在地址栏输入百度的域名 :
【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

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

【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络


二、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>
  • 运行这段代码 :

【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

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

【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

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

【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

  • 观察 form 代码和这个 GET 请求之间的关系 :
    【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

  • 刚刚的 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 点击提交 :
    【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

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

【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

  • 观察 form 代码和 POST 请求的关系 :
    【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

综上:
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 来构造请求 :

【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络

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

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

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


总结

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

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


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

【HTTP 协议2】如何构造 HTTP 请求,JavaEE初阶,http,网络协议,网络
文章来源地址https://www.toymoban.com/news/detail-520294.html

到了这里,关于【HTTP 协议2】如何构造 HTTP 请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP协议(JavaEE初阶系列15)

    目录 前言: 1.HTTP协议 1.1HTTP协议是什么 1.2HTTP协议的报文格式 1.2.1抓包工具的使用 1.2.2HTTP请求 1.2.3HTTP响应 2.HTTP请求 2.1首行的组成 2.2.1URL的组成 2.2认识“方法”(method) 2.2.1GET方法 2.2.2POST方法 2.2.3GET和POST请求的区别 2.3认识请求“报头”(header) 2.4认识请求正文(body) 3

    2024年02月11日
    浏览(31)
  • 【Http协议④】常见的几种构造http请求的方式,form表单构造,Ajax构造,postman构造

    前言: 大家好,我是 良辰丫 ,这篇文章我将协同大家一起去学习几种构造http请求的方式.💞💞💞 🧑个人主页:良辰针不戳 📖所属专栏:javaEE初阶 🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。 💦期待大家三连,关注,点赞,收藏。

    2024年02月06日
    浏览(41)
  • 网络原理 - HTTP / HTTPS(4)——构造http请求

    目录 一、postman 的下载安装以及简单介绍 1、下载安装 2、postman的介绍 二、通过 Java socket 构造 HTTP 请求         构造http请求的方式有两种: (1)通过代码构造 (有一点难度)        (2)通过第三方工具构造 (非常容易)。         下面介绍第三方工具构造http请求,这

    2024年04月17日
    浏览(30)
  • 安卓网络请求1————Http协议

    http是超文本传输协议的缩写(Hyper Text Transfer Protocol),是从万维网服务器传送到本地浏览器的传送协议 HTTP的协议工作于客户端——服务端的框架上,即客户端向服务端发送请求,服务端接收请求后向客户端发送响应信息 1.http是无连接的:无连接的含义是限制每次连接值处

    2024年02月06日
    浏览(30)
  • JavaEE & HTTP状态码 & HTTP数据报的构造

    HTTP状态码 HTTP数据报的构造 c语言也学到了一个全局的变量errno,在一些内存函数或者文件操作的时候,这个变量会有所变化,如果程序出错了,这个变量对应的值就代表了对应的错误信息,【errno - error no(number)】,通过一些函数去解析这个错误码就可以了~ 而HTTP的状态码,就

    2024年02月07日
    浏览(22)
  • 【JavaEE】HTTP状态码-HTTP数据报的构造

    HTTP状态码 HTTP数据报的构造 c语言也学到了一个全局的变量errno,在一些内存函数或者文件操作的时候,这个变量会有所变化,如果程序出错了,这个变量对应的值就代表了对应的错误信息,【errno - error no(number)】,通过一些函数去解析这个错误码就可以了~ 而HTTP的状态码,就

    2024年02月07日
    浏览(22)
  • Chrome/Safari 浏览器怎么查看网络请求的 http 协议版本

    通过 Chrome 或者 Safari 浏览器的开发者工具查看网络请求后,发现只能看到 scheme 是 https,但是看不到 http 协议是 1.1 还是 2,亦或者是 http3 查看 http 请求 http 协议版本的方法是:鼠标右键表头中的任何一项,随后勾选上「Protocol」 随后可以看到新增了一列 Protocol,显示了 htt

    2024年02月15日
    浏览(33)
  • 【网络应用层协议】【HTTP】详解HTTP与HTTPS、POST 请求与 GET请求 、TCP与UDP、cookie和session的区别

    目录 1. HTTP和HTTPS的区别 2. POST 请求与 GET 请求区别 3. TCP与UDP的区别 4. cookie和session的区别

    2024年04月14日
    浏览(35)
  • 高效便捷构造 Http 请求

    对于Get请求: 地址栏直接输入 点击收藏夹 html 中的 link script img a… form 标签 这里我们重点强调 form 标签构造的 http请求 使用 form 标签构造http请求. form 的重要参数: action: 构造 http 请求的 URL 是什么 method:构造 http 请求的方法是 GET 还是 POST(form 仅支持 GET 和 POST) input 的重要参数

    2023年04月14日
    浏览(29)
  • 【JavaEE】_HTTP请求首行

    目录 1. URL 2. 方法 2.1 GET方法 2.2 POST方法 2.3 GET与POST的区别 2.4 低频使用方法 在mysql JDBC中已经提到过URL的相关概念: 如需查看有关JDBC更多内容,原文链接如下: 【MySQL】_JDBC编程-CSDN博客 URL用于描述某个资源在网络上的所属位置,数据库也是一种资源故而在JDBC中使用URL描述

    2024年02月19日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包