お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
投稿日:
OS::Linux::コマンド

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違反であるため受け付けられる保証はない
  • -d
    • x-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'

参考

投稿日:
ミドルウェア::HTTPD::nginx

パス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;
}
投稿日:
Node.jsミドルウェア::HTTPD::nginxOS::iOS

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;
}