Content-Disposition
Content-Disposition 설명
Content-Disposition은 HTTP 응답 헤더 중 하나로, 서버가 클라이언트(주로 웹 브라우저)에게 전송하는 콘텐츠를 어떻게 처리할지 지시하는 역할을 합니다. 주로 파일 다운로드, 인라인 표시, 멀티파트 폼 데이터 처리 등에서 사용됩니다12345.
주요 용도 및 형식
1. 인라인 표시(기본값)
2. 첨부파일 다운로드
Content-Disposition: attachment
- 브라우저가 콘텐츠를 다운로드하도록 유도합니다.
- 파일명을 명시할 수 있습니다.
Content-Disposition: attachment; filename="example.pdf"
3. 멀티파트 폼 데이터
- 파일 업로드/폼 전송 등에서 각 파트의 이름과 파일명을 지정할 때 사용합니다.
Content-Disposition: form-data; name="field1"
Content-Disposition: form-data; name="file"; filename="example.txt"
파일명 인코딩
- 파일명에 한글 등 비ASCII 문자가 포함된 경우, 다음과 같이 인코딩하여 전달할 수 있습니다.
Content-Disposition: attachment; filename*=UTF-8''%ED%95%9C%EA%B8%80.pdf
filename*
파라미터와 URL 인코딩을 활용합니다4.
실제 사용 예시
- 서버에서 파일 다운로드 응답을 보낼 때:
Content-Disposition: attachment; filename="report.xlsx"
→ 브라우저는 파일을 자동으로 다운로드하고, 파일명을 report.xlsx
로 지정합니다.
- 멀티파트 업로드 시:
Content-Disposition: form-data; name="upload"; filename="image.png"
→ 업로드된 파일의 이름과 필드명을 지정합니다.
참고
- Content-Disposition은 RFC 6266, RFC 2183 등에서 정의되어 있습니다.
- Spring 등 주요 프레임워크는 Content-Disposition 헤더를 쉽게 생성·관리할 수 있는 클래스를 제공합니다67.
요약: Content-Disposition 헤더는 서버가 전송하는 콘텐츠를 브라우저가 어떻게 처리할지(화면 표시, 다운로드 등) 결정하는 중요한 HTTP 헤더입니다. 첨부파일 다운로드, 인라인 표시, 멀티파트 데이터 처리 등 다양한 상황에서 활용됩니다123456.
-
https://velog.io/@riley_dev/Content-Disposition-%ED%97%A4%EB%8D%94 ↩︎ ↩︎ ↩︎ ↩︎
-
https://markettraders.kr/content-disposition/ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
https://seongil-shin.github.io/posts/web-Content-Disposition/ ↩︎ ↩︎ ↩︎ ↩︎
-
https://learn.microsoft.com/ko-kr/dotnet/api/system.net.http.headers.contentdispositionheadervalue?view=net-8.0 ↩︎