[Web] Content-Type과 Content-Disposition

2016. 6. 24. 21:02WEB

브라우저가 Content를 처리하는 방법은 Content-Type과 Content-Disposition 속성을 조합 함으로써 결정됩니다.

Content-Type: 전송되는 Content가 어떤 유형인지 알려주는 목적을 가지고 있습니다. text/html, image/png, application/octet-stream 등의 값을 가집니다. Content-Type을 통해서 브라우저는 해당 데이터를 어떻게 처리해야 할 지 판단할 수 있게 됩니다.

  • Content-Type: image/png:  브라우저는 해당 컨텐트를 이미지로써 간주하게 됩니다.
  • Content-Type: application/octet-stream: 미확인 Binary 정보를 의미하며, 이 경우 브라우저는 파일을 다운로드하는 형태로 동작합니다.
  • Content-Type: text/javascript: 브라우저는 Content를 Javascript문서로 취급하게 됩니다.

Content-Disposition: Content가 어떻게 처리되어야 하는지 나타냅니다.

  • Content-Disposition: inline: 브라우저가 Content를 즉시 출력해야 함을 나타냅니다. 이미지면 브라우저 내에서 즉시 출력하며, 문서면 텍스트로 출력합니다.
  • Content-Disposition: attachment: 브라우저는 해당 Content를 처리하지 않고, 다운로드하게 됩니다.

워드문서가 다운로드 되지 않거나 자바스크립트가 실행되지 않고 다운로드 되는 등의 부작용이 발생한다면, 피들러를 통해 위 두 가지 속성을 확인하고 수정함으로써 해결하실 수 있습니다.

예를 들어 비디오를 재생하지 않고 무조건 다운로드게 하고 싶다면 다음과 같이 설정함으로써 해결하실 수 있습니다.

Content-Type: application/octet-stream
Content-Disposition: attachment; filename="MyVideo.mp4"

그리고 아래와 같이 엑셀문서를 전송하면, 해당 문서는 다운로드 되지 않으며 브라우저에서 깨진 텍스트로 출력됩니다.

Content-Type: text/plain
Content-Disposition: inline; filename="BankAccount.xlsx"

Content-Disposition과 Content-Type은 HTTP 표준이지만 일부 구형 브라우저에서는 다르게 동작할 수 도 있음을 주의해주세요.