curlコマンドでHTTPリクエストを送信する際、自動的に設定される主なヘッダーは以下のものです。
1. Host
説明: URLのホスト部分(ドメイン名やIPアドレス)に基づいて自動的に設定されます。HostヘッダーはHTTP/1.1の必須ヘッダーであり、リクエストの宛先を示します。
例: curl http://example.com
とすると、Host: example.com が自動で付与されます。
2. User-Agent
説明: リクエストを送信しているクライアント(ここではcurl)の情報を示すヘッダーです。curlはバージョン情報を含むUser-Agentヘッダーを自動で付与します。
例: User-Agent: curl/7.79.1(バージョンは使用しているcurlに依存)
3. Accept
説明: クライアントがサーバーから受け取ることができるレスポンスのメディアタイプを指定します。curlはデフォルトで全てのメディアタイプを受け入れる設定になっているため、Accept: / が自動的に設定されます。
例: Accept: /
4. Connection
説明: 接続の持続性を指定します。デフォルトでは、HTTP/1.1の仕様に従ってConnection: keep-aliveが自動で付与されますが、HTTP/1.0の場合はConnection: closeが付与されることもあります。
例: Connection: keep-alive
5. Content-Length(POSTやPUTなどのリクエストでデータ送信時)
説明: リクエストボディのサイズ(バイト単位)を示すヘッダーです。データを送信するリクエスト(例えばPOSTやPUT)で、送信するデータのサイズに応じて自動的に設定されます。
例: Content-Length: 348
6. Expect(条件付きで設定される)
説明: POSTやPUTリクエストでサイズが大きい場合(デフォルトでは1KB以上)、Expect: 100-continue ヘッダーが自動的に追加されます。これにより、サーバーが100-continueレスポンスを返すまで、リクエストのボディ部分を送信するのを待機します。
例: Expect: 100-continue
これら以外に自動で設定されることはない
その他のヘッダー(例えばAuthorizationやContent-Type)は、特定の条件が揃わない限り自動的には設定されません。これらは必要に応じて手動で指定する必要があります。