docker run --rm -it docker.io/curlimages/curl:latest cat /etc/os-release

curl --verbose --header 'Host: www.example.com' 'http://10.1.1.36:8000/the_url_to_test'
curl --verbose -X POST --header "Cookie: JSESSIONID=136zm5iif8o2e8tcelqk9nd6e"  http://www.lizi.com:30010/j_spring_security_logout

# 使用socks代理
ssh sshUser@sshHost -C -f -N -g -D [localBindIp:]localBindPort
curl --socks5 localhost:13659 https://www.baidu.com/
curl --proxy socks5h://localhost:13659 https://www.baidu.com/
export ALL_PROXY=socks5h://127.0.0.1:13659

export http_proxy=http://prod11.kingsilk.net:81/
export https_proxy=http://prod11.kingsilk.net:81/
curl -v https://www.baidu.com/


export http_proxy=http://localhost:81/
curl -v https://www.baidu.com/

export https_proxy=https://localhost:1443/
export https_proxy=socks://192.168.0.12:19999
curl -v https://www.baidu.com/


# 跟随302跳转

# 禁止显示进度条
-s

# echo server
socat -v tcp-l:1234,fork exec:'/bin/echo'


# 只显示 http 头
curl -s -D - www.baidu.com -o /dev/null

# 以 GET 请求 配合 -d 处理URL参数
curl -v -X GET -G \
    --data-urlencode a=aa中 \
    -d b=bb国 \
    "https://www.baidu.com/?x=xx#/yyy?c=cc"

# http basic 认证
curl -v -u username:password https://www.baidu.com/

# 查看post请求中body的数据 : --trace-ascii /dev/stdout
# 以 multipart/form-data 形式post提交数据
curl https://www.baidu.com \
    -F k1=v1 \
    -F k2=@file \
    --trace-ascii /dev/stdout

# 以 application/x-www-form-urlencoded 形式post提交数据
curl https://www.baidu.com \
    -d k1=v1 \
    --data-urlencod ddd@/tmp/data.json \
    --data-urlencode k2='v 2' \
    --trace-ascii /dev/stdout

# 以 application/x-www-form-urlencoded 形式post提交url encode 的json数据
curl https://www.baidu.com \
    --data-urlencode param="`cat add.json`" \
    --trace-ascii /dev/stdout

# 以 二进制方式提交
curl https://www.baidu.com \
    --data-binary param="`cat add.json`" \



# POST JSON
curl -X POST \
    -H "Content-Type: application/json" \
    -d '{"username":"xyz","password":"xyz"}' \
    http://localhost:3000/api/login
curl -X POST \
    -H "Content-Type: application/json" \
    -d @./path/to/file.json \
    http://localhost:3000/api/login

# POST XML
curl -X POST \
    -H "Content-Type: application/xml" \
    -d '<run><log encoding="hexBinary">4142430A</log><result>0</result><duration>2000</duration></run>' \
    http://user:pass@myhost/hudson/job/_jobName_/postBuildResult

# 下载文件
curl -fsSL https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz -o /tmp/apache-maven-3.9.5-bin.tar.gz
tar zxvf /tmp/apache-maven-3.9.5-bin.tar.gz

curl -fsSL https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz  | tar -C /tmp -zx

# 下载 *.tag.gz 并解压
TAG=v0.1.15
curl -fSL https://github.com/vozlt/nginx-module-vts/archive/${TAG}.tar.gz | tar -zx


# 最简单的一个 ECHO 服务器
ncat -l 2000 -k -c 'xargs -n1 echo'


# 检查给定的网址是否支持 HTTP/2
curl -sI http://curl.se -o/dev/null -w '%{http_version}\n'            # 1.1
curl -sI https://curl.se -o/dev/null -w '%{http_version}\n'           # 2
curl -sI --http3 https://curl.se -o/dev/null -w '%{http_version}\n'   # 3  (需要 curl >= 7.88.1)

socket

[Docker Engine API (1.42)](https://docs.docker.com/engine/api/v1.42/)

podman run --rm -it alpine:latest sh
curl -v --unix-socket /Users/zll/.local/share/containers/podman/machine/qemu/podman.sock http:/v1.42/containers/json

client ssl cipher suites

curl https://www.howsmyssl.com/a/check