JavaWeb 速通HTTP

目录

一、HTTP快速入门

        1.HTTP简介 : 

        2.HTTP请求头 : 

        3.HTTP响应头 : 

二、HTTP响应状态码

        1.基本介绍 : 

        2.常见状态码 : 

        3.状态码的分类 : 

        4.完整状态码汇总 : 

三、HTTP请求包和响应包

        1.请求包分析 : 

            1° GET请求

                (1) 说明 

                (2) doGet返回数据给浏览器

                (3) form表单提交数据的请求行

                (4) GET请求有哪些?

                (5) 什么时候使用GET请求?

            2° POST请求

                (1) 说明 

                (2) POST请求有哪些?

                (3) 什么时候使用POST请求?

        2.响应包分析 : 

            1° 说明

            2° MIME类型

四、HTTP总结


一、HTTP快速入门

        1.HTTP简介 : 

        HTTP,全称HyperTextTransferProtocol,指超文本传输协议;HTTP是互联网上应用广泛的一种网络协议。

        HTTP TCP/IP协议的一个应用层协议,是工作在TCP/IP协议(网络传输协议)基础上的,所有的WWW文件都遵守这个标准。其中,HTTP1.0短连接,HTTP1.1长连接。

        2.HTTP请求头 : 

Header
解释示例
Accept
指定客户端能够接收的内容类型Accept: text/plain, text/html
Accept-Charset
浏览器可以接受的字符编码集。Accept-Charset: iso-8859-5
Accept-Encoding
指定浏览器可以支持的 web 服务器返回内容压缩编码类型(压缩算法)。
Accept-Encoding: compress, gzip
Accept-Language
浏览器可接受的语言Accept-Language: en,zh
Accept-Ranges
可以请求网页实体的一个或者多个子范围字段Accept-Ranges: bytes
Authorization
HTTP 授权的授权证书Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control
指定请求和响应遵循的缓存机制
Cache-Control: no-cache
Connection
表示是否需要持久连接。(HTTP 1.1 默认进行持久连接)
Connection: close(keep-alive表示长连接)
Cookie
HTTP 请求发送时,会把保存在该请求域名下的所有 cookie 值一起发 送给 web 服务器。
Cookie: $Version=1; Skin=new;
Content-Length
请求的内容长度Content-Length: 348
Content-Type
请求的与实体对应的 MIME 信息
Content-Type: application/x-www-form-urlencoded
Date
请求发送的日期和时间
Date: Tue, 15 Nov 2010 08:12:31 GMT
Expect
请求的特定的服务器行为Expect: 100-continue
From
发出请求的用户的 EmailFrom: user@email.com
Host
指定请求的服务器的域名(域名是IP的映射,有时也叫主机名)和端口号;Host: www.zcmhi.com
If-Match
只有请求内容与实体相匹配才有效If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified-Since
如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304 代码(前提是浏览器没有禁用缓存
If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT
告诉服务器我有该资源; 将该资源的最近修改时间发送给服务器)
服务器收到请求后会对资源的最近修改时间进行比较,若服务器的资源发生了更新,则向浏览器返回更新后的资源若服务器的资源没有更新,就返回304状态码而不返回请求的资源

这就是静态页面的修改不需要重新发布Web应用的真正原因,根本原因。(HTTP请求机制)

