HTTP 헤더의 구조에 대해 설명해 주세요.

  • HTTP 헤더는 HTTP 본문(body) 및 요청/응답에 대한 정보를 포함한다.

  • 본문에 대한 정보는 본문 컨텐츠 길이 등 본문 컨텐츠와 관련이 있다.

  • HTTP 1.1에서 헤더는 세 부분으로 나눌 수 있다.

    • 일반 헤더

    • 요청/응답 헤더

    • 엔티티 헤더

각각의 나뉜 헤더의 역할

  • 일반 헤더(General Header)

    • 전송하는 HTTP 본문 컨텐츠와 관련 없고, 요청/응답이 생성된 날짜 및 시간 등과 같은 HTTP 통신에 대한 일반적인 정보가 포함된다.

    • 이 헤더는 HTTP 요청과 응답 메시지에 공통으로 사용된다.

  • 요청/응답 헤더(Request/Response Header)

    • 서버에 요청하면 요청 헤더가 있고, 서버가 클라이언트/브라우저로 응답을 다시 보낼 때 응답 헤더가 있다.

    • 요청 헤더는 요청한 URL, 메서드(GET, POST, HEAD 등), 요청 생성에 사용된 브라우저 및 기타 정보와 같은 요청에 대한 정보가 포함된다.

    • 브라우저라는 용어는 사용자 에이전트(User Agent)라고도 하는데, 페이지에 대한 간단한 요청조차도 사용중인 브라우저 및 운영 체제에 대한 정보를 전송해야한다.

    • 응답 헤더는 사용자가 특성 페이지 또는 리소스에 대한 요청을 보낸 후 서버에서 브라우저에 의해 수신되며 컨텐츠에 사용된 인코딩, 서버 시스템에서 응답을 생성하는 데 사용되는 서버 소프트웨어 및 기타 정보를 포함한다.

    • 대부분의 사이트는 해커가 서버에서 어떤 소프트웨어가 사용되고 있는지 알기 어렵도록 서버 정보를 숨긴다. 이것은 웹서버 구성파일에 설정 가능하다.

  • 엔티티 헤더(Entity Header)

    • 이 헤더에는 실제 메시지 또는 전송중인 HTTP 본문에 대한 정보가 포함된다.

      • 컨텐츠 길이, 컨텐츠 언어, 인코딩, 만료 날짜 및 기타 중요한 정보와 같은 정보

    • 이제 브라우저는 수신된 데이터를 읽기 시작하고, 헤더 섹션에 있는 CSS, Javascript, 이미지 파일의 URL에 연결해 별도의 HTTP 요청을 통해 해당 리소스를 가져 오기 위해 모든 요청을 전송한다.

Last updated