应用层—HTTP详解(抓包工具、报文格式、构造http等……)

文章目录

  • HTTP
    • 1. 抓包工具的使用
      • 1.1 配置信息
      • 1.2 观察数据
    • 2. 分析 https 抓包结果
    • 3. HTTP请求详解
      • 3.1 认识 URL
        • 3.1.1 URL 基本格式
        • 3.1.2 查询字符串 (query string)
        • 3.1.3 关于 URL Encode
      • 3.2 认识 http 方法
        • 3.2.1 [经典问题] Get 和 Post 主要的区别是什么??
        • 3.2.2 除了get和post还有什么方法??
      • 3.3 认识请求报头(header)
    • 4. HTTP响应详解
      • 4.1 认识状态码
    • 5. 构造 HTTP 请求
      • 5.1 通过 html 中的 form 表单
      • 5.2 通过 js 的 ajax
      • 5.3 java 代码(其他各种语言的代码)
      • 5.4 借助一些第三方工具

HTTP

HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议

我们平时打开一个网站,就是通过 Http 协议来传输数据的。

学习 Http 需要先了解 http 协议格式,这里就需要用到 抓包工具。抓包工具本质上是一个代理。

代理:代理是一种网络服务,它充当客户端和目标服务器之间的中间人。代理服务器可以用于多种目的,包括提高访问速度、保护隐私、绕过网络限制等。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传



1. 抓包工具的使用

抓包工具有很多,比如:wireshark、fiddler等…

这里我们使用 fiddler 来抓包,同学们可以自行下载。

1.1 配置信息

在我们刚装好 fiddler 之后,默认只能抓到 http 的数据,抓不到 https ,而现在网络上 https 是主流。因此我们要稍微设置一下让 fiddler 能够抓到 https。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

设置完后,我们可以看到,左侧是当前机器上有哪些 http / https数据报在交互(不仅仅能抓浏览器,而且能抓到所有程序的)外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当我们选中某个数据后,右侧就能显示出详细信息,右上角显示的是请求的详情,右下角显示的是响应的内容(在标签栏中点击 Raw 显示 请求/响应 的原始数据内容)外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.2 观察数据

相比于 UDP、TCP 的二进制信息传输来说,Http 则是文本传输格式。如果看不清蓝色信息栏中的数据,我们可以点击下方 View in Notepad 在记事本中打开外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

观察下面响应信息,为什么会出现乱码呢?

在网络传输过程中,为了节省空间大小,因此会对响应信息进行压缩(点击图片上面黄色区域就会进行解压缩)外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传



2. 分析 https 抓包结果

下面是一个 HTTPS请求/响应 的抓包结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首行组成格式:[方法] + [URL] + [版本];外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

请求头(header):是请求的属性,用冒号来分割的键值对。每组属性之间用 \n 来分隔,遇到空行表示 header 部分 结束。

body:空行后面的都是正文(body),body允许为空字符串。如果 body 存在,则在 header 中会有一个 Conent-     Length 属性来标识 Body 的长度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首行:[版本号] + [状态码] + [状态码解释]

响应头:同请求头。也是由键值对组成,由 \n 分隔。

正文:同请求的正文格式。如果服务器返回了一个 html 页面,那么 html 页面内容就是在 body 中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传



3. HTTP请求详解

3.1 认识 URL

3.1.1 URL 基本格式

URL 的格式通常如下:

协议://主机名[:端口号]/路径?查询参数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

实际上,对于 URL 来说,上述的几个部分都是可以省略的,此操作是非常常见的。


3.1.2 查询字符串 (query string)

下面举一个具体的例子来说明 URL 格式中的查询字符串。

我们在搜狗上搜索“程序猿”。可以看到服务器是搜狗服务器。同时在搜狗服务器上访问的是 web 资源。后续再在资源中查找“程序猿”这个字符串以及其它字符串。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们虽然认识了 query string(查询字符串) 的格式,但其内容和含义是什么呢??

