본문 바로가기
웹 관련 기본 지식

Contents-Type Header 와 Accept Header의 차이점

by 웹하는빡통 2019. 11. 5.

Content-Type: HTTP 메시지(요청과 응답 모두)에 담겨 보내는 데이터의 형식을 알려주는 헤더이다. HTTP 표준 스펙을 따르는 브라우저와 웹서버는 Content-Type 헤더를 기준으로 HTTP 메시지에 담긴 데이터를 분석과 파싱을한다.
 
만약 Content-Type헤더가 없다면 데이터를 전송하는쪽(브라우저나 웹서버)에서는 특정한 형식의 데이터일지라도 데이터를 받는 입장에서는 단순히 텍스트 데이터로 받아들인다. 
 
중요한점은 HTTP 요청의 경우 GET방식인 경우에는 무조건 URL 끝에 쿼리스트링으로 value=text 형식으로 보내지기 때문에 Content-Type은 필요가 없다. 
즉 GET방식으로 데이터를 전송 시 웹서버 입장에서는 value=text 형식 데이터라는 것을 알 수 있기 때문이다 .
 
따라서 Content-Type은 POST나 PUT처럼 메시지 BODY에 데이터를 보낼때 필요로 한다.  
예를 들어 브라우저를 기준으로 설명하자면 AJAX를 통해 json 형식의 데이터를 전송하는 경우 Content-Type 값을 application/json 으로 지정하여 보낸다. 

<form>태그를 통해 첨부파일 등을 전송하는 경우라면 브라우저가 자동으로 Content-Type을 multipart/form-data로 설정하여 요청 메시지를 보낸다.
 

※ : JSON(JavaScript Object Notation)이란 ?

     자바스크립트 언어에서 객체를 표현하는 표기이다.

 

Accept 헤더
Accept 헤더의 경우에는 브라우저(클라이언트) 에서 웹서버로 요청시 요청메시지에 담기는 헤더이다. 이 Accept헤더는 쉽게 말해 자신에게 이러한 데이터 타입만 허용하겠다는 뜻입니다. 즉 브라우저가 요청 메시지의 Accept 헤더 값을 application/json이라고 설정했다면 클라이언트는 웹서버에게 json 데이터만 처리할 수 있으니 json 데이터 형식으로 응답을 돌려줘 라고 말하는것과 같다. 
 
차이점

Content-Type 헤더와 Accept 헤더 둘 다 데이터 타입(MIME)을 다루는 헤더이다. 하지만  Content-Type 헤더는 현재 전송하는 데이터가 어떤 타입인지에 대한 설명을 하는 개념이고  Accept 헤더는 클라이언트가 서버에게 어떤 특정한 데이터 타입을 보낼때  클라이언트가 보낸 특정 데이터 타입으로만 응답을 해야한다.
.

'웹 관련 기본 지식' 카테고리의 다른 글

웹 방화벽 우회기법  (2) 2019.12.24
웹 방화벽의 개념과 원리  (1) 2019.12.24
리다이렉트란(Redirect)  (3) 2019.11.04
GET/POST 방식  (1) 2019.10.28

댓글