当前位置:网站首页>curl命令的那些事
curl命令的那些事
2022-08-04 18:23:00 【糖醋·小排顾】
目录
一:curl概述
curl 支持你做很多事情。你可以把 curl 想象成一个精简的命令行网页浏览器。它支持几乎你能想到的所有协议,可以交互访问几乎所有在线内容。唯一和浏览器不同的是,curl 不会渲染接收到的相应信息。
二:curl常用命令
curl 是一个利用URL语法在命令行下工作的文件传输工具。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。其语法格式及常见参数含义如下,
# 语法
curl [option] [url]
# 最简单的使用,获取服务器内容,默认将输出打印到标准输出中(STDOUT)中。
curl http://www.centos.org
# 添加-v参数可以看到详细解析过程,通常用于debug
curl -v http://www.centos.org
# curl发送Get请求
curl URL
curl URL -O 文件绝对路径
# curl发送post请求
# 请求主体用json格式
curl -X POST -H 'content-type: application/json' -d @json文件绝对路径 URL
curl -X POST -H 'content-type: application/json' -d 'json内容' URL
# 请求主体用xml格式
curl -X POST -H 'content-type: application/xml' -d @xml文件绝对路径 URL
curl -X POST -H 'content-type: application/xml' -d 'xml内容' URL
# 设置cookies
curl URL --cookie "cookie内容"
curl URL --cookie-jar cookie文件绝对路径
# 设置代理字符串
curl URL --user-agent "代理内容"
curl URL -A "代理内容"
# curl限制带宽
curl URL --limit-rate 速度
# curl认证
curl -u user:pwd URL
curl -u user URL
# 只打印http头部信息
curl -I URL
curl -head URL
# 末尾参数
--progress 显示进度条
--silent 不现实进度条
# 不需要修改/etc/hosts,curl直接解析ip请求域名
# 将 http://example.com 或 https://example.com 请求指定域名解析的IP为127.0.0.1
curl --resolve example.com:80:127.0.0.1 http://example.com/
curl --resolve example.com:443:127.0.0.1 https://example.com/
三:curl接口测试
curl 可以很方便地完成对 REST API 的调用场景,比如:设置 Header,指定 HTTP 请求方法,指定 HTTP 消息体,指定权限认证信息等。通过 -v 选项也能输出 REST 请求的所有返回信息。curl 功能很强大,有很多参数,这里列出 REST 测试常用的参数:
-X/--request [GET|POST|PUT|DELETE|…] 指定请求的 HTTP 方法
-H/--header 指定请求的 HTTP Header
-d/--data 指定请求的 HTTP 消息体(Body)
-v/--verbose 输出详细的返回信息
-u/--user 指定账号、密码
-b/--cookie 读取 cookie
# 典型的测试命令为:
curl -v -X POST -H "Content-Type: application/json" http://127.0.0.1:8080/user -d'{"username":"admin","password":"admin1234"}'...
# 测试get请求
curl http://www.linuxidc.com/login.cgi?user=test001&password=123456
# 测试post请求
curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi
# 请求主体用json格式
curl -X POST -H 'content-type: application/json' -d @json文件绝对路径 URL
curl -X POST -H 'content-type: application/json' -d 'json内容' URL
# 请求主体用xml格式
curl -X POST -H 'content-type: application/xml' -d @xml文件绝对路径 URL
curl -X POST -H 'content-type: application/xml' -d 'xml内容' URL
# 发送post请求时需要使用-X选项,除了使用POST外,还可以使用http规范定义的其它请求谓词,如PUT,DELETE等
curl -XPOST url
#发送post请求时,通常需要指定请求体数据。可以使用-d或--data来指定发送的请求体。
curl -XPOST -d "name=leo&age=12" url
# 如果需要对请求数据进行urlencode,可以使用下面的方式:
curl -XPOST --data-urlencode "name=leo&age=12" url
# 此外发送post请求还可以有如下几种子选项:
–data-raw
–data-ascii
–data-binary
使用curl和Jenkins REST API
# To retrieve the job config.xml
curl -X GET '<jenkinshost>/job/<jobname>/config.xml' -u username:API_TOKEN -o <jobname>.xml
# to use this config to create a new job
curl -s -XPOST '<jenkinshost>/createItem?name=<jobname>' -u username:API_TOKEN --data-binary @<jobname>.xml -H "Content-Type:text/xml"
# get all jenkins jobs
curl -X GET '<jenkinshost>/api/json?pretty=true' -u username:API_TOKEN -o jobs.json
# get jenkins view
curl -X GET '<jenkinshost>/view/<viewname>/api/json' -u username:API_TOKEN -o view.json
四:curl help
curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
--anyauth Pick "any" authentication method (H)
-a, --append Append to target file when uploading (F/SFTP)
--basic Use HTTP Basic Authentication (H)
--cacert FILE CA certificate to verify peer against (SSL)
--capath DIR CA directory to verify peer against (SSL)
-E, --cert CERT[:PASSWD] Client certificate file and password (SSL)
--cert-status Verify the status of the server certificate (SSL)
--cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)
--ciphers LIST SSL ciphers to use (SSL)
--compressed Request compressed response (using deflate or gzip)
-K, --config FILE Read config from FILE
--connect-timeout SECONDS Maximum time allowed for connection
--connect-to HOST1:PORT1:HOST2:PORT2 Connect to host (network level)
-C, --continue-at OFFSET Resumed transfer OFFSET
-b, --cookie STRING/FILE Read cookies from STRING/FILE (H)
-c, --cookie-jar FILE Write cookies to FILE after operation (H)
--create-dirs Create necessary local directory hierarchy
--crlf Convert LF to CRLF in upload
--crlfile FILE Get a CRL list in PEM format from the given file
-d, --data DATA HTTP POST data (H)
--data-raw DATA HTTP POST data, '@' allowed (H)
--data-ascii DATA HTTP POST ASCII data (H)
--data-binary DATA HTTP POST binary data (H)
--data-urlencode DATA HTTP POST data url encoded (H)
--delegation STRING GSS-API delegation permission
--digest Use HTTP Digest Authentication (H)
--disable-eprt Inhibit using EPRT or LPRT (F)
--disable-epsv Inhibit using EPSV (F)
--dns-servers DNS server addrs to use: 1.1.1.1;2.2.2.2
--dns-interface Interface to use for DNS requests
--dns-ipv4-addr IPv4 address to use for DNS requests, dot notation
--dns-ipv6-addr IPv6 address to use for DNS requests, dot notation
-D, --dump-header FILE Write the received headers to FILE
--egd-file FILE EGD socket path for random data (SSL)
--engine ENGINE Crypto engine (use "--engine list" for list) (SSL)
--expect100-timeout SECONDS How long to wait for 100-continue (H)
-f, --fail Fail silently (no output at all) on HTTP errors (H)
--fail-early Fail on first transfer error, do not continue
--false-start Enable TLS False Start.
-F, --form CONTENT Specify HTTP multipart POST data (H)
--form-string STRING Specify HTTP multipart POST data (H)
--ftp-account DATA Account data string (F)
--ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)
--ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F)
-P, --ftp-port ADR Use PORT with given address instead of PASV (F)
--ftp-skip-pasv-ip Skip the IP address for PASV (F)
--ftp-pret Send PRET before PASV (for drftpd) (F)
--ftp-ssl-ccc Send CCC after authenticating (F)
--ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)
--ftp-ssl-control Require SSL/TLS for FTP login, clear for transfer (F)
-G, --get Send the -d data with a HTTP GET (H)
-g, --globoff Disable URL sequences and ranges using {} and []
-H, --header LINE Pass custom header LINE to server (H)
-I, --head Show document info only
-h, --help This help text
--hostpubmd5 MD5 Hex-encoded MD5 string of the host public key. (SSH)
-0, --http1.0 Use HTTP 1.0 (H)
--http1.1 Use HTTP 1.1 (H)
--http2 Use HTTP 2 (H)
--http2-prior-knowledge Use HTTP 2 without HTTP/1.1 Upgrade (H)
--ignore-content-length Ignore the HTTP Content-Length header
-i, --include Include protocol headers in the output (H/F)
-k, --insecure Allow connections to SSL sites without certs (H)
--interface INTERFACE Use network INTERFACE (or address)
-4, --ipv4 Resolve name to IPv4 address
-6, --ipv6 Resolve name to IPv6 address
-j, --junk-session-cookies Ignore session cookies read from file (H)
--keepalive-time SECONDS Wait SECONDS between keepalive probes
--key KEY Private key file name (SSL/SSH)
--key-type TYPE Private key file type (DER/PEM/ENG) (SSL)
--krb LEVEL Enable Kerberos with security LEVEL (F)
--libcurl FILE Dump libcurl equivalent code of this command line
--limit-rate RATE Limit transfer speed to RATE
-l, --list-only List only mode (F/POP3)
--local-port RANGE Force use of RANGE for local port numbers
-L, --location Follow redirects (H)
--location-trusted Like '--location', and send auth to other hosts (H)
--login-options OPTIONS Server login options (IMAP, POP3, SMTP)
-M, --manual Display the full manual
--mail-from FROM Mail from this address (SMTP)
--mail-rcpt TO Mail to this/these addresses (SMTP)
--mail-auth AUTH Originator address of the original email (SMTP)
--max-filesize BYTES Maximum file size to download (H/F)
--max-redirs NUM Maximum number of redirects allowed (H)
-m, --max-time SECONDS Maximum time allowed for the transfer
--metalink Process given URLs as metalink XML file
--negotiate Use HTTP Negotiate (SPNEGO) authentication (H)
-n, --netrc Must read .netrc for user name and password
--netrc-optional Use either .netrc or URL; overrides -n
--netrc-file FILE Specify FILE for netrc
-:, --next Allows the following URL to use a separate set of options
--no-alpn Disable the ALPN TLS extension (H)
-N, --no-buffer Disable buffering of the output stream
--no-keepalive Disable keepalive use on the connection
--no-npn Disable the NPN TLS extension (H)
--no-sessionid Disable SSL session-ID reusing (SSL)
--noproxy List of hosts which do not use proxy
--ntlm Use HTTP NTLM authentication (H)
--ntlm-wb Use HTTP NTLM authentication with winbind (H)
--oauth2-bearer TOKEN OAuth 2 Bearer Token (IMAP, POP3, SMTP)
-o, --output FILE Write to FILE instead of stdout
--pass PASS Pass phrase for the private key (SSL/SSH)
--path-as-is Do not squash .. sequences in URL path
--pinnedpubkey FILE/HASHES Public key to verify peer against (SSL)
--post301 Do not switch to GET after following a 301 redirect (H)
--post302 Do not switch to GET after following a 302 redirect (H)
--post303 Do not switch to GET after following a 303 redirect (H)
--preproxy [PROTOCOL://]HOST[:PORT] Proxy before HTTP(S) proxy
-#, --progress-bar Display transfer progress as a progress bar
--proto PROTOCOLS Enable/disable PROTOCOLS
--proto-default PROTOCOL Use PROTOCOL for any URL missing a scheme
--proto-redir PROTOCOLS Enable/disable PROTOCOLS on redirect
-x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port
--proxy-anyauth Pick "any" proxy authentication method (H)
--proxy-basic Use Basic authentication on the proxy (H)
--proxy-digest Use Digest authentication on the proxy (H)
--proxy-cacert FILE CA certificate to verify peer against for proxy (SSL)
--proxy-capath DIR CA directory to verify peer against for proxy (SSL)
--proxy-cert CERT[:PASSWD] Client certificate file and password for proxy (SSL)
--proxy-cert-type TYPE Certificate file type (DER/PEM/ENG) for proxy (SSL)
--proxy-ciphers LIST SSL ciphers to use for proxy (SSL)
--proxy-crlfile FILE Get a CRL list in PEM format from the given file for proxy
--proxy-insecure Allow connections to SSL sites without certs for proxy (H)
--proxy-key KEY Private key file name for proxy (SSL)
--proxy-key-type TYPE Private key file type for proxy (DER/PEM/ENG) (SSL)
--proxy-negotiate Use HTTP Negotiate (SPNEGO) authentication on the proxy (H)
--proxy-ntlm Use NTLM authentication on the proxy (H)
--proxy-header LINE Pass custom header LINE to proxy (H)
--proxy-pass PASS Pass phrase for the private key for proxy (SSL)
--proxy-ssl-allow-beast Allow security flaw to improve interop for proxy (SSL)
--proxy-tlsv1 Use TLSv1 for proxy (SSL)
--proxy-tlsuser USER TLS username for proxy
--proxy-tlspassword STRING TLS password for proxy
--proxy-tlsauthtype STRING TLS authentication type for proxy (default SRP)
--proxy-service-name NAME SPNEGO proxy service name
--service-name NAME SPNEGO service name
-U, --proxy-user USER[:PASSWORD] Proxy user and password
--proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port
-p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)
--pubkey KEY Public key file name (SSH)
-Q, --quote CMD Send command(s) to server before transfer (F/SFTP)
--random-file FILE File for reading random data from (SSL)
-r, --range RANGE Retrieve only the bytes within RANGE
--raw Do HTTP "raw"; no transfer decoding (H)
-e, --referer Referer URL (H)
-J, --remote-header-name Use the header-provided filename (H)
-O, --remote-name Write output to a file named as the remote file
--remote-name-all Use the remote file name for all URLs
-R, --remote-time Set the remote file's time on the local output
-X, --request COMMAND Specify request command to use
--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
--retry NUM Retry request NUM times if transient problems occur
--retry-connrefused Retry on connection refused (use with --retry)
--retry-delay SECONDS Wait SECONDS between retries
--retry-max-time SECONDS Retry only within this period
--sasl-ir Enable initial response in SASL authentication
-S, --show-error Show error. With -s, make curl show errors when they occur
-s, --silent Silent mode (don't output anything)
--socks4 HOST[:PORT] SOCKS4 proxy on given host + port
--socks4a HOST[:PORT] SOCKS4a proxy on given host + port
--socks5 HOST[:PORT] SOCKS5 proxy on given host + port
--socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy
--socks5-gssapi-service NAME SOCKS5 proxy service name for GSS-API
--socks5-gssapi-nec Compatibility with NEC SOCKS5 server
-Y, --speed-limit RATE Stop transfers below RATE for 'speed-time' secs
-y, --speed-time SECONDS Trigger 'speed-limit' abort after SECONDS (default: 30)
--ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)
--ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)
-2, --sslv2 Use SSLv2 (SSL)
-3, --sslv3 Use SSLv3 (SSL)
--ssl-allow-beast Allow security flaw to improve interop (SSL)
--ssl-no-revoke Disable cert revocation checks (WinSSL)
--stderr FILE Where to redirect stderr (use "-" for stdout)
--suppress-connect-headers Suppress proxy CONNECT response headers
--tcp-nodelay Use the TCP_NODELAY option
--tcp-fastopen Use TCP Fast Open
-t, --telnet-option OPT=VAL Set telnet option
--tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)
--tftp-no-options Do not send TFTP options requests
-z, --time-cond TIME Transfer based on a time condition
-1, --tlsv1 Use >= TLSv1 (SSL)
--tlsv1.0 Use TLSv1.0 (SSL)
--tlsv1.1 Use TLSv1.1 (SSL)
--tlsv1.2 Use TLSv1.2 (SSL)
--tlsv1.3 Use TLSv1.3 (SSL)
--tls-max VERSION Use TLS up to VERSION (SSL)
--trace FILE Write a debug trace to FILE
--trace-ascii FILE Like --trace, but without hex output
--trace-time Add time stamps to trace/verbose output
--tr-encoding Request compressed transfer encoding (H)
-T, --upload-file FILE Transfer FILE to destination
--url URL URL to work with
-B, --use-ascii Use ASCII/text transfer
-u, --user USER[:PASSWORD] Server user and password
--tlsuser USER TLS username
--tlspassword STRING TLS password
--tlsauthtype STRING TLS authentication type (default: SRP)
--unix-socket PATH Connect through this Unix domain socket
--abstract-unix-socket PATH Connect to an abstract Unix domain socket
-A, --user-agent STRING Send User-Agent STRING to server (H)
-v, --verbose Make the operation more talkative
-V, --version Show version number and quit
-w, --write-out FORMAT Use output FORMAT after completion
--xattr Store metadata in extended file attributes
-q, --disable Disable .curlrc (must be first parameter)
五:实战
5.1下载内容到指定路径
通过-o/-O选项保存下载的文件到指定的文件中:
-o:将文件保存为命令行中指定的文件名的文件中
-O:使用URL中默认的文件名保存文件到本地
curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html
curl -O http://www.gnu.org/software/gettext/manual/gettext.html
使用多个 -o 可以同时获取多个文件内容。若同时从同一站点下载多个文件时,curl会尝试重用链接(connection)。
5.2断点续传
通过使用 -C 选项可对大文件使用断点续传功能,如:
当文件在下载完成之前结束该进程
curl -O http://www.gnu.org/software/gettext/manual/gettext.html
通过添加-C选项继续对该文件进行下载,已经下载过的文件不会被重新下载
curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
需要注意的是 -C 参数后值是 -
5.3下载限速
通过--limit-rate
选项对CURL的最大网络使用进行限制:
下载速度最大不会超过1000B/second
curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html
5.4下载指定时间内修改过的文件
当下载一个文件时,可对该文件的最后修改日期进行判断,如果该文件在指定日期内修改过,就进行下载,否则不下载。
该功能可通过使用 -z 选项来实现:
若yy.html文件在2011/12/21之后有过更新才会进行下载
curl -z 21-Dec-11 http://www.example.com/yy.html
5.5CURL授权
在访问需要授权的页面时,可通过 -u 选项提供用户名和密码进行授权
curl -u username:password URL
# 通常的做法是在命令行只输入用户名,之后会提示输入密码,这样可以保证在查看历史记录时不会将密码泄露
curl -u username URL
5.6从FTP服务器下载文件
CURL同样支持FTP下载,若在url中指定的是某个文件路径而非具体的某个要下载的文件名,CURL则会列出该目录下的所有文件名而并非下载该目录下的所有文件:
# 列出public_html下的所有文件夹和文件
curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/
# 下载xss.php文件
curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php
5.7上传文件到FTP服务器
通过 -T
选项可将指定的本地文件上传到FTP服务器上
# 将myfile.txt文件上传到服务器
curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com
# 同时上传多个文件
curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com
# 从标准输入获取内容保存到服务器指定的文件中
curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt
5.8通过字典查询单词
# 查询bash单词的含义
curl dict://dict.org/d:bash
# 列出所有可用词典
curl dict://dict.org/show:db
# 在foldoc词典中查询bash单词的含义
curl dict://dict.org/d:bash:foldoc
5.9设置代理
-x
选项可以为CURL添加代理功能:
指定代理主机和端口
curl -x proxysever.test.com:3128 http://google.co.in
5.10保存与使用网站cookie信息
# 将网站的cookies信息保存到sugarcookies文件中
curl -D sugarcookies http://localhost/sugarcrm/index.php
# 使用上次保存的cookie信息
curl -b sugarcookies http://localhost/sugarcrm/index.php
5.11获取HTTP头信息
通过使用 -v
和 -trace
获取更多的链接信息:
curl -v http://www.centos.org
5.12发送GET/POST请求
默认curl使用GET方式请求数据,这种方式下直接通过URL传递数据。
可以通过 --data/-d
方式指定使用POST方式传递数据;通过 -X
选项指定其它协议。
# GET
curl -u username https://api.github.com/user?access_token=XXXXXXXXXX
# POST
curl -u username --data "param1=value1¶m2=value" https://api.github.com
# 也可以指定一个文件,将该文件中的内容当作数据传递给服务器端
curl --data @filename https://github.api.com/authorizations
# 通过 -X 选项指定其它协议
curl -I -X DELETE https://api.github.cim
# 上传文件: -F/--form
# 相当于设置form表单的method="POST"和enctype='multipart/form-data'两个属性
curl --form "[email protected]" http://hostname/resource
注:默认情况下,通过POST方式传递过去的数据中若有特殊字符,首先需要将特殊字符转义再传递给服务器端,如value值中包含有空格,则需要先将空格转换成
%20
,如:curl -d "value%201" http://hostname.com
在新版本的CURL中,提供了新的选项 --data-urlencode
,通过该选项提供的参数会自动转义特殊字符:
curl --data-urlencode "value 1" http://hostname.com
5.13设置HTTP头部字段
若服务器需要传递json文本参数:
curl -H "Content-Type: application/json" -X POST --data '{"param":{"appkey":"xxx","secret":"xxx"}}' http://api.xxx.com
-H/--header
用于为HTTP请求设置任意header及值。
-H "Content-Type: application/json"
指定以json形式传递参数,默认是以表单的形式传递参数。
对于User-Agent
、 Cookie
、 Host
这类标准的HTTP头部字段,通常会有另外一种设置方法。curl命令提供了特定的选项来对这些头部字段进行设置:
-A/--user-agent
: 设置User-Agent
字段-b/--cookie
: 设置Cookie
字段-e/--referer
: 设置Referer
字段
边栏推荐
- LVS+NAT 负载均衡群集,NAT模式部署
- Interval greedy (interval merge)
- Go 言 Go 语,一文看懂 Go 语言文件操作
- 22/8/4 记忆化搜索+博弈论
- 基于激励的需求响应计划下弹性微电网的短期可靠性和经济性评估(Matlab代码实现)
- 路由懒加载
- Hezhou Cat1 4G module Air724UG is configured with RNDIS network card or PPP dial-up, and the development board is connected to the Internet through the RNDIS network card (taking the RV1126/1109 devel
- 【注册荣耀开发者】赢【荣耀70】手机
- Route lazy loading
- 工业元宇宙对工业带来的改变
猜你喜欢
The Industrial Metaverse Brings Changes to Industry
Matlab drawing 1
Develop those things: How to obtain the traffic statistics of the monitoring site through the EasyCVR platform?
合宙Cat1 4G模块Air724UG配置RNDIS网卡或PPP拨号,通过RNDIS网卡使开发板上网(以RV1126/1109开发板为例)
关于ETL的两种架构(ETL架构和ELT架构)
图解LeetCode——899. 有序队列(难度:困难)
DHCP&OSPF combined experimental demonstration (Huawei routing and switching equipment configuration)
Flink / Scala - 使用 RedisSink 存储数据
Documentary on Security Reinforcement of Network Range Monitoring System (1)—SSL/TLS Encrypted Transmission of Log Data
PHP代码审计7—文件上传漏洞
随机推荐
如何给MySQL添加自定义语法 ?
Introduction of three temperature measurement methods for PT100 platinum thermal resistance
leetcode/有效的回文串,含有不需要判断回文的字符
Route lazy loading
"Involution" Index Analysis Based on AHP
July 31, 2022 Summary of the third week of summer vacation
悦刻难回巅峰
margin 塌陷和重合的理解
数据库SqlServer迁移PostgreSql实践
clickhouse online and offline table
方法的重写
Thrift IDL Sample File
网页端IM即时通讯开发:短轮询、长轮询、SSE、WebSocket
Create Sentinel high-availability cluster current limiting middleware from -99
2019 Haidian District Youth Programming Challenge Activity Elementary Group Rematch Test Questions Detailed Answers
Iptables防火墙基础知识介绍
关于使用腾讯云HiFlow场景连接器每天提醒签到打卡
Interval greedy (interval merge)
基于 eBPF 的 Kubernetes 可观测实践
DHCP&OSPF combined experimental demonstration (Huawei routing and switching equipment configuration)