其实是这里的 键 和 值 的含义,都是程序猿自定义的。这个东西具体是啥意思?只有搜狗的程序员知道。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


3.1.3 关于 URL Encode

像 / ? : 等这样的字符, 已经被url当做特殊意义理解了。因此这些字符不能随意出现。

比如,某个参数中需要带有这些特殊字符,就必须先对特殊字符进行转义。

一个中文字符由 UTF-8 或者 GBK 这样的编码方式构成, 虽然在 URL 中没有特殊含义, 但是仍然需

要进行转义. 否则浏览器可能把 UTF-8/GBK 编码中的某个字节当做 URL 中的特殊符号.

转义的规则如下: 将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。

比如 “+” 被转义成了 “%2B”

UrlEncode - 在线URL网址编码、解码



3.2 认识 http 方法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上图中都是http的请求方法,如果说天下文才分十斗,Get就占8斗,Post占1斗,剩下的所有方法占1斗。由此可见各个方法的使用频率不同,Get、Post方法作为我们要熟知的方法,剩下的了解即可

不同方法之间,“语义”是不同的,描述的是此次方法用来干什么。

  • Get:“从服务器获取 xxx”
  • Post:“向服务器传输一个 xxxx”

上面我们介绍过 Get 的请求格式,接下来介绍 Post 的几个常见场景:

  1. 登录外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. 上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    此处的 body 中的 value 就是把整个图片都进行转码,转成字符串,填写在这里。



3.2.1 [经典问题] Get 和 Post 主要的区别是什么??

Get 是把一些自定义的数据放到 query string (在 URL 中) 里,body 通常是空的。

Post 是把一些自定义的数据放到 body 里,query string 通常是空的。

因为这些数据都是要传输给服务器的,所以放哪都是放,本质上没啥区别。

  • 直接放在 url 中,用户能直接看到。
  • 放在 body 中,用户没法直接看到。

因为 post 和 get 数据放哪里本质上都可以,两者经常也可以相互替代。

盖棺定论:GET 和 POST 没有本质区别。从习惯上来看,GET 通常把数据放到 query string 中,POST 通常把数据放到 body 中

对于 Get 和 Post 区别的理解。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


3.2.2 除了get和post还有什么方法??

​ 下面这些方法相较于 get、post 比较少见,可以简单了解。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传



3.3 认识请求报头(header)

header 的整体格式也是“键值对”结构。每个键值对占一行,键和值之间使用分号分割。

以下面的请求报头为例,进行分析:外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以看到此报头也是键值对结构,每一行都是一个键值对,键和值之间用 “:空格” 来分割。

query string / body 中的键值对,完全是程序员自定义的。

header 中的键值对,主要是标准规定的。有哪些键(对应的取值是有哪些,都有规定),也有部分是可以自定义的。

