TIL no.16-HTTP 헤더, 쿠키

백선호·2021년 6월 24일
0

TIL

목록 보기
14/39
post-thumbnail

HTTP HEADER

HTTP 전송에 필요한 모든 부가정보를 포함한다. 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등 무수한 정보들이 들어간다. 표준 헤더가 무수히 많고, 필요시 임의의 헤더 추가 가능하다.

HTTP BODY

메시지 본문(message body)을 통해 표현 데이터 전달한다. 메시지 본문을 페이로드(payload)라 한다. 표현은 요청이나 응답에서 전달할 실제 데이터를 표현이라고 생각하면 되고, 표현 헤더와 표현 데이터를 합치면 표현이라고 한다. 표현 헤더는 표현 데이터를 해석하기 위한 정보를 제공한다.

Representation(표현)

표현을 쉽게 생각하면 회원 리소스가 있다고 가정했을때 html표현으로 전달할지 json표현으로 전달할지 클라이언트와 서버간의 주고받을때 사용하는 방법이다.

  • Content-Type: 표현 데이터의 형식
  • Content-Encoding: 표현 데이터의 압축 방식
  • Content-Language: 표현 데이터의 자연 언어
  • Content-Length: 표현 데이터의 길이

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

서버가 클라이언트가 요구하는 우선순위에 맞춰서 표현 데이터를 만들어주는 방법이다.

  • Accept: 클라이언트가 선호하는 미디어 타입 전달
  • Accept-Charset: 클라이언트가 선호하는 문자 인코딩
  • Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
  • Accept-Language: 클라이언트가 선호하는 자연 언어
    #협상 헤더는 요청시에만 사용

협상과 우선순위 1(Quality Values(q))


Quality Values(q) 값을 사용하는데 0~1의 값의 q가 클수록 우선순위가 되고 생략하면 1이다.

협상과 우선순위 2


구체적인 것이 우선이다. 즉 많이 적은 게 우선순위가 된다. 위 사진속 협상의 우선순위는
1. text/plain;format=flowed
2. text/plain
3. text/
4.
/*

정보

  • From: 유저 에이전트의 이메일 정보
  • Referer: 이전 웹 페이지 주소
  • User-Agent: 유저 에이전트 애플리케이션 정보
  • Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보
  • Date: 메시지가 생성된 날짜
  • Host: 요청한 호스트 정보(도메인), 필수 값이다. 하나의 IP 주소에 여러 도메인을 처리해야 할 때 구분해 주는 역할을 한다.
  • Location: 페이지 리다이렉션
  • Allow: 허용 가능한 HTTP 메서드
  • Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간

쿠키


쿠키를 사용할 때 두 가지의 쿠키를 사용한다. Set-Cookie는 서버에서 클라이언트로 쿠키 전달(응답), Cookie는 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청 시 서버로 전달하는 역할을 한다. 기본적으로 HTTP는 무상태 이다. 클라이언트와 서버가 응답을 주고받으면 연결이 끊어지며, 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못한다. 따라서 이 문제를 해결하기 위해서 대안으로 쿠키를 사용한다. 웨브라 우저를 통해 로그인 요청을 하면 서버는 응답 메시지와 함께 쿠키 저장소에 값을 저장하면 다시 웹 브라우저가 서버에 요청을 보낼 때마다 쿠키 저장소에 쿠키가 저장소를 조회한 후 요청과 함께 보낸다.

profile
baik9261@gmail.com

0개의 댓글