投稿日:
HTTPを始めFTPやLDAPなど多様なプロトコルに対応したクライアント
curl [options...] <url>
Options
ヘルプが充実してるのでヘルプ見たほうが早い
-X method-X POSTとかするとそのメソッドを投げられる-XPOST形式でも動く
-s- 通信の進捗を表示しない
- 通信エラーも表示しない
-S-sが指定されている時にエラーを表示する
-L- location headersを読む
- 3xx系のコードの追従する(302 redirectとか)
-sSLでセットにして使うことが多い
-v--verbose- レスポンス内容が全部出る
- レスポンスヘッダを見る時に使える(
-Iでも見れるがHEAD methodを投げてるだけなので-Xと併用できない) - エラー出力されるのでgrepしたい時などは標準出力にリダイレクトが必要
2>&1
- レスポンスヘッダを見る時に使える(
-H- ヘッダを投げられる
-H 'Content-Type: application/json'-H 'User-Agent:' -H 'Accept:' -H 'Host:'でcurl自身の既定ヘッダを消せる。但しHostヘッダーのないリクエストはRFC違反であるため受け付けられる保証はない
-dx-www-form-urlencodedを投げる時に使う-d key=value- 複数あるときは複数指定する
- 暗黙的に
-X POST扱いになる
--data-urlencode-dと同じだが中身がURLエンコードされる
-o <path>- ファイルを保存する
- ダウンロード目当てならwgetのほうが使いやすい
例
JSONのPOST
curl -v -H 'Content-Type: application/json' -d '{ "hoge": "piyo" }' -- 'https://example.com'
参考
投稿日:
パスFooでは直にリバプロしたいけど、Barではローカルを見てからリバプロしたいときなどに使える
確認環境
| Env | Ver |
|---|---|
| nginx | 1.19.8 |
サンプルコード
location @prox {
proxy_set_header Authorization "Basic xxxxxxxxxxxxxxxxxxxxx==";
proxy_pass https://example.com;
}
# 直遷移させたい
location ^~ /foo {
try_files /dev/null @prox;
}
# 内部に当ててから遷移したい
location ^~ /bar {
try_files $uri @prox;
}
投稿日:
Proxy headerを設定しないとiOS Safari環境で上手くアクセスできないケースがあるのでやる設定
確認環境
| Env | Ver |
|---|---|
| nginx | 1.19.8 |
サンプルコード
httpセクション
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
リバースプロキシ設定
location @prox {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass https://example.com;
}
投稿日:
ls -l | xargs echoのようにして手前のコマンドの標準出力を渡すコマンド。そのコマンドの次に差し込まれる形になる
指定位置に結果を差し込む
echo 'bbb' | xargs -I{} echo "aaa"{}-I{}のように指定すると置換文字列を指定できる
echo 'bbb' | xargs -I{} echo "aaa"{}{}{}- 複数書けば複数回置換される