JSONとJSONPの違い

 2019.03.29  2023.01.04

こんにちは。EGセキュアソリューションズ診断チームです。JSONとJSONPという、Webサイトを構築する上でよく目にする技術について紹介したいと思います。

JSONとは?

JSONはXMLに代わるデータ交換形式として新たに提唱されたものです。JavaScriptのオブジェクトリテラルの形式をベースとして作られています。また、JSONはJavaScriptの式として解釈できる性質を持ちます。

JSONは名前と値がペアになっているデータの集合体として表されます。名前と値を「:」(コロン)でペアとして記述し、データの間は「,」(カンマ)で区切ります。

これらを{}で囲んだものがJSON形式となります。実際のデータ例を下記に記します。

{ “title” : “Hello JSON!” , “No” : 123 }

JSONPとは?

JSONPとはJSON with Paddingの略です。名前にJSONと含まれているため、同じようなものと思ってしまいがちですが、全く違うものです。

元々、データを異なるオリジン間でやり取りを行うために色々な手法が試されていましたが、
そのうちの一つがJSONPです。JSONのやり取りにはXMLHttpRequestが使用されていますが、XMLHttpRequestは元々同一オリジンポリシーの制約を受けていた(現在はCORSにより回避可能)ため、そのままでは異なるオリジン間でデータを受け渡すことができません。

そのため、XMLHttpRequestを使用せず、script要素を使用して外部のJavaScriptを直接実行することにより、異なるオリジン間でデータをやり取りするという方法が考案されました。これがJSONPです。

ただし、やり取りするデータがJSONの場合、JSON文字列そのままではscript要素でデータを受け取ることができないため、関数呼び出しの形でデータを生成します。

JSONとJSONPの違い

ここまで簡単にJSONとJSONPの概要を述べましたが、一言で書くと次のように表すことができます。

  • JSON:データ交換用の形式、またはデータそのもの
  • JSONP :データそのものを異なるオリジン間でやり取りするための手法

RECENT POST「用語」の最新記事


用語

エクスプロイトコード

用語

標的型攻撃(APT)の脅威とは?被害や対策方法について解説

用語

フォレンジック・デジタルフォレンジックとは?

用語

CVEとは?互換認定の制度についても解説

JSONとJSONPの違い
5分でまるわかり!WAFによるサイバー攻撃対策
1分でわかる「SiteGuardシリーズ」
RECENT POST 最新記事
ブログ無料購読
RANKING人気記事ランキング