네트워크

사용자(클라이언트)를 식별하는 네트워크 헤더

realtrynna 2023. 10. 10. 15:53

네트워크 헤더

사용자(클라이언트)가 접속한 기기(Web, Mobile 등), 아이피, 프로토콜 등 사용자를 식별할 수 있는 데이터가 담겨있다.

 

종류

Host

반드시 하나가 존재해야 하며 포트를 포함한 도메인 이름을 나타낸다.

 

User Agent

브라우저 또는 다른 HTTP 클라이언트가 서버에게 자신을 식별할 수 있는 정보를 전달하는 HTTP 헤더 중 하나다.

 

해당 헤더는 클라이언트의 소프트웨어 또는 브라우저, 운영 체제 등의 정보가 담겨있다.

서버는 해당 헤더의 담겨있는 정보를 통해 클라이언트의 브라우저가 호환되지 않는다면 대체 콘텐츠를 제공하거나 페이지를 다르게 렌더링 할 수 있다.

 

식별 정보

  • 브라우저 종류(Chrome, Safari, IE 등)와 버전
  • 운영 체제(Windows, MacOS, Linux 등)
  • 디바이스(데스크탑 또는 모바일)

 

Accept

요청 시 서버에 이런 타입(MIME)의 데이터를 원한다고 명시할 경우 사용한다.

Accept: text/html의 요청 헤더를 보내면 HTML 형식인 응답을 처리하겠단 의미다.

  • Accept-Charset: utf-8
  • Accept-Language: ko, en-US
  • Accept-Encoding: br, gzip, deflate

 

Authorization

인증 토큰(JWT, Bearer 등)을 서버로 보낼 경우 사용하는 헤더다. Basic이나 Bearer 같은 토큰의 종류를 알리고 실제 토큰 문자열을 명시해서 보낸다.

 

Origin

요청이 어느 주소에서 시작되었는지를 나타내며 요청 주소와 받는 주소가 다르면 CORS 에러가 발생한다.

 

Referer

이 페이지 이전의 페이지 주소가 담겨있다. 어떤 페이지에서 지금 페이지로 들어왔는지 알 수 있으며 구글 애널리틱스에서 많이 사용된다.

 

Referer은 오타, Referrer가 표준언데 실수로 Referer로 만듦

 

X 헤더 시리즈

아주 예전에 사용자가 임의로 헤더를 정의할 경우 사용자가 정의한 헤더라는 걸 알려주기 위해 관습적으로 앞에 X-를 붙였다. 2012년에 사라졌으며 이제는 붙이지 않아도 되지만 많은 기업들은 아직도 습관적으로 X를 앞에 붙인다. 사실상 표준 헤더가 되어버림

 

X-Forwarded-For

HTTP 프록시나 로드 밸런서를 통해 서버에 접속하는 클라이언트의 진원지 IP 주소를 식별하는 헤더다.

 

서버와 클라이언트 중간에서 트래픽이 프록시 또는 로드밸런서를 거치면 서버 로그에는 프록시 또는 로드밸런서 IP가 찍힌다. 이 경우 X-Forwarded-For 헤더를 통해 클라이언트의 최초 요청 IP를 알 수 있다.

 

  • 가장 왼쪽 IP가 최초 요청 IP, 그다음 순으로 프록시 또는 로드밸런서들의 IP들이 열거
X-Forwarded-For: <client>, <proxy1>, <proxy2>

 

X-Forwarded-Proto

클라이언트가 프록시 또는 로드밸런서에 접속하는데 사용된 프로토콜(HTTP 또는 HTTPS)을 식별하는 헤더다.

 

  • 응답 서버와 프록시 또는 로드밸런서 사이에 사용된 프로토콜은 포함하고 있지만 클라이언트와 프록시 또는 로드밸런서에서 사용한 프로토콜은 포함되어 있지 않다.
X-Forwarded-Proto: <protocol>

 

X-Forwarded-Host

클라이언트가 요청한 원래 Host 헤더를 식별하는 헤더다.

 

  • 프록시 또는 로드밸런서에서 Host 이름과 포트는 요청을 처리하는 Origin 서버와 다를 수 있다.
X-Forwarded-Host: <host>

 

 

참고

https://www.zerocho.com/category/HTTP/post/5b611b9e33b4636aa8bb1fc4

 

(HTTP) 알아둬야 할 HTTP X 헤더

안녕하세요. 이번 시간에는 X-로 시작하는 헤더들에 대해서 알아보겠습니다. 지금까지 많은 유명한 헤더들을 알아보았는데요. X-로 시작하는 헤더들은 무슨 의미를 갖고 있는지 궁금하셨을 것입

www.zerocho.com

https://velog.io/@haron/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC-%EC%8B%9D%EB%B3%84%ED%95%98%EB%8A%94%EB%8D%B0-%ED%95%84%EC%9A%94%ED%95%9C-%ED%97%A4%EB%8D%94%EA%B0%92%EC%9D%84-%EC%82%B4%ED%8E%B4%EB%B3%B4%EC%9E%90-2lxoc32r

 

[네트워크] 사용자를 식별하는데 필요한 헤더값을 살펴보자

사용자가 사용한 기기, IP, 프로토콜 등등 사용자를 식별하는데 필요한 값들이 있다.위 값들은 헤더값을 통해 얻을 수 있다.웹 브라우저나 다른 HTTP 클라이언트가 웹 서버에게 자신의 식별 정보

velog.io

https://developer.mozilla.org/ko/

 

MDN Web Docs

The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.

developer.mozilla.org

 

'네트워크' 카테고리의 다른 글

webRTC  (0) 2022.12.01
동기와 비동기 블로킹과 논 블로킹  (0) 2022.11.02
OSI 7 Layer  (0) 2022.10.09
URI URL  (0) 2022.10.05
JWT  (0) 2022.09.25