HTTP 웹 기본

7_http 헤더_협상,전송 및 정보(RFC7230 기준)

스파이크12 2022. 5. 19. 08:44

○ HTTP 구조


 - 메세지 본문(페이로드)을 통해 표현 데이터 전달
 - 표현헤더는 표현 데이터를 해석할 수 있는 정보 제공
   ex) 데이터 유형, 길이 등
 - 표현헤더는 전송 응답 둘다 사용


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

 - Accept: 클라이언트가 선호하는 미디어 타입 전달
 - Accept-Charset: 클라이언트가 선호하는 문자 인코딩
 - Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
 - Accept-Language: 클라이언트가 선호하는 자연 언어
 ※ 협상 헤더는 요청시에만 사용
 ※ 협상 정보를 서버에 전송 시 서버가 제공할 수 있는 정보(타입)
   일 경우 클라이언트에 전달해주지만 제공할 수 없을 경우 서버가
   가지고 있는 우선 순위에 따라 정보를 전달

○ 협상 우선순위(Quality Values(q))


 - 0~1까지 있고 클수록 높은 순위를 가짐(생략시 1)
 ex) accept-language : ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
  1순위 ko-KR;q=1 (q=1생략)\
  2순위 ko;q=0.9
  3순위 en-US;q=0.8
  4순위 en;q=0.7

 - 구체적인 것을 우선으로 함
 ex) accept : text/html, text/*
  1순위 text/html
  2순위 text/*

○ 전송 방식

 1) 단순 전송
 2) 압축 전송
  ex) 표현 헤더에 Content-Encoding:gzip 포함
 3) 분할 전송
  ex) 표현헤더에 Transfer-Encoding: chunked 포함
 4) 범위 전송
  ex) 요청시 Range: bytes=1001-2000 포함
      응답시 Content-Range:bytes 1001-2000 / 2000 포함


○ 일반 정보

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

○ 특별한 정보

 - Host: 요청한 호스트 정보(도메인)(요청)
   ㄴ 하나의 서버가 여러 도메인을 처리할때
 - Location: 페이지 리다이렉션
   ㄴ 201(Created) 경우 생성된 리소스 URI
   ㄴ 3XX(Redirection) 경우 자동으로 리다이렉션하기 위한 리소스 URI
 - Allow: 허용 가능한 HTTP 메서드 (응답)
   ㄴ 405(Method Not Allowed)일때 응답에 담아줌
 - Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간 (응답)
   ㄴ 503(Service Unavailable)일때 언제까지 불가능한지 알려줌