[解決済み] Content-type: application/json; charset=utf-8」の本当の意味は何ですか?
質問
RESTサービスにJSONボディを持つPOSTリクエストを行う際、以下のような記述があります。
Content-type: application/json; charset=utf-8
をメッセージヘッダに追加しました。このヘッダーがない場合、サービスからエラーが発生します。また
Content-type: application/json
を使用せずに
;charset=utf-8
の部分を削除します。
は具体的にどのようなものなのでしょうか?
charset=utf-8
do ? 文字コードを指定しているのは知っていますが、指定しなくてもサービスは問題なく動作します。このエンコーディングによって、メッセージの本文に使用できる文字が制限されるのでしょうか?
解決方法を教えてください。
ヘッダーは、コンテンツが何でエンコードされているかを示すだけです。コンテンツそのものからコンテンツの種類を推し量ることは必ずしもできません。そのためにHTTPヘッダーがあり、受信者にどんな種類のコンテンツを扱っているのか(と思われる)ことを伝えます。
Content-type: application/json; charset=utf-8
は、文字コードUTF-8でエンコードされたJSON形式のコンテンツであることを指定します。JSONのデフォルト(唯一?)のエンコーディングはUTF-8なので、エンコーディングを指定することはJSONの場合、やや冗長です。この場合、受信側のサーバーは、JSONを扱っていることに満足し、デフォルトのエンコーディングがUTF-8であると仮定して、ヘッダーの有無にかかわらず動作するようにしているようです。
このエンコーディングでは、メッセージの本文に入れることができる文字が制限されるのでしょうか?
ヘッダーとボディには何を書いてもかまいません。しかし、両者が一致しないと、間違った結果を得る可能性があります。ヘッダーでUTF-8エンコードと指定しておきながら、実際にはLatin1エンコードのコンテンツを送っていた場合、受信側はLatin1エンコードのデータをUTF-8として解釈しようとして、ゴミデータを生成してしまうかもしれません。もちろん、Latin1でエンコードしたデータを送信すると指定し、実際にそうしているのであれば、そうです、Latin1でエンコードできる文字は256文字に制限されます。
関連
-
[解決済み] 0D 0D 0A の改行があるテキストファイル
-
[解決済み] このエンコーディングは何ですか?0x21
-
[解決済み] などのゴミ文字リスト
-
[解決済み] XHTMLやHTML5で—や–を使う必要はあるのか?
-
[解決済み] XHTMLやHTML5で—や–を使う必要はあるのか?
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] Content-type: application/json; charset=utf-8」の本当の意味は何ですか?
-
[解決済み】ANSIフォーマットとは何ですか?
-
[解決済み】垂直タブとは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 0D 0D 0A の改行があるテキストファイル
-
[解決済み] このエンコーディングは何ですか?0x21
-
[解決済み] などのゴミ文字リスト
-
[解決済み] XHTMLやHTML5で—や–を使う必要はあるのか?
-
[解決済み] JSONでHttp 415 Unsupported Media typeエラーが発生した。
-
[解決済み] XHTMLやHTML5で—や–を使う必要はあるのか?
-
[解決済み] Content-type: application/json; charset=utf-8」の本当の意味は何ですか?
-
[解決済み】ANSIフォーマットとは何ですか?
-
[解決済み】垂直タブとは何ですか?