下面来挑几个重要的键值对来分析一下:

  • Host:表示服务器主机的地址和端口。(用于解决粘包问题)

  • Content-Length:表示 body 中的数据长度 。

  • Content-Type:表示请求的 body 中的数据格式。(针对这个数据,如何理解?http协议有很多用途,传输的数据也有很多种类)在HTTP请求中,Content-Type有三种主要的情况。

    • application/x-www-form-urlencoded:body的格式就和query string一样.(登录请求)

    • multipart/form-data:一般上传文件/图片会是这种情况(不绝对。码云的上传图片就不是这种)

    • application/json:body是 json格式。(很多网站都会广泛使用 json)

      如果是响应 body,情况就会更复杂。

      可能是 html:text/html,也可能是 css:text/css,还可能是 js:application/javascript,图片 image/png image/jpg 等…

      通过 Content-Type 就可以区分出 body 的数据的格式是啥。尤其是浏览器,需要根据不同的格式来决定如何处理。

  • User-Agent:表示浏览器/操作系统的属性,现在主要用来区分 PC 端还是 移动端。形如

    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36
    
  • Referer:**描述了当前页面从哪来。**如果你是通过浏览器地址来直接输入URL/点击收藏夹 打开的网站,这个请求中不带 referer。但是如果你点击了某个网页的内容,产生跳转,就是带 referer。

    拓展了解:http由于不带加密传输,因此网络运营商为了卖广告或者其他经济利益,可以直接修改用户的访问源头,就是针对 referer 进行修改,此操作称为运营商劫持。解决办法就是使用https,进行加密传输。

  • Cookie:**是浏览器本地存储数据的一种机制。**在用户操作浏览器的时候会产生很多“临时性”的数据,有的临时数据就直接放到服务器这边存储,下次可以直接获取到。有的不太重要的,就直接放在浏览器这边存储(下次访问也可以直接使用,但是换个电脑可能就没了)其中,Cookie 就是一个主要的保存机制。

    浏览器要保存数据,为啥要放到 Cookie 中??直接放到硬盘,写入一个文件不行吗? 不行的!如果让网页能够轻易的访问你的文件系统,是非常危险的!!很容易中病毒!

    为了保证安全,浏览器会对网页的功能做出限制。(禁止直接访问硬盘,就是其中一个规则),同时又能存储数据,浏览器就提供了Cookie 功能(后来又有了其他功能)

    是按照键值对的方式来存储一些字符串。这些键值对往往都是服务器返回回来的。浏览器把这些键值对按照"域名"维度,分类存储。

    首次访问网站,注册不考虑,登录成功之后,就相当于,网站就给你了一个就诊卡(身份标识 也叫sessionid)。身份标识就通过服务器返回给浏览器的响应,保存在浏览器的Cookie 中了(键值对)。于此同时,人家网站服务器这边,也就会创建出一个对应的Session (电子档案)Session 中就会记录我的一些关键信息。人家的网站服务器肯定不只一个用户,有很多用户。每个用户都有自己的Session。并且他们的sessionld 各不相同。服务器就会使用类似于hash表这样的方式,以sessionld为key,以Session为value,把所有的数据组织起来。

    1.Cookie 从哪里来?
    Cookie是从服务器返回给浏览器的。

    2.Cookie 保存在哪里?
    Cookie 保存在浏览器上,浏览器所在电脑的硬盘上。每个域名都有自己的一组Cookie。

    3.Cookie里的内容是啥?
    Cookie 中的内容是键值对结构的数据。这里的键值对都是程序猿自定义的。
    其中往往会有一个键值对,作为用户的身份标识 (不同网站身份标识的 key 和 value 可能都是不同的)

    4.Cookie的内容到哪里去?
    后续再访问这个网站中的各个页面,就都会在请求中带上Cookie 。服务器就可以进一步的知道客户端的详细情况了。



4. HTTP响应详解

4.1 认识状态码

响应的首行和请求的首行差异是比较大的。

响应首行由:[版本号] + [状态码] + [状态码解释]组成
HTTP/1.1 200 OK

状态码,就是对这次响应的定性(成功/失败/其它情况)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

200成功

404访问的资源不存在

403访问的资源没有权限

502服务器挂了

504服务器超时了

302重定向(浏览器会自动跳转到其他的界面)

重定向:使用浏览器访问 www.aaa.com 这个url ,此时,请求发给对应的服务器。结果服务器返回了一个302,同时告诉你,你要去访问 www.bbb.com 于是浏览器收到这个响应之后,就会自动跳转到 www.bbb.com。



5. 构造 HTTP 请求

5.1 通过 html 中的 form 表单

HTML 也是一种编译语言,和 Java、C 风格差异很大。

HTML:是在描述一个“形态”,一个网页上,都有啥。(形态)

Java、C:是在描述一个“逻辑”,先干啥后干啥,什么情况下要干什么。(动作)

这里编写 html 推荐使用 VSCode,因为可以直接白嫖的,对于前端也同样支持。

