インターネット
 Computer >> コンピューター >  >> ネットワーキング >> インターネット

JSON の正しい Content-Type は何ですか?リクエスト ヘッダーの MIME タイプの説明

インターネットで使用されるすべてのリソースには、Multipurpose Internet Mail Extension を表す MIME タイプとしても知られるメディア タイプがあります。この情報は、サーバーとクライアント間のトランザクションに必要です。

ブラウザは、適切に処理できるように、送信されたリソースのメディア タイプを認識する必要があります。

サーバーについても同様です。正確な解析と処理のために、送信されたリソースのタイプを知る必要があります。

Content-Type はどこで宣言されていますか?

リソースのメディア タイプは、Content-Type で宣言されます。 リクエスト ヘッダー (クライアント上でサーバーにリクエストを送信する場合) またはレスポンス ヘッダー (サーバー上でレスポンスを送信する場合) のプロパティ。

リソースのコンテンツ タイプを明示的に宣言しないと、クライアントはタイプを自動的に検出しようとする場合がありますが、結果は正確ではない可能性があります。これが、明示的に宣言することが重要な理由です。

メディア タイプ

メディアの種類はさまざまな形で存在します。それらはさまざまなグループに分類されます:

  • アプリケーション
  • オーディオ
  • フォント
  • 画像
  • メッセージ
  • モデル
  • マルチパート
  • テキスト
  • とビデオ

これらのカテゴリにもタイプがあります。例:application/json application以下の型です と text/html text以下の型です .

メディア タイプの完全なリストは、IANA (インターネット上のいくつかの重要な要素を調整する機関) メディア タイプにあります。

これらのタイプはすべて、テキスト、音声、画像、HTML など、インターネット全体で使用されるさまざまなタイプのデータをカバーしています。

ブラウザはリソースのメディア タイプを知る必要があります

上で述べたように、ブラウザーは受信するコンテンツの種類を認識する必要があります。これを説明する例を次に示します。

次のコードは、HTML ファイルを提供する Node サーバーです:

const http = require("http");
const fs = require("fs");
const path = require("path");

const server = http.createServer(function (req, res) {
	const filePath = path.join(__dirname, "index.html");
	var stat = fs.statSync(filePath);

	res.writeHead(200, {
		"Content-Type": "text/css",
		"Content-Length": stat.size,
	});

	const readStream = fs.createReadStream(filePath);
	readStream.pipe(res);
});

server.listen(5000);

console.log("Node.js web server at port 5000 is running..");

コードの詳細について心配する必要はありません。あなたが気にかけているのは index.htm だけです 私たちが提供しているファイルと Content-Type text/css です .

index.html の内容は次のとおりです。 :

<h1>Homepage</h1>

もちろん、HTML ドキュメントは CSS ファイルとは異なります。これが localhost:5000 の結果です サーバーの起動時:

JSON の正しい Content-Type は何ですか?リクエスト ヘッダーの MIME タイプの説明

また、DevTools のネットワーク タブでヘッダーをチェックして、得られた応答を確認することもできます。

Chrome ブラウザーでの結果は次のとおりです。

JSON の正しい Content-Type は何ですか?リクエスト ヘッダーの MIME タイプの説明

ブラウザはコンテンツを CSS タイプとして取得したため、それを CSS として処理しようとしました。

また、ブラウザーが取得したコンテンツの種類を完全に把握することで、ブラウザーはそのデータに適用するセキュリティ基準を認識しているため、セキュリティの脆弱性も軽減されることに注意してください。

MIME タイプの概念とその重要性を理解したところで、JSON に移りましょう。

JSON の正しいコンテンツ タイプ

JSON が適切に使用されるためには、ブラウザーが正しく解釈する必要があります。 text/plain 通常は JSON に使用されますが、IANA によると、JSON の公式の MIME タイプは application/json です。 .

つまり、JSON をサーバーに送信するとき、またはサーバーから JSON を受信するときは、常に Content-Type を宣言する必要があります。 ヘッダーの application/json として これは、クライアントとサーバーが理解する標準であるためです。

結論

上で述べたように、サーバーは (ブラウザと同様に) POST リクエストなどで送信されたデータのタイプを知る必要があります。それが理由です forms 通常、ファイルには enctype が含まれています multipart/form-data の値を持つ属性 .

このようにリクエストをエンコードしないと、POST リクエストは機能しません。また、取得したデータのタイプをサーバーが認識すると、エンコードされたデータを解析する方法も認識されます。

この記事では、MIME タイプとその目的について説明しました。また、JSON の公式のコンテンツ タイプについても調べました。インターネット上で使用するときにリソース タイプを宣言することが重要である理由が理解できたと思います。


  1. Nextcloudサーバーにインストールするのに最適なアプリの5つ

    クラウドにファイルを保存するためのオプションはたくさんあります。 Dropbox、OneDrive、およびGoogleドライブはそれらのほんの一部です。そうは言っても、データをより細かく制御したい場合があります。 Nextcloudを自分のサーバーにインストールし、必要に応じてエンドツーエンドの暗号化を有効にすることもできます。 Nextcloud自体は素晴らしいですが、アプリを追加することでさらに良くなる可能性があります。 Nextcloudアプリは、Nextcloudサーバーにあらゆる種類の機能を追加できます。これらの一部はデフォルトでインストールされて有効になっていますが、他のものは自

  2. 「Ping」とは何ですか?それはインターネットにどのように影響しますか?

    Webを十分に閲覧している場合、またはマルチプレイヤーゲームをプレイするのが好きな場合は、「ping」という用語に出くわした可能性があります。 pingが低いほど、接続が良好であることをすでにご存知かもしれません。しかし、実際には「ping」とは何ですか?コンピューティングの世界ではそれはどういう意味ですか、そしてなぜそれはそのような奇妙な名前を持っているのですか? 名前はどこから来たのですか? 「ping」は実際には頭字語であるという理論がいくつかあり、「Packet Internet orInter-NetworkGroper」の略であると言う人もいます。しかし、それが何かを表すと言って