programing

어떤 JSON 콘텐츠유형을 사용할까요?

madecode 2023. 3. 22. 23:14
반응형

어떤 JSON 콘텐츠유형을 사용할까요?

JSON 콘텐츠유형에는 많은 '표준'이 있습니다.

application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json

어떤 것을 어디에 사용합니까?보안 및 브라우저 지원 문제가 한 요인이라고 생각합니다.

관련:REST API에 의해 JSON이 반환되는 경우 MIME 유형은 무엇입니까?

JSON 텍스트의 경우:

application/json

은, JSON 「MIME」입니다.application/json기본 인코딩은 UTF-8 입니다.

콜백을 사용하는 JSONP(실행 가능한 JavaScript)의 경우:

application/javascript

다음은 관련 코멘트에서 언급된 블로그 게시물입니다.

IANA는 JSON의 공식 MIME Type을 로 등록했습니다.

안 되느냐고 때text/json가 Crockford JSON을 가 더 application/*text/*.

기타 자원:

JSON의 경우:

Content-Type: application/json

JSON-P의 경우:

Content-Type: application/javascript

은 "JSON" "MIME" 입니다.application/json단, 어플리케이션에 필요한 데이터 타입을 파악해야 합니다.

예를 들어 Ext GWT를 사용하는 경우 서버 응답은 text/html로 해야 하지만 JSON 데이터가 포함되어 있습니다.

클라이언트 측, Ext GWT 형식 리스너

uploadForm.getForm().addListener(new FormListenerAdapter()
{
    @Override
    public void onActionFailed(Form form, int httpStatus, String responseText) 
    {
        MessageBox.alert("Error");
    }

    @Override
    public void onActionComplete(Form form, int httpStatus, String responseText) 
    {
        MessageBox.alert("Success");
    }
});

응용 프로그램/json 응답 유형을 사용하는 경우 브라우저는 파일을 저장하라고 제안합니다.

Spring MVC를 사용한 서버 측 소스 코드 조각

return new AbstractUrlBasedView() 
{
    @SuppressWarnings("unchecked")
    @Override
    protected void renderMergedOutputModel(Map model, HttpServletRequest request,
                                           HttpServletResponse response) throws Exception 
    {
        response.setContentType("text/html");
        response.getWriter().write(json);
    }
};

JSON:

응답은 URL에 전달된 쿼리 파라미터에 따라 동적으로 생성된 데이터입니다.

예:

{ "Name": "Foo", "Id": 1234, "Rank": 7 }

콘텐츠 유형: application/json


JSON-P:

패딩이 있는 JSON.응답은 함수 호출을 둘러싼 JSON 데이터입니다.

예:

functionCall({"Name": "Foo", "Id": 1234, "Rank": 7});

콘텐츠 유형: application/javascript

Ubuntu 또는 Debian을 사용하고 있으며 Apache를 통해 .json 파일을 제공하는 경우 올바른 콘텐츠 유형으로 파일을 제공할 수 있습니다.주로 Firefox 확장자 JSONView를 사용하고 싶기 때문에 이 작업을 하고 있습니다.

Apache 모듈 mod_mime을 사용하면 쉽게 이 작업을 수행할 수 있습니다.단, Ubuntu에서는 /etc/mime.types 파일을 편집하고 행을 추가해야 합니다.

application/json json

그런 다음 Apache를 다시 시작합니다.

sudo service apache2 restart

ASP の asp asp asp 。 .application/json효과가 있습니다.이것은 jQuery와 Ext 프레임워크에서도 마찬가지라고 생각합니다.

은 JSON 입니다.application/jsonJSONP(JSON with Padding이라고도 함)를 사용하지 않는 한 실제로는 JavaScript이므로 올바른 콘텐츠 유형은 다음과 같습니다.application/javascript.

할 여지가 없다application/json는, JSON 응답에 최적인 MIME 타입입니다.

하지만 나는 내가 그것을 사용해야만 했던 경험이 있다.application/x-javascript몇 가지 압축 문제가 있습니다.저의 호스팅 환경은 GoDaddy와의 공유 호스팅입니다.서버 설정을 변경할 수 없습니다.다음 코드를 추가했습니다.web.config응답 압축용 파일입니다.

<httpCompression>
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
    <dynamicTypes>
        <add mimeType="text/*" enabled="true"/>
        <add mimeType="message/*" enabled="true"/>
        <add mimeType="application/javascript" enabled="true"/>
        <add mimeType="*/*" enabled="false"/>
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true"/>
        <add mimeType="message/*" enabled="true"/>
        <add mimeType="application/javascript" enabled="true"/>
        <add mimeType="*/*" enabled="false"/>
    </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>

