Content-Type
5368 ワード
RestAPIは、通常、JSONタイプの要求であり、要求を受信する.したがってcontent-typeは当然アプリケーション/jsonタイプだと思っている人が多いが、資料を検索するとそうではないことが分かった.
htmlフォームタグを使用してPOSTまたはjQueryのajaxなどのリクエストを要求する場合、デフォルトのコンテンツタイプは「アプリケーション/json」ではなく「アプリケーション/x-www-form-urlcoded」です.
リクエストをクライアントからserverに次のコードで送信してみます.
コンテンツ-タイプは、クライアントからサーバに送信されるデータのフォーマットを決定します. application/x-www-form-urlencoded : x-www-form-urlcodedの場合、以下に示すようにkey 1=value 1&key 2=value 2の形式で要求されます. application/json : jsonの場合、次のように要求がjson形式で送信されることがわかります.
headers: { accept: 'application/json' }
この2つの方法で使えるので、具体的な違いが気になります.
Content-TypeヘッダとAcceptヘッダは、いずれもデータ型(MIME)を扱うヘッダであるが、Content-Typeヘッダは、現在伝送されているデータがどのようなタイプであるかを示しており、Acceptヘッダは、クライアントがサーバにデータを送信する際に、このようなタイプの送信にデータを加工することを要求していると理解できる.
ソース
htmlフォームタグを使用してPOSTまたはjQueryのajaxなどのリクエストを要求する場合、デフォルトのコンテンツタイプは「アプリケーション/json」ではなく「アプリケーション/x-www-form-urlcoded」です.
リクエストをクライアントからserverに次のコードで送信してみます.
コンテンツ-タイプは、クライアントからサーバに送信されるデータのフォーマットを決定します.
const data = {
"name": "kim",
"age": 29
}
axios({
method: 'post',
url: 'https://localhost:8080',
headers: {
'Content-Type': ....
},
data: data
}).then((res) => {
// handle success
}).catch((err) => {
// handle error
}).then(() => {
// always
})
POST / HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
name=kim&age=29
POST / HTTP/1.1
Host: localhost
Content-Type: application/json
{
"name":"kim",
"age":"29"
}
headers: { ‘content-Type': 'application/json' }headers: { accept: 'application/json' }
この2つの方法で使えるので、具体的な違いが気になります.
二つの違いは?
Content-TypeヘッダとAcceptヘッダは、いずれもデータ型(MIME)を扱うヘッダであるが、Content-Typeヘッダは、現在伝送されているデータがどのようなタイプであるかを示しており、Acceptヘッダは、クライアントがサーバにデータを送信する際に、このようなタイプの送信にデータを加工することを要求していると理解できる.
ソース
Reference
この問題について(Content-Type), 我々は、より多くの情報をここで見つけました https://velog.io/@pingu-/Content-Typeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol