HTTP 웹 기본 지식 step-6 HTTP 헤더

배인성·2022년 5월 25일
0

HTTP

목록 보기
6/7

한 2주 쉬었나?

회사 보안감사에 내 자리가 인터넷이 안되는 곳으로 옮겨지면서 HTTP step을 진행하지 못하고 있었다...ㅋㅋㅋ

물론 지금도 인터넷이 연결된 자리에 오랜만에 앉아서 시간 짬내서 쓰는것이다!

HTTP 헤더

우선, HTTP 헤더는 HTTP 전송에 필요한 모든 부가적인 정보가 담긴다.

예를 들어, 메시지 바디의 내용, 크기, 그리고 압축과 인증, 서버 정보, 캐시 관리 정보 등등...

자세히 알아보자!

표현 헤더

리소스를 어떤 형식으로 전송할 것인지

예를 들어, 회원이라는 리소스가 있다면 html로 전송할 것인지 json으로 전송할 것인지에 대한 명세다.

  • Content-Type : 표현 데이터의 형식 (text/html, application/json & charset=UTF-8)
  • Content-Encoding : 표현 데이터의 압축 방식 (gzip, deflate,identity)
  • Content-Language : 표현 데이터의 자연 언어 (ko, en, en-US)
  • Content-Length : 표현 데이터의 길이 (숫자) //바이트 단위

표현 헤더는 전송, 응답 둘다 사용한다고 한다.

협상 헤더

클라이언트가 선호하는 표현을 요청하는 것에 대한 명세

보통 Quality Values라는 이름으로 0과 1사이의 값을 통해 우선순위를 정해준다.

  • Accept : 클라이언트가 선호하는 미디어 타입 전달
  • Accept-Charset : 클라이언트가 선호하는 문자 인코딩
  • Accept-Encoding : 클라이언트가 선호하는 압축 인코딩
  • Accept-Language : 클라이언트가 선호하는 자연 언어

협상 헤더는 요청시에만 사용한다!!

전송 방식

단순 전송, 압축 전송, 분할 전송, 범위 전송 네 가지의 전송 방식에 대한 명세

  • 단순 전송 : Content-Length를 알때, 그냥 한번에 보내고 한번에 받는 것 (단순함)
  • 압축 전송 : 압축을 해서 보냄, 대신 이때는 Content-Encoding을 적어줘야함! 그래야 어떻게 압축되어있는지 알 수 있으니까 (당연)
  • 분할 전송 : 메시지 바디에서 그냥 분할해서 보내는 것. (5 Hello) (5 World) (0 \r\n) 이렇게 ㅇㅇ
  • 범위 전송 : 범위를 지정해서 받을 수 있는 전송법

일반 정보

단순한 정보성 헤더!

  • Form : 유저 에이전트의 이메일 정보
  • Referer : 이전 웹 페이지의 주소 (굉장히 많이 씀, 그리고 referrer의 오탄데 근데 그대로 쓰고있다는 역사?가 있음)
  • User-Agent : (클라이언트 = 유저 에이전트) 애플리케이션의 정보
  • Server : 요청을 처리하는 origin 서버의 소프트웨어 정보
    • origin 서버 : 프록시 다 제치고 진짜 찐 내 요청을 처리해주는 서버
  • Date : 메시지가 발생한 날짜와 시간

특별 정보

  • Host : 굉장히 중요함. 없으면 안됨! ex) aaa.com 그냥 도메인 정보
  • Location : 페이지 리다이렉션 (3xx 응답에 대해 리다이렉션 대상의 리소스를 가리킴)
  • Allow : 허용 가능한 HTTP 메소드 ex) Allow: GET, HEAD, PUT 이거만 지원!
  • Retry-After : 503(Service Unavailable) 서비스가 언제까지 불능인지 알려준다

쿠키 정보

쿠키정보는 내가 일전에 공부했었는데 이 링크를 첨부하겠다.

내 블로그 쿠키 설명

휴 다음 마지막 step인데 잘 마무리 해보자!

profile
부지런히 살자!!

0개의 댓글