🤔

リクエストヘッダーの振り返り

2023/10/06に公開

クライアント側からPOSTする場合

クライアント側からリクエストヘッダーを指定するのはサーバー側にどんなデータか解釈させるためになります。

下記は一般的なcontet-typeの一覧です。

  1. application/json: JSON形式のデータを表すために使用されます。JSONはキーと値のペアで構成され、オブジェクトまたは配列を表現します。
  2. multipart/form-data: フォームデータをエンコードするために使用され、ファイルのアップロードなどに適しています。フォームデータは通常、各フィールドとその値が境界を介して分けられた形式で送信されます。
  3. text/plain: プレーンテキストデータを表すために使用されます。HTMLコードやXMLデータなど、特定のフォーマットに関連付けられていないテキストデータを送信する場合に使用できます。
  4. application/xml: XML形式のデータを表すために使用されます。XMLは階層構造を持つデータを表現するのに適しています。
  5. application/x-www-form-urlencoded: HTMLフォームデータをエンコードするために使用され、通常はキーと値のペアを key1=value1&key2=value2 のような形式でエンコードします。

今回まとめることとなったきっかけ

Node.jsのExpressフレームワークでJSONデータを受け取るための設定の記述を忘れたことでうまくデータを受け取ることができなかったことがありました。

app.use(express.json())

上記、記述することで問題なく受け取れました。
Node.jsのExpressフレームワークは、リクエストヘッダーを明示的に設定しない場合、一般的にデフォルトの設定が適用されます。私の環境ではjson形式で送られておりました。
これまでデータをクライアントからPOSTする際は明示的にリクエストヘッダーを定義していたので意識できていなかったのかもしれません。

Discussion