对于 html 代码编写起来是非常好理解的,下面是编写 html 的起手式,快捷键是!+tab.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 在这里输入代码 -->
</body>
</html>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来再说通过 html 中的 form 标签构造 HTTP 请求。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="https://www.sogou.com" method="post">
        <input type="text" name="aaa">
        <input type="text" name="bbb">
        <input type="text" name="ccc">
        <input type="submit" value="提交">
    </form>
</body>
</html>

当我们运行这段代码,再用抓包工具来抓包观察结果。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在输入框中输入的内容有什么作用吗?

其实就是向服务器提交数据,比如说我们进行用户登录,需要输入的账号和密码。

form 表单,只能支持 get 和 post,不能支持 put/delete/options 等其他方法…


5.2 通过 js 的 ajax

ajax 是 js 提供的一组 api。js 原生的 ajax api,用起来非常不方便。因此我们就会借助 js 的第三方库 jQuery,把 jQuery 引入到代码中。

jQuery cdn 是大佬们搞的一组服务器,用来放一些常用的资源。

对于jQuery cdn来说都是开源的,可以直接在网上搜外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

只需要把这段复制下来即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <script>
        //正式的 js 代码,就要调用上面的 jQuery 中的方法了。
        $.ajax({
            type: "post",
            url: "https://www.sogou.com",
            contentType: "application/x-www-form-urlencoded",
            data: "aaa=111&bbb=222",
            success:function(body) {
                console.log("ok");
            }
        });
    </script>
</body>
</html>

通过抓包可以看到我们访问的URL、method,以及请求的内容。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5.3 java 代码(其他各种语言的代码)

通过 java 代码的方式,本质上就是一个 tcp 的客户端,创建一个 Socket 对象,往里面按照 HTTP 协议的格式写数据即可。

public class HttpClient {
    private Socket socket;
    private String ip;
    private int port;
    public HttpClient(String ip, int port) throws IOException {
        this.ip = ip;
        this.port = port;
        socket = new Socket(ip, port);
   }
    public String get(String url) throws IOException {
        StringBuilder request = new StringBuilder();
        // 构造首行
        request.append("GET " + url + " HTTP/1.1\n");
        // 构造 header
        request.append("Host: " + ip + ":" + port + "\n");
        // 构造 空行
        request.append("\n");
        // 发送数据
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write(request.toString().getBytes());
        // 读取响应数据
        InputStream inputStream = socket.getInputStream();
        byte[] buffer = new byte[1024 * 1024];
        int n = inputStream.read(buffer);
        return new String(buffer, 0, n, "utf-8");
   }
        public String post(String url, String body) throws IOException {
        StringBuilder request = new StringBuilder();
        // 构造首行
        request.append("POST " + url + " HTTP/1.1\n");
        // 构造 header
        request.append("Host: " + ip + ":" + port + "\n");
        request.append("Content-Length: " + body.getBytes().length + "\n");
        request.append("Content-Type: text/plain\n");
        // 构造 空行
        request.append("\n");
        // 构造 body
        request.append(body);
        // 发送数据
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write(request.toString().getBytes());
        // 读取响应数据
        InputStream inputStream = socket.getInputStream();
        byte[] buffer = new byte[1024 * 1024];
        int n = inputStream.read(buffer);
        return new String(buffer, 0, n, "utf-8");
   }
    
    public static void main(String[] args) throws IOException {
        HttpClient httpClient = new HttpClient("42.192.83.143", 8080);
        String getResp = httpClient.get("/AjaxMockServer/info");
        System.out.println(getResp);
        String postResp = httpClient.post("/AjaxMockServer/info", "this is body");
        System.out.println(postResp);
   }
}

5.4 借助一些第三方工具

除了上面这几种写代码的方式之外,还可以通过第三方工具,构造 HTTP 请求。

第三方工具有很多,咱们这里介绍的是 postman,一个老牌的 http 客户端工具。他可以根据你这边构造的请求,自动生成代码。

操作方法:外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自动生成代码:外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

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

相关文章

【AI】小白入门笔记

