일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래밍언어
- 빅데이터
- 딥러닝
- 네트워크
- 클라우드컴퓨팅
- Yes
- 데이터과학
- 소프트웨어공학
- 자바스크립트
- 인공지능
- 코딩
- 자료구조
- 머신러닝
- 웹개발
- 사이버보안
- I'm Sorry
- 컴퓨터과학
- 네트워크보안
- 데이터구조
- 보안
- 데이터분석
- 프로그래밍
- 2
- 버전관리
- 소프트웨어
- 파이썬
- 알고리즘
- 컴퓨터공학
- 컴퓨터비전
- 데이터베이스
- Today
- Total
스택큐힙리스트
어떤 JSON 콘텐츠 유형을 사용하나요? 본문
JSON 콘텐츠 유형에는 많은 "표준"이 있습니다:
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
어떤 것을 어디에 사용해야 하나요? 보안 및 브라우저 지원 문제가 중요한 요소라고 생각합니다.
JSON 콘텐츠 유형: API에 적합한 유형 선택하기
JSON(JavaScript Object Notation)은 웹 개발에서 클라이언트와 서버 간에 데이터를 전송하는 데 널리 사용되는 데이터 형식입니다. 하지만 JSON 데이터를 전송할 때는 "application/json" 및 "application/vnd.api+json" 등 여러 가지 콘텐츠 유형 중에서 선택할 수 있습니다. 그렇다면 어떤 것을 사용해야 할까요?
"application/json"
"application/json" 콘텐츠 유형은 웹을 통해 JSON 데이터를 전송하기 위한 표준입니다. 요청 또는 응답의 페이로드에 JSON 데이터가 포함되어 있음을 나타내는 데 사용됩니다. 이 콘텐츠 유형은 대부분의 웹 브라우저와 서버에서 지원되므로 대부분의 JSON API 구현에 안전한 선택입니다.
다음은 "application/json" 콘텐츠 유형을 사용하는 응답 헤더의 예입니다:
http/1.1 200 ok
콘텐츠 유형: application/json
{
"name": "John Doe",
"email": "johndoe@example.com",
"age": 30
}
"application/vnd.api+json"
"application/vnd.api+json" 콘텐츠 유형은 JSON API 구현에 사용되는 "application/json" 콘텐츠 유형의 특정 변형입니다. JSON API는 JSON을 데이터 형식으로 사용하는 API를 구축하기 위한 사양이며, "application/vnd.api+json" 콘텐츠 유형은 요청 또는 응답이 이 사양을 준수한다는 것을 나타내는 데 사용됩니다.
다음은 "application/vnd.api+json" 콘텐츠 유형을 사용하는 응답 헤더의 예시입니다:
http/1.1 200 ok
콘텐츠 유형: application/vnd.api+json
{
"data": {
"type": "person",
"id": "123",
"attributes": {
"name": "John Doe",
"email": "johndoe@example.com",
"age": 30
}
}
}
어떤 것을 사용해야 하나요?
일반적으로 JSON API 사양을 따르는 JSON API를 구축하는 경우 "application/vnd.api+json" 콘텐츠 유형을 사용해야 합니다. 그러나 보다 일반적인 JSON 기반 API를 구축하는 경우에는 "application/json" 콘텐츠 유형이 가장 일반적이고 널리 지원되는 옵션입니다.
궁극적으로 선택하는 콘텐츠 유형은 특정 사용 사례와 요구 사항에 따라 달라집니다. 어떤 유형을 사용해야 할지 잘 모르겠다면 API 프레임워크에 대한 설명서를 참조하거나 커뮤니티의 다른 개발자에게 문의하여 안내를 받으세요.
JSON 텍스트의 경우:
application/json
JSON 텍스트의 MIME 미디어 유형은 application/json입니다. 기본 인코딩은 UTF-8입니다. (출처: RFC 4627)
콜백이 있는 JSONP(실행 가능한 JavaScript)의 경우:
application/javascript
물론 JSON의 올바른 MIME 미디어 유형은 application/json이지만, 애플리케이션에서 어떤 유형의 데이터가 예상되는지 파악해야 합니다.
예를 들어, 저는 Ext GWT를 사용하는데 서버 응답은 텍스트/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를 사용한 서버 측 소스 코드 스니펫
반환 새로운 AbstractUrlBasedView()
{
@SuppressWarnings("unchecked")
오버라이드
protected void renderMergedOutputModel(Map model, HttpServletRequest request,
HttpServletResponse response) throws Exception
{
response.setContentType("text/html");
response.getWriter().write(json);
}
};