이를 사용하여 .aspx 페이지를 g-zip으로 압축했지만 JSON 응답은 압축되지 않았습니다.나는 덧붙였다.

<add mimeType="application/json" enabled="true"/>

static 및 dynamic type 섹션으로 이동합니다.그러나 이것은 JSON 응답을 전혀 압축하지 않습니다.

그 후 새로 추가된 이 유형을 제거하고

<add mimeType="application/x-javascript" enabled="true"/>

[ Static ]섹션과 [Dynamic Type]섹션 모두에서 응답 유형을 변경했습니다.

.ashx(연속 핸들러) ~

application/x-javascript

JSON 응답은 g-zip으로 압축되어 있었습니다.그래서 개인적으로 추천하는 건

application/x-javascript

공유 호스팅 환경에서 JSON 응답을 압축하려는 경우에만 해당됩니다.공유 호스팅에서는 IIS 구성을 변경할 수 없기 때문입니다.

「 」를 사용하고 application/jsonMIME 유형으로 다음과 같은 기능이 있습니다(2011년 11월 현재 Chrome, Firebug 포함 Firefox 최신 버전).

  • 서버에서 JSON이 로드되면 Chrome에서 경고가 더 이상 표시되지 않습니다.
  • Firebug는 응답에 JSON 데이터 형식을 나타내는 탭을 추가합니다.MIME 유형이 다를 경우 '응답 내용'으로 표시됩니다.

이 콘텐츠 타입으로 하는 것은 아니다.application/json.

파일을 업로드하기 위해 Ext JS 양식 제출을 사용하는 경우 브라우저에 의해 서버 응답이 구문 분석되어 다음 문서를 작성합니다.<iframe>.

가 반환 오브젝트를 JSON을 사용하고 있는 는, 「JSON」이.Content-Type는 header로 .text/html브라우저에 변경되지 않은 텍스트를 문서 본문에 삽입하도록 지시합니다.

Ext JS 3.4.0 API 문서를 참조하십시오.

JSON은 JavaScript에 의존하지 않는 도메인 고유 언어(DSL) 및 데이터 형식이며 자체 MIME 유형이 있습니다.application/json 존중은 주도로 때문에 MIME은 클라이언트 주도로 text/plain 바이트 수 .application/json을 XML로 text/plain

에 대한 입니다.MIME 타입은 MIME 해석 방법에 관한 것입니다.text/plain ★★★★★★★★★★★★★★★★★」text/HTMLHTML이 는 타입 삭제와 오브젝트를 타입 과 같은 이 없습니다HTML html html html html 、 [ HTML ]타입 오브젝트의 모든 오브젝트를 타입 언어로 만드는 것과 같은 정보를 얻을 수 없습니다.

JSON 문서를 사용하는 브라우저 런타임은 없으며, JSON 문서를 자동으로 JavaScript 접근 가능한 개체로 사용할 수 있습니다. 그러나 장애가 발생한 클라이언트와 작업하는 경우에는 완전히 다른 문제입니다.그러나 이것이 전부가 아닙니다.RESTful JSON 서비스에는 JavaScript 실행 시간이 없는 경우가 많지만 실행 가능한 데이터 교환 형식으로 JSON을 사용하는 것은 중단되지 않습니다.고객들이 그렇게 불구가 된다면...그 대신 Ajax 템플릿 서비스를 통한 HTML 주입을 고려하겠습니다.

응용 프로그램/J아들!

클라이언트 환경의 경우 잘 지원되는 웹 응용 프로그램의 경우 크로스 브라우저 지원에 대한 조사가 필수적입니다.

