본문 바로가기
네트워크/HTTP 기초

HTTP 헤더 - 일반 헤더

by Programmer.Junny 2024. 12. 18.

참고로 표현헤더는 과거 Entity 헤더 부분에 속한다.


표현 헤더 - Content-Type


협상 (컨텐츠 네고시에이션)

클라이언트가 선호하는 표현 요청

만약 서버에서는 기본적용은 독일어이고 영어까지만 지원하지만, 프론트에서 한국어를 요청하면 어떻게 될까? 이런 경우 우선순위를 두어 적용할 수 있다.

위와 같이 우선순위를 적용하여 기본적용되어있는 독일어가 아닌 영어로 반환하게 된다.

내용이 구체적일수록 우선순위로 판단한다.


전송 방식

표현 헤더에서 데이터를 어떤 방식으로 보낼지에 대한 부분이다.

  • 단순 전송
  • 압축 전송
  • 분할 전송
  • 범위 전송

데이터의 길이를 알고 있을 경우에 사용한다.

데이터를 압축을 어떤 압축을 하였는지를 포함한다. (클라이언트에서 무슨 압축으로 풀어야하는지 알아야하므로)

분할 전송은 데이터를 분할하여 패킷으로 구성해서 반환하는 방식이다. 크기가 너무 크거나 작업이 진행 중일 때 해당 데이터를 분할하여 먼저 클라이언트에 응답하는 경우가 되겠다.
나는 원래 이러한 방식이 유튜브와 같은 동영상 컨텐츠에 적합할거라 생각했으나 이것은 오산이었는데, ChatGPT에 물어보니 이유는 다음과 같았다.
유튜브와 같은 동영상들은 실시간 스트리밍이 아닌 CDN(Content-Delivery-Network)에 파일을 조각내어(세그먼트) 미리 준비해두고 클라이언트가 필요한 부분을 'Range(범위 전송)'하여 전송한다.
생각해보니 분할 전송은 데이터의 크기를 알 수 없기 때문에 오히려 이러한 방식엔 적합하지 않다는 것을 알 수 있었다.


일반 정보

  • From : 유저 에이전트의 이메일 주소
  • Referer : 이전 웹 페이지 주소
  • User-Agent : 유저 에이전트 애플리케이션 정보
  • Server : 요청을 처리하는 Origin 서버의 소프트웨어 정보
  • Date : 메세지가 생성된 날짜

Referer는 이전 웹 페이지 주소를 알 수 있기 때문에 유입 경로 분석이 가능하므로 실무에서 자주 쓰인다.


특별한 정보

  • Host : 요청한 호스트 정보(도메인)
  • Location : 페이지 리다이렉션
  • Allow : 허용 가능한 HTTP 메서드
  • Retry-After : 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간

Host가 반드시 필요한 이유는 위와 같이 서버에는 가상호스트를 통해 여러 도메인을 한번에 처리할 수 있는 서버가 있을 수 있다.
그러므로 Host 즉 도메인이 있어야 해당 서버에 원하는 응답을 받을 수 있다.


인증


쿠키

클라이언트가 서버로부터 받은 쿠키를 저장하고, HTTP 요청 시 해당 쿠키 데이터를 포함하여 전송한다.
기본적으로 HTTP는 무상태(Stateless) 프로토콜이므로 서버는 이전 요청을 기억하지 못한다.
그렇다면 사용자가 로그인한 후 요청을 하게 되면 사용자가 로그인했다는 정보를 매번 어떻게 알 수 있을까? 그래서 해당 데이터를 보관하는 장소가 '쿠키'이다.

해당 내용은 김영한님의 HTTP 웹 기초 강의(인프런)의 자료와 내용을 사용하였습니다.

'네트워크 > HTTP 기초' 카테고리의 다른 글

HTTP 헤더 - 캐시와 조건부 요청  (2) 2024.12.19
HTTP 상태코드  (0) 2024.12.16
HTTP 메서드 활용  (1) 2024.12.15
HTTP 메서드  (2) 2024.12.13
HTTP 특징  (1) 2024.12.13

최근댓글

최근글

skin by © 2024 ttuttak