🤔
リクエストヘッダーの振り返り
クライアント側からPOSTする場合
クライアント側からリクエストヘッダーを指定するのはサーバー側にどんなデータか解釈させるためになります。
下記は一般的なcontet-typeの一覧です。
- application/json: JSON形式のデータを表すために使用されます。JSONはキーと値のペアで構成され、オブジェクトまたは配列を表現します。
- multipart/form-data: フォームデータをエンコードするために使用され、ファイルのアップロードなどに適しています。フォームデータは通常、各フィールドとその値が境界を介して分けられた形式で送信されます。
- text/plain: プレーンテキストデータを表すために使用されます。HTMLコードやXMLデータなど、特定のフォーマットに関連付けられていないテキストデータを送信する場合に使用できます。
- application/xml: XML形式のデータを表すために使用されます。XMLは階層構造を持つデータを表現するのに適しています。
-
application/x-www-form-urlencoded: HTMLフォームデータをエンコードするために使用され、通常はキーと値のペアを
key1=value1&key2=value2
のような形式でエンコードします。
今回まとめることとなったきっかけ
Node.jsのExpressフレームワークでJSONデータを受け取るための設定の記述を忘れたことでうまくデータを受け取ることができなかったことがありました。
app.use(express.json())
上記、記述することで問題なく受け取れました。
Node.jsのExpressフレームワークは、リクエストヘッダーを明示的に設定しない場合、一般的にデフォルトの設定が適用されます。私の環境ではjson形式で送られておりました。
これまでデータをクライアントからPOSTする際は明示的にリクエストヘッダーを定義していたので意識できていなかったのかもしれません。
Discussion