본문 바로가기
Programming

[Programming] Content-Type과 Accept Header 차이점

by 개발자 염상진 2022. 5. 26.

 

 

 

Content-Type 헤더

 

Content-Type은 HTTP 메시지에 보내는 데이터 형식을 알려주는 헤더다. 거의 모든 HTTP 표준 스펙을 준수하는 브라우저와 서버는 우선적으로 Content-Type 헤더를 확인한다. HTTP에 담긴 데이터를 파싱하고 문자열화 하는 우선적인 기준이 Content-Type이다.

 

만약 서버와 브라우저가 주고 받는 HTTP 메시지에 Content-Type이 존재하지 않는 경우 데이터 형식에 대한 설명이 없기 때문에 단순 텍스트라고 가정하고 데이터를 파싱하는 프로그램을 별도로 작성을 해주어야 한다. 

 

HTTP 메소드 중에서도 GET 메소드의 경우 브라우저에서 특정한 데이터를 HTTP 메시지에 포함하지 않아도 상관없다. URI에 query나 패스 파라미터를 포함하여 요청하면 데이터를 받아오는데 문제가 없기 때문이다. 

 

Content-Type이 중요해지는 시점은 HTTP 메소드 중에서도 POST나 PUT 메소드와 같이 서버에 리소스를 요청하기 위해서 프론트에서 데이터를 태워 보내야 하는 경우다. 예를 들어 브라우저에서 서버에 fetch 요청을 하는 경우 AJAX에서 JSON으로 변경 후 보내야 하기 때문에 header에는 Content-Type을 application/json으로 지정한다.

 

만약 HTML에서 <form> 태그를 통해 첨부파일을 전송하는 경우 브라우저에서 자동으로 Content-Type을 multipart/from-data로 설정해서 요청메시지를 보낼 수 있다.

 

 

 

Accpet 헤더

 

Accept 헤더는 브라우저에서 서버로 요청 하는 경우 Request Message에 담기는 header다. Accept 헤더는 자신에게 지정한 데이터 타입만 허용한다는 것이다. 만약 브라우저가 서버에 Accept 헤더 값을 application/json 이라고 설정하면 서버에 나는 JSON 데이터만 처리할 수 있다고 말하는 것과 같다.

 

브라우저가 자신이 처리할 수 있는 데이터 타입을 명시한다고 하더라도 서버에서 다른 데이터 타입으로 데이터를 전송하는 경우도 있다.  

 

 

 

정리

 

Content-Type. Accept 모두 데이터 타입(MIME)을 명시하는 헤더다. 하지만 Content-Type 헤더는 현재 전송하는 데이터가 어떤 타입인지 명시하게 되고 Accept 헤더는 브라우저가 서버에게 자신이 처리할 수 있는 데이터 타입을 명시한다. 서버에게 웬만하면 데이터 전송할 때 가급적인 명시한 가공해서 보내달라고 요청하는 것이다. 

 

MIME(Mulitipurpose Internet Mail Extension)

이메일에 첨부된 파일을 텍스트 형태로 변환해서 이메일로 전송하기 위한 포맷이다. 최근에는 이메일 뿐만 아니라 웹에서 전달되는 다양한 형태의 파일을 표현하기 위해 사용되고 있다. MIME 타입은 타입/서브타입으로 구분되며 text/plain, text/html/ text/javascript, image/jpeg, video/webm, application/json. application/xml 등이 있다. 

 

 

 

 

 

 

[Web Server] fetch API 사용하는 방법

fetch API 사용하는 방법 fetch는 프론트에서 서버로 리소스를 요청하기 위해서 Javascript에 내장된 Promise 함수다. 기본적으로 비동기 태생을 지닌 녀석이기 때문에 Javascript가 아닌 Node.js나 웹 브라우

about-tech.tistory.com

 

 

[Node.js] Express 미들웨어 함수

미들웨어(Middleware) 함수 Express는 자체적인 최소한의 기능을 가진 라우팅 및 미들웨어 웹 프레임워크다. Express 애플리케이션은 일련의 미들웨어 함수를 호출한다. 미들웨어 함수란 요청 오브젝트

about-tech.tistory.com

 

 

[Algorithm] 동적 계획법 타일링 알고리즘 문제 Javascript

동적 계획법(Dynamic Programming) 동적 계획법은 어떤 문제를 해결하기 위해 그 문제를 더 작은 문제의 연장선으로 생각한다. 가장 하위의 케이스의 해를 구하고 큰 문제의 해를 구해나가는 Bottom-up

about-tech.tistory.com

 

댓글