본문 바로가기
Backend 🧦

HTTP X- 헤더

by 서니서닝 2024. 8. 19.
728x90

HTTP 헤더의 개념

HTTP 헤더는 메시지의 시작 부분에 위치한 키-값 쌍으로 이루어진 메타데이터이다.

이 헤더들은 클라이언트가 서버에 요청을 보낼 때, 혹은 서버가 클라이언트에게 응답을 보낼 때 함께 전송된다.

HTTP 헤더는 통신의 주요 요소를 정의하고, 요청이나 응답의 특성을 설명한다.

 

예를 들어, User-Agent 헤더는 클라이언트의 브라우저나 애플리케이션의 정보를 서버에 전달한다.

Content-Type 헤더는 클라이언트가 서버로부터 받아들일 데이터의 형식을 지정하며, Authorization 헤더는 인증에 필요한 정보를 전달한다.

 

커스텀 HTTP x-헤더

커스텀 헤더(Custom Header)는 표준 HTTP 헤더가 아닌, 특정한 웹 애플리케이션이나 서비스에서만 사용되는 헤더이다.

이 헤더들은 주로 'X-' 접두사를 붙여서 사용하였으나, IETF(Internet Engineering Task Force)는 2012년에 발표된 RFC 6648를 통해 X- 접두사를 사용하는 관행을 중단하도록 권고했다.

 

1. X-Requested-With

이 헤더는 AJAX 요청을 식별하기 위해 주로 사용된다.

예를 들어, 많은 JavaScript 프레임워크에서 이 헤더를 추가하여 서버가 AJAX 요청인지 아닌지를 구분할 수 있게 한다.

값으로는 일반적으로 XMLHttpRequest가 사용된다.

2. X-Forwarded-For

이 헤더는 프록시 서버를 통해 들어온 요청의 원래 클라이언트 IP 주소를 식별하기 위해 사용된다.

클라이언트가 여러 개의 프록시를 거쳐서 요청을 보낸 경우, 이 헤더에는 여러 개의 IP 주소가 콤마로 구분되어 표시된다.

3. X-XSS-Protection

이 헤더는 브라우저에서 XSS(Cross-Site Scripting) 공격을 방지하기 위한 보안 기능을 활성화하는 데 사용된다.

예를 들어, 값으로 1; mode=block을 설정하면 브라우저가 잠재적인 XSS 공격을 감지할 때 페이지 로딩을 차단할 수 있다.

4. X-Content-Type-Options

이 헤더는 브라우저가 MIME 타입 스니핑을 방지하기 위해 사용된다.

nosniff 값을 설정하면 브라우저는 Content-Type 헤더의 값에 명시된 형식만을 사용하여 콘텐츠를 해석하게 된다.

728x90

댓글