HTTP 헤더(HTTP Header)는 HTTP 요청(Request)이나 응답(Response) 메시지에 포함되는 메타데이터 정보이다.
메타데이터는 클라이언트와 서버 간의 통신을 도와주는 여러 가지 정보를 제공한다.
HTTP 헤더는 특정 형식을 가지고 있으며, 헤더 이름과 값을 가지고 있다.
각 헤더는 콜론(:)으로 이름과 값을 구분한다.
- 요청 헤더(Request Header): Client to Server / 요청하는 클라이언트의 정보, 요청하는 리소스의 종류, 캐시 관련 정보 등이 적혀있다.
- 응답 헤더(Response Header): Server to Client / 서버의 정보, 응답의 상태 코드, 전송하는 데이터의 형식 등이 적혀있다.
표현과 관련된 헤더
- Content-Type : 표현 데이터의 형식 (text/html; charset=utf-8)
- Content-Encoding : 표현 데이터 인코딩(압축) (gzip, deflate, identity)
- Content-Language : 표현 데이터의 자연언어 (ko,en)
협상과 관련된 헤더 (클라이언트가 선호하는 선택지 전달)
- Accept : 미디어 타입
- Accept-Charset : 문자 인코딩
- Accept-Encoding : 압축 인코딩
- Accept-Language : 자연 언어
*QualityValues(q) : 우선순위 - 0~1의 값을가짐, 클수록 높은 우선순위
(Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7)
*구체적인 것이 우선순위를 가진다.
전송 방식과 관련된 헤더
- 단순 전송 : Content-Length
- 압축 전송 : Content-Encoding
- 분할 전송 : Transfer-Encoding
- 범위 전송 : Content-Range
정보와 관련된 헤더
- Referer : 이전 웹페이지 주소
- User-Agent : 클라이언트의 애플리케이션 정보(웹브라우저 정보 등, 서버 장애시 어떤 종류의 브라우저에서 장애가 발생하는지 파악가능)
- Server : 요청을 처리하는 오리진 서버의 소프트웨어 정보
- Date : 메세지가 생성된 날짜
- Host : 요청한 호스트 정보
- HTTP 요청에서 필수적인 헤더 중 하나이며, 요청된 리소스의 호스트를 식별하여 올바른 서버로 라우팅하는 데 중요한 역할을 한다.
- 가상 호스팅(Virtual Hosting): 하나의 웹 서버에서 여러 개의 도메인을 호스팅할 때, "Host" 헤더는 해당 도메인에 대한 콘텐츠를 식별하는 데 사용된다. 클라이언트가 요청하는 도메인에 따라 서버는 다른 콘텐츠를 제공할 수 있다.
- Location : 페이지 리다이렉션 목표 위치
- Allow : 허용가능한 HTTP 메소드
- Retry-After : 유저에이전트가 다음 요청까지 기다려야하는 시간
인증과 관련된 헤더
- Authorization : 클라이언트 인증정보를 서버에 전달
- WWW-Authenticate : 리소스 접근시 필요한 인증 방법 정의
쿠키와 관련된 헤더
- Set-Cookie : 서버에서 클라이언트로 쿠키 전달(응답)
- Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고 HTTP 요청시 서버로 전달
클라이언트의 데이터 저장 기술 - 쿠키와 웹 스토리지의 차이점
- 쿠키(Cookie):
- 목적: 클라이언트의 로컬 컴퓨터에 작은 데이터 조각을 저장하여 웹 사이트에서 정보를 기억하고 상태를 유지하는 데 사용(세션 관리, 개인화된 사용자 경험, 추적 등)
- 저장 용량: 일반적으로 4KB
- 전송: HTTP 헤더에 포함되어 서버로 전송
- 보안: 쿠키는 클라이언트에 저장되므로 보안에 취약하다. 쿠키에 보안 옵션을 설정하여 HTTPS 프로토콜을 통해 전송될 수 있다.
- 유효 기간: 쿠키에 만료 날짜를 설정하여 세션 쿠키(브라우저 종료 시 만료) 또는 지속적인 쿠키(특정 기간 동안 유지)로 설정할 수 있다.
- 웹 스토리지(Web Storage):
- 목적: 클라이언트 측의 데이터를 브라우저에 지속적으로 저장
- 저장 용량: 일반적으로 5MB 이상
- 전송: HTTP 헤더에 포함되지 않으며, 클라이언트 측에서만 사용된다.
- 보안: 웹 스토리지는 클라이언트 측에 저장되지만 쿠키보다 더 안전한 것으로 간주된다. 웹 스토리지는 동일 출처 정책(Same-Origin Policy)에 따라 동일한 출처에서만 접근할 수 있다.
- 유효 기간: 웹 스토리지에는 만료 날짜를 설정할 수 없으며, 데이터는 브라우저를 종료하거나 명시적으로 삭제할 때까지 유지됨.
'NetWok > HTTP' 카테고리의 다른 글
캐시와 관련된 HTTP 헤더 (0) | 2024.02.21 |
---|