【JavaEE】HTTP请求的构造

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

目录

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

2、通过JS的ajax构造HTTP请求

3、Postman的安装和简单使用


常见的构造HTTP请求的方式有一下几种:

  1. 直接通过浏览器的地址栏,输入一个URL,就可以构造一个GET请求
  2. HTML中的一些特殊标签,也会触发GET请求,例如:link、script、img、a....
  3. 通过form表单标签可以实现GET和POST请求的构造
  4. 通过JS中ajax实现各种请求的构造

在编写前端程序的时候,通常使用HTML和JS来构造请求。再简单方便一点,我们还可以使用一些工具来构造HTTP请求,例如使用postman软件。

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

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

🍂form发送GET请求

    <form action="http://www.baidu.com/abc" method="GET">
        <input type="text" name="userId">
        <input type="password" name="password">
        <input type="submit" value="提交">
    </form>

form标签的一些属性:

  • action:表示构造的HTTP请求的URL是什么
  • method:表示构造的HTTP请求的方法是GET还是POST(form只支持HTTP方法GET和POST

下面我们来看请求构造的请求返回的页面和抓到的这个请求的报。 

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

这里我们就来看一下我们写的代码和填写的表单,与形成的请求的首行之间的联系。

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 🍂form表单发送post请求

构造一个POST请求,我们只需要将form表单中的method属性的值改为POST即可。

    <form action="http://www.baidu.com/abc" method="POST">
        <input type="text" name="userId">
        <input type="password" name="password">
        <input type="submit" value="提交">
    </form>

我们通过fiddler抓取我们构造的这个报来看一下。 

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 可以看见我们构造的POST请求,首行中没有查询字符串(query string), 但是请求正文中出现了我们在网页表单上填写的内容。这个时候请求头(header)中出现了Content-Length和Content-Type字段,用来表示请求正文中的内容的长度和内容的构造格式。与GET的理解方式相似,代码和输入框与POST请求的的对应关系,这里就不再展示。


2、通过JS的ajax构造HTTP请求

从前端角度,处理浏览器地址栏能构造GET请求,form表单能构造GET和POST请求之外,还可以通过ajax的方式来构造HTTP请求。当然ajax的功能比form更加强大。

ajax是Asynchronous JavaScript And XML的缩写。ajax是前端后端异步交互的一种方式

1️⃣这里的XML是一种基于标签形式的自定义数据格式的方式,XML和HTML都是由标签构成的,对于html来说,它的标签数量和含义都是由标准委员会规定好的,但是相对于XML来说,它的标签都是自定义的。XML和前端没有关系,这只是数据的一种组织方式。XML的格式如下

<request>
    <userld>zhangsan</userId>
    <password>12346</password>
    <age>20</age>
</request>

 2️⃣Asynchronous这个词的含义是"异步"。说到这里有没有老铁联想到synchronized,它表示的是"同步"。

🎊我们在加锁的场景中,synchronized认为是互斥的。就是在同一时间多个线程访问同一个资源,只有一个线程能够访问,其他线程需要阻塞等待;

🎊在IO场景中同步和异步的区别是,同步表示在请求的发起者,自行获取响应。异步表示请求的发起者不关心结果,而是由被请求的这一方,计算成结果之后,把结果推送给发起者。这个的区别就是请求发出后是否主动获取响应结果。

这里我们通过一个例子来了解一下IO场景下的同步和异步。你去餐馆吃饭,给老板说"老板来份油泼面",然后站在窗口等,老板做好之后,你自己端着饭找位置坐下。而异步就是你对老板说了之后,你就不管了,老板把饭做好之后,端到你面前来。只关注饭(响应)是你自己获取还是老板给你送。

3️⃣JS中提供了原生的ajax的api,但是使用起来比较麻烦,所以我们这里使用JQuery里面的提供ajax的api来构造HTTP请求。这里小编已经jQuery下载到了本地,使用的相对地址引入的jQuery,但是我们也可以找到jQuery的网络路径,将其引入到代码中。在编写代码的时候,使用jQuery时,可以使用$符号表示jQuery,也可以使用完成的单词来表示,这里小编更建议使用完成的单词表示,因为有的库也会使用$符号作为变量名,我们在代码中如果引入了不止一个库,那么就会容易出现错误。

下面时使用jQuery构造一个请求的基本格式,当然ajax方法中可以设置的字段不止代码中出现的这些。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ajax</title>
    <script src="../jquery.min.js"></script>
</head>
<body>
    <script>
        jQuery.ajax({
            url:"https://www.baidu.com",
            type:"get",
            data:"这是 body",
            contentType:"text/plain",
            //此处success就声明了一个回调函数,会在服务器返回一个正确的响应的时候,被浏览器自动执行。
            //这里的执行过程就是"异步"的。
            //在我们页面的JS中,把请求发送出去之后就不管了,就继续执行后续的代码,直到服务器将响应返回来之后,
            //浏览器将这个响应给我们的代码之后,浏览器才会执行该方法。
            success: function(body) {
                //这里写处理响应的代码
                alert(body);
            }
        });
    </script>
</body>
</html>

这里需要了解一下回调函数,回调函数就是在代码执行的时候,并不会立即执行,而是在等到合适的时机再执行,例如在多线程中重写run方法和lambda表达式都是回调函数,还有集合类中的Comparable接口中的compare To方法和Comparator接口中的compare方法在代码中使用的时候都是回调的。

将上述的代码运行,给百度的服务器发送请求,代码在执行的过程中会出错。

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 这个报错是ajax的一个典型的跨域问题,这是浏览器为了限制安全问题引入的保护机制。使用ajax构造的请求,要求运行ajax代码的页面的域名,要和ajax里请求访问的域名是一致的,两个域名不一致的话,哪怕服务器给你响应了数据,浏览器也不能处理,还是会报错。但是form表单标签构造请求是可以跨域访问的,即a网站的页面可以请求b网站的数据。

✨总结

ajax相比于form功能更强,构造请求更灵活,form只支持get和post两种HTTP方法,而ajax不仅可以支持这两种HTTP方法,还可以支持put、delete等,ajax还可以灵活的设置header和body.

3、Postman的安装和简单使用

上述的重点说到的构造请求的方式,不论哪一种,构造请求都是需要我们手动写代码的,但是这里使用的Postman在构造请求的时候他会自己生成某种语言的HTTP请求。点击这个连接就可以进入官网:https://www.postman.com/downloads/下载。

点击进入官网页面之后,按照下面的步骤进行就可以了。

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

下载完成之后,需要我们自己创建一个用户,创建完成之后,第一次登录Postman的页面是这个样子需要点击workspaces创建一个工作空间。

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 文章来源地址https://www.toymoban.com/news/detail-583095.html

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 点击+,创建一个标签页。

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 构造HTTP请求。【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 以上说到就是Postman最基本的用法,还有一个好用的地方就是点击</>符号,它可以生成各种语言的构造HTTP请求的代码。想要使用jQuery版本的代码,直接选中,复制放在jQuery的代码中就可以使用,前提是你在代码中引入了jQuery。

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 

【JavaEE】HTTP请求的构造,JavaEE,http,网络协议,网络

 

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

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

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

相关文章

  • 网络原理 - HTTP / HTTPS(4)——构造http请求

    网络原理 - HTTP / HTTPS(4)——构造http请求

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

    2024年04月17日
    浏览(17)
  • 计算机网络——如何构造HTTP请求

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

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

    2023年04月08日
    浏览(18)
  • 安卓网络请求1————Http协议

    安卓网络请求1————Http协议

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

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

    【JavaEE】HTTP状态码-HTTP数据报的构造

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

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

    JavaEE & HTTP状态码 & HTTP数据报的构造

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

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

    Chrome/Safari 浏览器怎么查看网络请求的 http 协议版本

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

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

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

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

    高效便捷构造 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日
    浏览(11)
  • 【JavaEE】_HTTP请求首行

    【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日
    浏览(13)
  • [JAVAee]HTTP协议

    [JAVAee]HTTP协议

    目录 应用层协议HTTP HTTP的工作过程 HTTP协议格式 HTTP请求 URL HTTP常用方法 Header报头 Host Content-Length Content-Type User-Agent Referer Cookie Body HTTP响应 状态码 ​编辑FORM构建HTTP请求 GET请求 POST请求 ajax构造HTTP请求 GET请求 HTTP (全称为 \\\"超文本传输协议\\\") 是一种应用非常广泛的 应用层协议

    2024年02月12日
    浏览(13)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包