은 "HTTP Content-Type"입니다.application/json이미 표시되어 는 이를 잘 하지 못하기 "Default"를 text/html.

정답은 다음과 같습니다.

Content-Type: application/json

다른 많은 사람들이 언급했듯이application/json답입니니다다

하지만 아직 설명되지 않은 것은 당신이 제안한 다른 옵션들이 무엇을 의미하는지입니다.

  • application/x-javascript: 인 MIME "JavaScript" "MIME"application/javascript표준이 되었습니다.

  • text/javascript 되지 않게 되었습니다.: 이치노 하면 됩니다.application/javascriptjavascriptjavascript를 .

  • text/x-javascript: 「MIME」입니다.

  • text/x-json인 MIME 이전 : JSON의 MIME 유형application/json이치노

일반적으로 콘텐츠 유형에 대해 의문이 있을 때마다 이 링크를 체크해야 합니다.

JSP 에서는, 페이지 디렉티브로 다음의 것을 사용할 수 있습니다.

<%@ page language="java" contentType="application/json; charset=UTF-8"
    pageEncoding="UTF-8"%>

JSON의 올바른 MIME 미디어 유형은 다음과 같습니다.application/jsonJSP에 의한 것입니다.

application/json 올바른 JSON 입니다." JSON 콘텐츠 유형입니다.

def ajaxFindSystems = {
  def result = Systems.list()
  render(contentType:'application/json') {
    results {
      result.each{sys->
        system(id:sys.id, name:sys.name)
      }
    }
    resultset (rows:result.size())
  }
}

의 IANA 등록은 다음과 같습니다.

다음 미디어 유형을 사용하는 응용 프로그램: JSON은 다음과 같은 모든 프로그래밍 언어로 작성된 응용 프로그램 간에 데이터를 교환하는 데 사용됩니다.ActionScript, C, C#, Clojure, ColdFusion, Common Lisp, E, Erlang, Go, Java, JavaScript, Lua, Objective CAML, Perl, PHP, Python, Rebol, Ruby, Scala 및 Scheme.

IANA.org에는 다른 미디어 타입은 일절 기재되어 있지 않습니다.application/javascript이제 사용되지 않게 되었습니다. ★★★★★★★★★★★★★★★★★.application/json유일한 정답입니다.

브라우저 지원도 마찬가지입니다.

은 '비표준 미디어 유형'입니다.text/json ★★★★★★★★★★★★★★★★★」text/javascript하지만 몇몇 거물들은 심지어text/plain

은 Flickr에 을 "Flickr"로 합니다.플리커 JSON이 되다text/xml. 은 . 은 .를 사용한다text/javascript아약스 아피스의 약이죠

예:

curl -I "https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q=jsonexample"

★★★★★Content-Type: text/javascript

curl -I "https://www.flickr.com/services/rest/?method=flickr.test.echo&format=json&api_key=f82254c1491d894f1204d8408f645a93"

★★★★★Content-Type: text/xml

올바른 MIME 유형은 다음과 같습니다.

그렇지만

브라우저 유형 또는 프레임워크 사용자가 필요로 하는 많은 상황을 경험했습니다.

text/html

application/javascript

아래를 사용하고 있습니다.

contentType: 'application/json',
data: JSON.stringify(SendData),

게시할 때 Content-Type 헤더는 'application/json'으로 설정해야 합니다.요청을 수신하는 서버에는 "Accept=application/json"이 포함되어야 합니다.Spring MVC에서는 다음과 같이 할 수 있습니다.

@RequestMapping(value="location", method = RequestMethod.POST, headers = "Accept=application/json")

응답에 머리글 추가:

HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
  • Content-Type: application/json(JSON))
  • Content-Type: application/javascript(JSON-P).
  • Content-Type: application/x-javascript - JavaScript
  • Content-Type: text/javascript- JavaScript는 사용되지 않습니다.이전 버전의 Internet Explorer에서는 HTML 속성에 사용되었습니다.
  • Content-Type: text/x-javascript- JavaScript Media Type(JavaScript 미디어 유형)은 사용되지 않습니다.
  • Content-Type: text/x-json- 어플리케이션/json 정식 등록 전 JSON.

