curl工具的使用方法
概述
这篇文章介绍了一个开源功能强大的命令行网络工具 curl,curl 功能丰富,用法简单,被广泛用于命令行、终端的网络请求场景中。这篇文件简要介绍了 curl 的功能和使用方法。
curl 是什么
curl 是一个命令行工具,利用 URL 语法在命令行中完成数据传输的工具,支持文件上传和下载。
curl 支持的协议(参考官网介绍):
| 协议 | 详情 |
|---|---|
| Protocol | DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS, WSS |
| Proxies | SOCKS4, SOCKS5, HTTP, HTTPS (HTTP/1 and HTTP/2), tunneling, via unix domain sockets, haproxy, SOCKS+HTTP proxy chain |
| HTTP | GET, POST, PUT, HEAD, multipart formpost, HTTP/0.9, HTTP/1.0, HTTP/1.1, HTTP/2 (h2c, h2, prior knowledge), HTTP/3 (dual connect h1/h2 + h3 or h3-only), HSTS, Alt-Svc, cookies, PSL, etags, transfer compression, ranges, custom headers, custom method, follow redirects |
| FTP | IPv6 (EPRT, EPSV), STLS, upload/download, append, range, passive/active, kerberos, directory listing, custom commands |
| SCP + SFTP | known hosts, md5/sha256 fingerprint, compression, upload/download, directory listing |
| TLS | 1.0 - 1.3, mutual authentication, STARTTLS, OCSP stapling, ECH, False Start, key pinning, PQC ready, session resumption, early data, export/import sessions |
| QUIC | 0RTT handshakes |
| Auth | Basic, Plain, Digest, CRAM-MD5, SCRAM-SHA, NTLM, Negotiate, Kerberos, Bearer tokens, AWS Sigv4, SASL, .netrc |
| HTTP compression | gzip, brotli and zstd |
| Name resolving | DNS-over-HTTPS, custom address for host, name+port redirect, custom DNS servers, DNS caching, HTTPS RR |
| Connection | connection reuse, Interface binding, Happy Eyeballs, IPv4/IPv6-only, unix domain sockets, TCP keepalive, TCP Fast Open, TCP Nodelay, MPTCP, VLAN priority, IP Type Of Service |
| Transfers | transfer rate limiting, request rate limiting, stall detection, retries, timeouts |
| URLs | Unlimited amount, parallel and serial transfers, globbing |
| Output | IDN hostnames, custom info from transfer, metadata as JSON, per content-disposition, libcurl source code, bold headers |
Jenkins自动发布Hexo博客
概述
这篇文章介绍如何在服务器上使用docker搭建jenkins,并使用jenkins自动从github仓库拉取自己 Hexo 博客的源代码,完成项目构建与部署,使用nginx对外提供博客访问服务。
认识 jenkins
Jenkins 是一个开源的自动化构建、部署工具,支持数百款插件扩展,支持各种自动化业务场景。Jenkins使用 java 开发,支持使用jar包部署或docker部署。
Jenkins 官网:https://www.jenkins.io/
esp8266 远程点灯
认识和使用TCP协议
概述
这篇文章介绍了 tcp 协议的含义、特点与使用场景,以 java 语言实现了 tcp 服务端与客户端,并进行通信。
什么是 tcp
传输控制协议(Transmission Control Protocol,缩写 TCP),是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP协议基于 IP 协议实现。与用户数据报协议(User Datagram Protocol,简称 UDP)一起作为传输层的两个重要协议。
| 五层网络模型 | 协议 |
|---|---|
| 应用层 | HTTP、FTP、TELNET、SSH、SNMP、DNS、SMTP、POP3、RPC… |
| 传输层 | TCP、UDP、TLS/SSL、PPTP、RSVP… |
| 网络层 | IP(v4,v6)、ICMP(v6)、IGMP、RARP、IS-IS… |
| 链路层 | Wi-Fi(IEEE 802.11)、ARP、以太网、GPRS、PPP… |
| 物理层 | 以太网、调制解调器、电力线通信、光导纤维、双绞线… |
Rust学习笔记4-Rust结构体与枚举
部署Hexo博客到云服务器
Rust学习笔记3-Rust核心概念之所有权
概述
这篇文件介绍了 Rust 中最核心,也是最特别的一个概念:所有权(ownership),想学好 Rust 就必须充分的理解所有权。所有权让 Rust 在无需垃圾回收机制就可以保证内存安全,而且在其他编程中从未有过所有权的概念,因此从其他编程语言转来学 Rust 时会感觉难以理解。
什么是所有权
所有权是 Rust 的核心特性,Rust 中使用所有权系统来管理内存使用,它让 Rust 无需 GC (垃圾回收)就可以保证内存安全。所有权机制不像 java、C# 使用垃圾回收器管理内存,也不像 C/C++ 语言一样需要程序员显式的申请与释放内存。
所有权系统让 Rust 在编译时就可以完成内存使用的检查,因而程序在运行时就不会产生任何额外开销,这样既保证了内存安全,又提升了运行速度。真是妙啊!