If-None-Match
如果内容未改变返回 304 代码,参数为服务器先前发送的 Etag,与服务器回应的 Etag 比较判断是否改变
If-None-Match:
“737060cd8c284d8af7ad3082f209582d”
If-Range
如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。 参数也为 Etag
If-Range: “737060cd8c284d8af7ad3082f209582d”
If-Unmodified-Since
只在实体在指定时间之后未被修改才请求成功If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT
Max-Forwards
限制信息通过代理和网关传送的时间Max-Forwards: 10
Pragma
用来包含实现特定的指令Pragma: no-cache
Proxy-Authorization
连接到代理的授权证书
Proxy-Authorization: Basic
QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range
只请求实体的一部分,指定范围Range: bytes=500-999
Referer
先前网页的地址,当前请求网页紧随其后,即请求的来路,发起者。(可用于防盗链)Referer: http://www.zcmhi.com/archives/71.html
TE
客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息TE: trailers,deflate;q=0.5
Upgrade
向服务器指定某种传输协议以便服务器进行转换(如果支持)Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
User-Agent
User-Agent 的内容包含发出请求的用户信息User-Agent: Mozilla/5.0 (Linux; X11)
Via
通知中间网关或代理服务器地址,通信协议Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning
关于消息实体的警告信息Warn: 199 Miscellaneous warning

        eg : (请求包)

GET /Cyan/cyan.html HTTP/1.1GET请求第一行是请求行,请求行下面的内容是请求头
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Host: www.cyanra9.com:8080
If-Modified-Since: Fri, 14 Jul 2023 23:28:17 GMT
If-None-Match: W/"307-1689377297994"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36

        3.HTTP响应头 : 

Header
解释示例
Accept-Ranges
表明服务器是否支持指定范围请求及哪种类型的分段请求;以什么作接收Accept-Ranges: bytes(支持断点)
Age
从原始服务器到代理缓存形成的估算时间(以秒计,非负)Age: 12
Allow
对某网络资源的有效的请求行为,不允许则返回 405Allow: GET, HEAD
Cache-Control
告诉所有的缓存机制是否可以缓存及哪种类型Cache-Control: no-cache
Content-Encoding
web 服务器支持的返回内容压缩编码类型。Content-Encoding: gzip
Content-Language
响应体的语言Content-Language:en,zh
Content-Length
响应体的长度Content-Length: 348
Content-Location
请求资源可替代的备用的另一地址Content-Location: /index.htm
Content-MD5
返回资源的 MD5 校验值Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range
在整个返回体中本部分的字节位置Content-Range: bytes 21010-47021/47022
Content-Type
返回内容的 MIME 类型Content-Type: text/html; charset=utf-8
Date
原始服务器消息发出的时间(响应时间)Date: Tue, 15 Nov 2010 08:12:31 GMT
ETag
请求变量的实体标签的当前值(对资源的标识,类似于token)ETag: “737060cd8c284d8af7ad3082f209582d”
Expires
响应过期的日期和时间Expires: Thu, 01 Dec 2010 16:00:00 GMT
Last-Modified

请求资源的最后修改时间

