CS 공부

HTTP 헤더 종류

NiceKHJ 2025. 6. 4. 15:41

HTTP 헤더란 ?

HTTP 헤더는 클라이언트와 서버가 요청이나 응답시에 추가적인 정보를 주고 받는 부분이다.

요청 방식(GET, POST) 외에도 데이터 형식, 인증 정보, 응답 형식 등 부가 정보가 여기에 포함된다.

 

 

자주 사용하는 HTTP 헤더 종류

 

1. Content-Type

  • 클라이언트가 서버에게 보낸 데이터를 예시로 보여주는 헤더

 예시 : 

  • application/json -> JSON 형식 ( 가장 많이 쓴다. )
  • multipart/form-data -> 파일 업로드
  • application/x-www-form-urlencoded -> 폼 데이터
  • 프론트 코드 예시
axios.post('/api/user',
{name : 'NiceKHJ' , email : 'NiceKHJ@tistory.com'},
{
	headers: {
    	'Content-Type' : 'application/json'
    }
}
);

 

 

2. Authorization

인증 정보를 담아 보내는 헤더로 ** JWT(토큰 기반 인증) **에서 가장 자주 사용된다.

  • 프론트 코드 예시
const token = localStorage.getItem('accessToken');

axios.get('/mypage',{
  headers: {
    Authorization : `Bearer ${token}`
  }
});

 

 

3. Accept

클라이언트가 서버에게 받고 싶은 응답의 데이터 형식을 알려주는 헤더

 

예시 :

  • application/json -> JSON 형식으로 응답 받고 싶을 때
  • text/html -> HTML 페이지 형식으로 응답 받고 싶을 때
  • 프론트 코드 예시
axios.get('/products',{
  headers : {
   Accept : 'application/json'
  }
});

 

 

4. Cookie

로그인 상태 유지나 사용자 정보 저장을 위해 클라이언트와 서버가 주고받는 정보를 쿠키에 담아 전송한다.

서버에서 Set-Cookie를 보내면 브라우저가 쿠키를 저장하고 이후 요청마다 자동으로 Cookie 헤더를 붙여서 서버에 전송한다,

 

withCredentials가 필요한 경우

기본적으로 브라우저는 다른 도메인으로 요청할 때 쿠키를 자동으로 보내지 않는다.

이때 withCredentials : true 를 설정해야 쿠키가 함께 전송된다.

상황 설명 설정 필요 여부
같은 도메인 or 프록시 개발환경 프론트와 백엔드가 같은 출처로 인식 ❎  필요 없음
프론트와 백엔드 도메인이 다를 경우 Vercel + EC2, Netlify + Render 등 ✅ withCredentials: true
  • 프론트 코드 예시
axios.get('/mypage',{
  withCredentials:true // 다른 도메인에 쿠키 전송 허용
});

 

백엔드도 이때 꼭 Access-Control-Allow-Credentials : true 를 설정 해야 한다.

'CS 공부' 카테고리의 다른 글

프로세스와 스레드  (0) 2025.06.16
CORS 란 ?  (0) 2025.06.09
TCP와 UDP 개념 및 차이점 , 예시  (0) 2025.06.02
DNS, IP, 포트, TCP, 3-Way Handshake까지 네트워크 흐름 정리  (1) 2025.05.29
쿠키와 세션의 차이  (0) 2025.05.27