application/json는 어레이 또는 객체 데이터를 저장하는 데 PHP에서 매우 적합합니다.

코드를 사용하여 공개적으로 볼 수 있도록 설정된 Google 클라우드 스토리지(GCS)의 JSON에 데이터를 저장합니다.

$context = stream_context_create([
    'gs' => [
        'acl'=>'public-read', 
        'Content-Type' => 'application/json',
    ]
]);

file_put_contents(
    "gs://BUCKETNAME/FILENAME.json", 
    json_encode((object) $array), 
    false, 
    $context
);

데이터를 바로 복구하려면:

$data = json_decode(file_get_contents("gs://BUCKETNAME/FILENAME.json"));

에는 정의된 유형이 있습니다.MediaType.APPLICATION_JSON_VALUE어플리케이션/json에 해당합니다.

JSON에서는 다음을 사용하고 있습니다.

Content-Type: application/json

이는 IETF의 JSON 데이터 교환 형식 7158 제안서 섹션 1.2: JSON 사양에 설명되어 있습니다.

JSON이 .application/jsonp는, 「JSON」이 application/json.

패딩이 있든 없든 상관없이 '어플리케이션/자바스크립트'를 사용하는 것이 좋습니다.

REST 컨텍스트에서 JSON을 사용하는 경우 승인된 응답을 확장합니다.

를 사용하는 것에 대해서는 강한 주장이 있다.application/x-resource+json ★★★★★★★★★★★★★★★★★」application/x-collection+jsonREST 소 、 REST 、 REST 、 REST 。

또한 jsonapi 사양을 따르기로 결정한 경우 다음을 사용해야 합니다.application/vnd.api+json를 참조해 주세요.

보편적 표준이 존재하지 않더라도 이전되는 자원에 추가된 의미론은 단순한 내용 유형보다 더 명시적인 내용 유형을 정당화하는 것이 분명합니다.application/json.

이 추론에 따라 다른 맥락이 보다 구체적인 내용 유형을 정당화할 수 있습니다.

JSON의 REST API에서 데이터를 가져오는 경우 Content-Type을 사용해야 합니다.

  • JSON 데이터의 경우: Content-Type: 응용 프로그램/json
  • HTML 데이터의 경우: Content-Type: text/html,
  • XHTML 데이터의 경우: Content-Type: application/xhtml+xml,
  • XML 데이터의 경우: Content-Type: text/xml, application/xml

PHP 개발자는 다음을 사용합니다.

<?php
    header("Content-type: application/json");

    // Do something here...
?>

JSON(JavaScript Object Notation)과 JSONP("JSON with padding") 형식은 매우 비슷해 보이기 때문에 사용하는 MIME 유형이 매우 혼란스러울 수 있습니다.형식은 비슷하지만, 그 사이에는 미묘한 차이가 있습니다.

그래서 의심이 들 때는 항상 매우 간단한 접근법(대부분의 경우 완벽하게 동작합니다), 즉 대응하는 RFC 문서를 체크합니다.

JSON RFC 4627(Application/json Media Type for JavaScript Object Notation(JSON))은 JSON 형식의 사양입니다.섹션 6에 JSON 텍스트의 MIME 미디어 유형은 다음과 같습니다.

application/json.

JSONP JSONP('패딩이 있는 JSON')는 브라우저에서 JSON과 다른 방식으로 처리됩니다.JSONP는 일반 JavaScript 스크립트로 취급되기 때문에 JSONP는application/javascript,JavaScript MIME. 「 」는 「 」입니다.text/javascriptMIME을 사용합니다.

:text/javascript는 RFC 4329(스크립팅 미디어 유형) 문서에 의해 폐지된 것으로 표시되어 있으므로 를 사용할 것을 권장합니다.application/javascript대신 입력합니다.이유로 , 「」, 「」, 「」가 있습니다.text/javascript는 지금도 도 있습니다(, 반드시 지원인 ).application/javascriptMIME (MIME)

언급URL : https://stackoverflow.com/questions/477816/which-json-content-type-do-i-use

반응형