前言 2024年&#xff0c;愿新年胜旧年&#xff01;作为AI世界的小白&#xff0c;今天先来从一些概念讲起&#xff0c;希望路过的朋友们多多指教&#xff01; 正文 AI (人工智能) 提起AI, 大家可能会想起各种机器人&#xff0c;移动手机的“Siri”,"小爱同学", 是语…

给创业者的一份忠告~创业就要选择低成本的轻资产创业项目

王健林继续出售资产&#xff0c;5天卖了4座万达广场&#xff0c;出售计划仍在继续..... 根据天眼查app最新消息&#xff0c;厦门殿前万达广场商业管理有限公司发生工商变更&#xff0c;2023至今已经转让10座万达广场。两年前万达旗下的核心子公司万达商管&#xff0c;向一群投资…

Java开发分析工具 JProfiler的详细使用方法解析(附 JProfiler for Mac许可证秘钥)

JProfiler 是一款功能强大的Java代码分析工具&#xff0c;JProfiler的直观UI可帮助您解决性能瓶颈&#xff0c;确定内存泄漏并了解线程问题且JProfiler Mac破解版配置会话非常简单&#xff0c;第三方集成使得入门变得轻而易举&#xff0c;并且以自然的方式呈现数据分析。 解…

【Linux】Linux开发工具 - vim的基本操作

IDE例子 Linux编辑器-vim使用 vi/vim的区别简单点来说&#xff0c;它们都是多模式编辑器&#xff0c;不同的是vim是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0c;而且还有一些新的特性在里面。例如语法加亮&#xff0c;可视化操作不仅可以在终端运行&#xff…

NVM (Node Version Manager) 安装使用

博文目录 文章目录 管理工具安装使用 管理工具 GitHub, nvm-windows nvm-windows: Similar (not identical) to nvm, but for Windows 管理 Node.js 版本有多种工具可选择, 其中使用最广泛的是 nvm, 目前 72.3k Star, 不支持 Windows 系统, nvm-windows, 是其他大佬为 Windows…

若依管理系统搭建教程,ruoyi-vue环境搭建