(服务器会对请求资源的Last-Modified进行对比,然后根据不同情况决定是否直接使用浏览器缓存中的资源,例如图片 [前提是浏览器没有禁用缓存] )

Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT
Location
用来重定向接收方到非请求 URL 的位置来完成请求或标识新的资源(描述重定向的具体位置Location: http://www.zcmhi.com/archives/94.html
Pragma
包括实现特定的指令,它可应用到响应链上的任何接收方Pragma: no-cache
Proxy-Authenticate
它指出认证方案和可应用到代理的该 URL 上的参数Proxy-Authenticate: Basic
refresh
应用于重定向或一个新的资源被创造,在 5 秒之后重定向(由网景提出, 被大部分浏览器支持)
Refresh: 5; url=
http://www.zcmhi.com/archives/94.html
Retry-After
如果实体暂时不可取,通知客户端在指定时间之后再次尝试Retry-After: 120
Server
web 服务器软件名称Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Set-Cookie
设置 Http Cookie
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Trailer
指出头域在分块传输编码的尾部存在Trailer: Max-Forwards
Transfer-Encoding
文件传输编码Transfer-Encoding:chunked
Vary
告诉下游代理是使用缓存响应还是从原始服务器请求Vary: *
Via
告知代理客户端响应是通过哪里发送的Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning
警告实体可能存在的问题Warning: 199 Miscellaneous warning
WWW-Authenticate
表明客户端请求实体应该使用的授权方案WWW-Authenticate: Basic

        eg : (响应包)

HTTP/1.1 200(HTTP响应一行是响应行,响应行下面的内容是响应头,最后跟着的是响应体
Accept-Ranges: bytes
ETag: W/"307-1689377316925"
Last-Modified: Fri, 14 Jul 2023 23:28:36 GMT
Content-Type: text/html(浏览器解析返回的结果并显示)
Content-Length: 307(浏览器接收到的响应体经过解析后,会加载到浏览器内核的内存中)

Date: Fri, 14 Jul 2023 23:28:38 GMT
Keep-Alive: timeout=20
Connection: keep-alive

<!DOCTYPE html>(响应体
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Cyan_RA9</title>
    </head>
    <body>
        <h1 style="border:2px cornflowerblue solid; font-family: consolas; width:150px">Cyan_RA9</h1>
        <img src="TID_02.jpg" width="450px"/>
    </body>
</html>


二、HTTP响应状态码

        1.基本介绍 : 

        当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头/响应头(server header)用以响应浏览器的请求。
        HTTP状态码的英文为HTTP Status Code

        2.常见状态码 : 

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误(例如代码错误)

        3.状态码的分类 : 

        HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。

        HTTP状态码共分为5种类型:

        4.完整状态码汇总 : 

状态码

状态码英文名称

中文描述

100

Continue

继续。客户端应继续其请求

101

Switching Protocols

切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议

200

OK

请求成功。一般用于GET与POST请求

201

Created

已创建。成功请求并创建了新的资源

202

Accepted

已接受。已经接受请求,但未处理完成

203

Non-Authoritative Information

非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本

204

No Content

无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档

205

Reset Content

重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域

206

Partial Content

部分内容。服务器成功处理了部分GET请求

300

Multiple Choices

多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择

301

Moved Permanently

永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替

302

Found

临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI(重定向

303

See Other

查看其它地址。与301类似。使用GET和POST请求查看

304

Not Modified

未修改(所请求的资源与浏览器缓存中的资源相同)。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源

305

Use Proxy

使用代理。所请求的资源必须通过代理访问

306

Unused

已经被废弃的HTTP状态码

307

Temporary Redirect

临时重定向。与302类似。使用GET请求重定向

400

Bad Request

客户端请求的语法错误,服务器无法理解

401

Unauthorized

请求要求用户的身份认证

402

Payment Required

保留,将来使用

403

Forbidden

服务器理解请求客户端的请求,但是拒绝执行此请求

404

Not Found

服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面

405

Method Not Allowed

客户端请求中的方法被禁止

406

Not Acceptable

服务器无法根据客户端请求的内容特性完成请求

407

Proxy Authentication Required

请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权

408

Request Time-out

服务器等待客户端发送的请求时间过长,超时

409

Conflict

服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突

410

Gone

客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置

411

Length Required

服务器无法处理客户端发送的不带Content-Length的请求信息

412

Precondition Failed

客户端请求信息的先决条件错误

413

Request Entity Too Large

由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息

414

Request-URI Too Large

请求的URI过长(URI通常为网址),服务器无法处理

415

Unsupported Media Type

服务器无法处理请求附带的媒体格式

416

Requested range not satisfiable

客户端请求的范围无效

417

Expectation Failed

服务器无法满足Expect的请求头信息

500

Internal Server Error

服务器内部错误,无法完成请求

501

Not Implemented

服务器不支持请求的功能,无法完成请求

502

Bad Gateway

充当网关或代理的服务器,从远端服务器接收到了一个无效的请求

503

Service Unavailable

由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

504

Gateway Time-out

充当网关或代理的服务器,未及时从远端服务器获取请求

505

HTTP Version not supported

服务器不支持请求的HTTP协议的版本,无法完成处理


三、HTTP请求包和响应包

        1.请求包分析 : 

            1° GET请求

                (1) 说明 

        请求包分为请求行请求头;请求行即请求包的第一行。

        请求行用于说明请求方式请求资源、以及请求协议和版本;如下所示 :

        请求头用于说明请求的具体信息

                (2) doGet返回数据给浏览器

                web.xml配置文件如下  : 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>KIServlet</servlet-name>
        <servlet-class>page.KIServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>KIServlet</servlet-name>
        <url-pattern>/kyrie/irving</url-pattern>
    </servlet-mapping>
</web-app>

                KIServlet类代码如下 : 

package page;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

/**
 * @author : Cyan_RA9
 * @version : 21.0
 */
public class KIServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("KIServlet's doGet is invoked");

        //输出一句话,返回给浏览器
        /*
            通过resp对象的getWriter方法获取对应的PrintWriter流,
            PrintWriter类的print方法可以给浏览器回送数据。
            注意———
            Δ 必须指定回送数据的“数据编码”和“数据格式”!(中间用分号隔开)
            Δ setContentType方法,必须在resp获取流资源之前使用!(否则不生效)
            数据编码: charset=utf-8
            数据格式: text/html (MIME类型)
         */
        resp.setContentType("text/html; charset=utf-8");
        PrintWriter writer = resp.getWriter();
        writer.print("<h2>Kyrie Irving</h2>");

        /*
            为确保数据顺利返回,可以写上flush和close方法
            flush() : 表示将缓存的数据进行刷新
            close() : 表示关闭流,及时地释放资源
         */
        writer.flush();
        writer.close();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

                运行效果 : 

                (3) form表单提交数据的请求行

                如下图所示 : 

                符合速通HTML中提到的"action + ? + name=value&name=value..."的格式。

                (4) GET请求有哪些?

        1.<form></form>标签(method属性可以指定GET)

        2.a标签

        3.link标签引入CSS(浏览器以GET请求的方式来获取资源)

        4.Script标签引入js文件(同上)

        5.<img/>标签引入图片(同上)

        6.iframe引入html页面(不常见)

        7.在浏览器地址栏中输入地址后敲回车(最常见)

                (5) 什么时候使用GET请求?

        1> 在前台页面展示时;

        2> 需要分享和传播时;

        3> 对安全性要求不高时;

        4> 做数据查询时;

            2° POST请求

                (1) 说明 

        POST请求和GET请求的区别是——POST请求包的内容分为请求行请求头请求体三部分

        一个完整的POST请求如下 : 

POST /Servlet_Demo/TTT HTTP/1.1(请求行不再包含表单数据

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,

image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Cache-Control: no-cache

Connection: keep-alive

Content-Length: 17(表示请求体的长度)

Content-Type: application/x-www-form-urlencoded(表示提交的表单数据格式是url编码,在服务器端会自动解码

Cookie: JSESSIONID=6AC34017BAB5AC8B0351FE7494A32CE3; Idea-79b5541a=89d08fdf-a8ef-4a20-bc79-f3a101063e05

Host: localhost:8080

Origin: http://localhost:63342(表示请求来自哪个主机)

Pragma: no-cache

Referer: http://localhost:63342/

Sec-Fetch-Dest: document

Sec-Fetch-Mode: navigate

Sec-Fetch-Site: same-site

Sec-Fetch-User: ?1

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 sec-ch-ua: "Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows"请求头

  

username=Cyan_RA9(请求体, 真正的表单数据存放在这儿

                (2) POST请求有哪些?

        常见POST请求,就是form表单中method属性指定post。

                (3) 什么时候使用POST请求?

        1> 对安全性的要求比较高时,比如有保密数据;(登录)

        2> 传输数据量相对较大时;(发帖,上传文件)

        3> 进行数据的增,删,改时;

        2.响应包分析 : 

            1° 说明

        HTTP 响应分为三部分——响应行;响应头;响应体

        响应行用于说明协议及协议版本,状态码及状态码描述;

        响应头用于详细描述响应的相关信息;

        响应体就是实际返回的内容(也可能没有返回,比如304)。

            2° MIME类型

        MIME是 HTTP 协议中数据类型。 MIME 的英文全称是"Multipurpose Internet Mail  Extensions",指多功能 Internet邮件扩充服务。
        MIME
类型的格式是 " 大类型 / 小类型 ",并与某一种文件的扩展名相对应
        在响应包的
Content-Type响应头中 就有指定MIME类型。

                常见MIME类型如下 : 

文件MIME类型
超文本标记语言文本.html,.htm                eg : text/html
普通文本.txt                             eg : text/plain
RTF文本.rtf                              eg : application/rtf
GIF图像.gif                             eg : image/gif
JPEG图像.jpeg,.jpg                 eg : image/jpeg
au声音文件.au                             eg : audio/basic
MIDI音乐文件.mid,.midi                eg : audio/midi,audio/x-midi
ReadAudio音乐文件.ra,.ram                   eg : audio/x-pn-realaudio
MPEG文件.mpeg,.mpg             eg : video/mpeg
AVI文件.avi                             eg : video/x-msvideo
GZIP文件.gz                              eg : application/x-gzip
TAR文件.tar                              eg : application/x-tar

四、HTTP总结

        (1) 熟悉请求包和响应包的结构 (请求包又可分为GET和POST两种)。

        (2) 掌握常见的请求头和响应头,尤其要明白“修改静态web资源不需要重新发布Web工程”的根本原因(Last-Modified响应头,If-Modified-Since请求头)

        (3) 掌握常见的状态码(200,301,302,304,404,500等)

        (4) 掌握HTTP请求包和响应包的抓包分析

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

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

相关文章

华为云CodeArts产品体验的心得体会及想法

文章目录 前言CodeArts 的产品优势一站式软件开发生产线研发安全Built-In华为多年研发实践能力及规范外溢高质高效敏捷交付 功能特性说明体验感受问题描述完结 前言 华为云作为一家全球领先的云计算服务提供商&#xff0c;致力于为企业和个人用户提供高效、安全、可靠的云服务。…

C++---树形DP---树的中心(每日一道算法2023.7.19)

注意事项&#xff1a; 本题为"树形DP—树的最长路径"的近似题&#xff0c;同时涉及到 单链表模拟邻接表存储图 的操作&#xff0c;建议先理解那篇文章。 题目&#xff1a; 给定一棵树&#xff0c;树中包含 n 个结点&#xff08;编号1~n&#xff09;和 n−1 条无向边…

uniapp查看ios打包后的Info.plist文件

最近在用 uni 开发 ios 的时候给项目添加了自定义的 Info.plist 文件&#xff0c;但是打包后发现并没有生效&#xff0c;才有了查看打包后的 Info.plist 文件想法。 HBuilderX3.6.5起&#xff0c;支持直接在应用项目中配置 iOS 平台的 Info.plist 和 资源文件&#xff08;Bundl…

C# List 详解二

目录 5.Clear() 6.Contains(T) 7.ConvertAll(Converter) ,toutput> 8.CopyTo(Int32, T[], Int32, Int32) 9.CopyTo(T[]) 10.CopyTo(T[], Int32) C# List 详解一 1.Add(T)&#xff0c;2.AddRange(IEnumerable)&#xff0c;3.AsReadOnly()&…

RabbitMQ集群搭建

说明&#xff1a;集群&#xff0c;不管是Redis集群&#xff0c;还是MQ集群&#xff0c;都是为了提高系统的可用性&#xff0c;使系统不至于因为Redis、MQ宕机而崩溃。本文介绍RabbitMQ集群搭建&#xff0c;RabbitMQ集群分为以下三类&#xff1a; 普通集群 镜像集群 仲裁队列 …

循环链表的实现

循环链表简介 简单来说&#xff0c;单链表像一个小巷&#xff0c;无论怎么样最终都能从一端走到另一端&#xff0c;循环链表则像一个有传送门的小巷&#xff0c;因为循环链表当你以为你走到结尾的时候&#xff0c;其实你又回到了开头。循环链表和非循环链表其实创建的过程以及…

程序员基础知识—IP地址

文章目录 一、什么是IP地址二、IP地址的分类三、子网掩码 一、什么是IP地址 IP地址就像我们需要打电话时的电话号码一样&#xff0c;它用来标识网络中的一台主机&#xff0c;每台主机至少有一个IP地址&#xff0c;而且这个IP地址是全网唯一的。IP地址由网路号和主机号两部分组…

Elasticsearch/Enterprise Search/Kibana安装记录

目录 Elasticsearch的安装导入 elasticsearch PGP密钥 安装使用APT安装手动下载安装 启动elasticsearch安全功能重新配置节点以加入现有集群启用系统索引的自动创建功能运行Elasticsearch(在systemd下)检查Elasticsearch是否正在运行Elasticsearch配置外网访问 第三方包安装ela…

Python学习(十六)柱状图

zdaPython学习&#xff08;十四&#xff09;折线图开发_yikuaidabin的博客-CSDN博客 案例数据资源 ↑ """演示基础柱状图的开发 """ from pyecharts.charts import Bar from pyecharts.options import LabelOpts # 使用Bar构建基础柱状图 bar …

【网络】socket——TCP网络通信 | 日志功能 | 守护进程

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 上篇文章中本喵介绍了UDP网络通信的socket代码&#xff0c;今天介绍TCP网络通信的socket代码。 TCP &a…

深度理解 Spring AOP

一、什么是AOP(面向切面编程)&#xff1f;&#x1f349; AOP 为 Aspect Oriented Programming 的缩写&#xff0c;意思为面向切面编程&#xff0c;是通过预编译方式 和运行期 动态代理 实现程序功能的统一维护的一种技术。 AOP &#xff08;面向切面编程&#xff09;是 OOP&a…

深度理解 Spring IOC

Spring容器高层视图 Spring 启动时读取应用程序提供的Bean配置信息&#xff0c;并在Spring容器中生成一份相应的Bean配置注册表&#xff0c;然后根据这张注册表实例化Bean&#xff0c;装配好Bean之间的依赖关系&#xff0c;为上层应用提供准备就绪的运行环境。 Bean缓存池&…

OJ练习第143题——二叉树展开为链表

二叉树展开为链表 力扣链接&#xff1a;114. 二叉树展开为链表 题目描述 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终…

postman批量执行请求,通过json传参

1、创建请求 "authUid":"{{authUid}}", 加粗为需要替换的参数 2、组装JSON 可通过Excel自动填充功能构造数据 [ {"authUid":"18700000001"}, {"authUid":"18725929202"} ] 3、批量执行请求配置 4、然后start r…

PuTTY连接服务器报错Connection refused

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Cloudreve搭建云盘系统,并实现随时访问

文章目录 1、前言2、本地网站搭建1.环境使用2.支持组件选择3.网页安装4.测试和使用5.问题解决 3、本地网页发布1.cpolar云端设置2.cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#xff0c;一时间公…

RabbitMQ惰性队列使用

说明&#xff1a;惰性队列是为了解决消息堆积问题&#xff0c;当生产者生产消息的速度远高于消费者消费消息的速度时&#xff0c;消息会大量的堆积在队列中&#xff0c;而队列中存放的消息数量是有限的&#xff0c;当超出数量时&#xff0c;会造成消息的丢失。而扩容队列&#…

uniapp app运行到ios详细流程

uniapp运行到IOS真机调试&#xff08;windows系统&#xff09; 工具步骤1.首先数据线连接电脑和手机2.右键点击桌面上的HBuilder&#xff0c;打开文件所在位置3.打开HBuilder编辑器里要运行的项目&#xff0c;点击运行>运行到手机或模拟器>运行到IOS APP基座>勾选你的…

LangChain大型语言模型(LLM)应用开发(五):评估

LangChain是一个基于大语言模型&#xff08;如ChatGPT&#xff09;用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口&#xff0c;可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

【每日一题】——C - Standings(AtCoder Beginner Contest 308 )

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…