김컴공랩

[HTTP] MIME (다목적 인터넷 메일 확장) 에 관하여 본문

HTTP 이론

[HTTP] MIME (다목적 인터넷 메일 확장) 에 관하여

김컴공 2021. 1. 18. 19:08

* "HTTP 완벽가이드" 를 읽고 정리한 내용을 바탕으로 서술한 포스팅입니다.

 

미디어타입

 HTTP 통신에서는 수 많은 데이터 타입을 다루는데, 이를 구분하기 위해서 HTTP는 통신 시 전송되는 객체 각각에 MIME 타입이라는 데이터 포맷 라벨을 붙임 -> MIME

 

MIME(Multipurpose Internet Mail Extensions)

 우리말로 "다목적 인터넷 메일 확장"으로, 원래는 각기 다른 메일 시스템 사이 호환성 문제를 해결하기 위해 설계됐는데, 이를 HTTP 에서도 멀티미디어 컨텐츠가 어떤 것인지 기술하기 위해 채택함. 예를 들어 HTML 문서를 전송할 때는 "text/html" 라벨이, JPEG 이미지를 전송할 때는 "image/jpeg" 가 붙는다. 

 

HTTP 에서 MIME 미디어 타입은 Content-Type 헤더에서 사용된다.

 

 웹 프로젝트를 개발할 때, json 데이터를 프론트 단에서 전송하는데 인식하지 못하는 문제가 있었는데,

@RequestMapping(value="/delname",method= RequestMethod.POST, produces = "application/json; charset=utf8")
    public @ResponseBody String del(@RequestBody Map<String, Object> market) {
        mRepo.delete(mRepo.findByName(market.get("name").toString()));
        return market.get("name").toString();
    }

 

위 코드와 같이, HTTP 요청을 받는 컨트롤러에 "application/json" 를 처리한다고 선언함으로써 json 데이터가 처리되어 문제가 해결된 경험이 생각났다.

 

위 사례 외에도 아주 많은 MIME 타입이 존재한다. MIME 을 등록하기 위해서는 "RFC 2048" 에 있는 등록 절차를 참고해 IANA 에 등록해야한다. 커뮤니티에서 새로운 타입을 보고 특별한 문제는 없는지 정도만 검토하고 등록소에 등록하는 절차를 거치므로 너무 지연되지는 않는 듯하다.

 

MIME 의 종류를 살펴보려면 IANA 홈페이지 (www.iana.org/assignments/media-types/media-types.xhtml) 를 참고하면 된다.