环境部署 准备工作 JDK > 1.8 (推荐1.8版本) Mysql > 5.7.0 (推荐5.7版本) Maven > 3.0 运行系统 1、前往Gitee下载页面([https://gitee.com/y_project/RuoYi (opens new window)](https://gitee.com/y_project/RuoYi))下载解压到工作目录 2、导入到Eclipse&#…

SpringMVC第一天

简介 SpringMVC技术与Servlet技术功能等同&#xff0c;均属于web层开发技术 SpringMVC是一种基于java实现的MVC模型的轻量级Web框架 优点 使用简单,开发便捷(相比于Servlet) 灵活性强 入门案例 第一步、导入SpringMVC与Servlet坐标 <?xml version"1.0" encod…

【数据结构与算法】之字符串系列-20240121

这里写目录标题 一、344. 反转字符串二、125. 验证回文串三、205. 同构字符串四、242. 有效的字母异位词五、290. 单词规律 一、344. 反转字符串 简单 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额…

2024最新最全【网络安全面试题含答案】(非常详细),零基础入门到精通

防范常见的 Web 攻击 什么是SQL注入攻击 攻击者在HTTP请求中注入恶意的SQL代码&#xff0c;服务器使用参数构建数据库SQL命令时&#xff0c;恶意SQL被一起构造&#xff0c;并在数据库中执行。 用户登录&#xff0c;输入用户名 lianggzone&#xff0c;密码 ‘ or ‘1’’1 &a…

《SPSS统计学基础与实证研究应用精解》视频讲解:SPSS数据查找

《SPSS统计学基础与实证研究应用精解》4.4 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解4.4节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。本书旨在手把手教会使…

【征服redis15】分布式锁的功能与整体设计方案

目录 1. 分布式锁的概念 2.基于数据库做分布式锁 2.1 基于表主键唯一做分布式锁 2.2 基于表字段版本号做分布式锁 2.3 基于数据库排他锁做分布式锁 3.使用Redis做分布式锁 3.1 redis实现分布式锁的基本原理 3.2 问题一&#xff1a;增加超时机制&#xff0c;防止长期持有…

基于Django的计算机编程技术学习与服务平台

临近毕业&#xff0c;又到了赶毕设的时候了&#xff0c;本次介绍分享一下自己的毕业设计项目吧。 项目主题&#xff1a;基于Django的计算机技术编程技术学习与服务平台 实现功能&#xff1a; 1.登入&#xff1a;用户的登陆注册 2.Python教程&#xff1a;实现用户的Python技…

git clone超时

本文介绍作者在Centos上链接github超时&#xff0c;无法克隆的解决方案 在出现上图所示问题时&#xff0c;有可能是连接不到github.com&#xff0c;读者可以尝试输入ping github.com&#xff0c;当输入该指令后若长时间没有反应说明可能由于本地DNS无法解析导致的。 解决方案…

银河麒麟桌面桌面操作系统v10保姆级安装

目录 一、下载ISO映像文件 1.产品试用申请 2.试用版下载 二、虚拟机搭建 1.新建虚拟机 2. 选择虚拟机硬件兼容性 3.选择安装客户机操作系统 4.选择客户机操作系统 5.命名虚拟机 6.处理器配置 7.虚拟机内存 8.网络类型 9.硬件 10.指定磁盘容量 三、修改虚拟…

JavaWeb:Request Response

文章目录 1、Request和Response的概述2、Request继承体系3、Request获取请求数据3.1、获取请求行数据3.2、获取请求头3.3、获取请求体 4、Request通用方式请求参数5、POST请求参数乱码解决6、Request请求转发7、Response的响应状态码和响应头8、Response重定向9、Response响应字…

2. SpringBoot3 实战之用户模块接口开发

文章目录 开发模式和环境搭建开发模式环境搭建 1. 用户注册1.1 注册接口基本代码编写1.2 注册接口参数校验 2. 用户登录2.1 登录接口基本代码编写2.2 登录认证2.2.1 登录认证引入2.2.2 JWT 简介2.2.3 登录功能集成 JWT2.2.4 拦截器 3. 获取用户详细信息3.1 获取用户详细信息基本…

136基于matlab的自适应滤波算法的通信系统中微弱信号检测程序

基于matlab的自适应滤波算法的通信系统中微弱信号检测程序&#xff0c;周期信号加入随机噪声&#xff0c;进行滤波&#xff0c;输出滤波信号&#xff0c;程序已调通&#xff0c;可直接运行。 136 matlab自适应滤波算法LMS (xiaohongshu.com)

【SpringCloud Alibaba】 介绍及微服务模块搭建

文章目录 SpringCloud Alibaba 介绍主要功能组件 微服务环境搭建案例准备技术选型模块设计微服务调用 创建父工程创建基础模块1、创建 shop-common 模块2、创建实体类 创建用户微服务1、创建pom.xml2、编写主类3、创建配置文件 创建商品微服务1、创建一个名为 shop-product 的模…

看书标记【R语言数据分析项目精解:理论、方法、实战 9】

看书标记——R语言 Chapter 9 文本挖掘——点评数据展示策略9.1项目背景、目标和方案9.1.1项目背景9.1.2项目目标9.1.3项目方案1.建立评论文本质量量化指标2.建立用户相似度模型3.对用户评论进行情感性分析 9.2项目技术理论简介9.2.1评论文本质量量化指标模型1.主题覆盖量2.评论…

前端基础面试题(二)

文章目录 c3新增h5新增ccc3布局形式预解析 构造函数和原型继承的方法高阶函数纯函数柯里化函数闭包垃圾回收机制异步流程、事件循环EventLoop宏任务微任务 promise静态方法-all es6深拷贝和浅拷贝 vue常见面试题说说你对SPA单页面的理解单页应用优缺点v-if和v-show的区别Vue在挂…