HTTP 헤더에는 크게 약속된 표준 데이터을 넣거나 서버와 클라이언트간에 데이터를 위한 커스텀 데이터를 명시할 수 있다.
HTTP 헤더 분류
표준으로 명시된 헤더를 사용할 때는 정해진 규격의 키, 밸류를 사용해야한다. 그래야지 정상적으로 동작한다.
표준 헤더의 예시로는 아래와 같은것들이 있다.
HTTP 헤더의 표준 데이터는 무엇이 있는지 궁금한다면!
MDN HTTP 헤더
HTTP의 특징중 하나는 상태가 없는 프로토콜이라는 것이다.
하지만 상태가 필요한 경우가 있을 수 있다. 예를들어 사용자가 로그인을 했는지에 대한 정보와 함꼐 서버에게 요청을 해야하는 경우일 때이다.
이때는 HTTP 쿠키를 사용하면 상태를 저장하는 Session을 사용할 수 있다.
응답(Response) 헤더에 아래와 같이 Set-Cookie
를 명시하면 이를 받은 브라우저는 자동으로 쿠키에 데이터를 저장한다.
Set-Cookie: <cookie-name>=<cookie-value>
이후에 상태가 필요한 요청을 보낼때 아래와 같이 요청(Request) 헤더에 Coockie
를 명시하여 브라우저가 가지고 있는 쿠키들을 요청에 담아서 전송할 수 있다.
GET /sample_page.html HTTP/1.1
Host: www.example.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry
HTTP 쿠키 자세히보기
HTTP 쿠키는 서버가 웹 브라우저에 전송하는 작은 데이터 조각이다. 브라우저는 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재요청 시 저장된 데이터를 함께 전송한다. 쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용하며, 이를 통해 사용자의 로그인 상태를 유지할 수 있다.
헤더에 서버와 클라이언트간에 통신을 할 때 필요한 데이터를 넣을수 도 있다.
아래와 같은 형태로 헤더의 키를 지정하고 밸류에 데이터를 넣어주면 된다.
// 커스텀 헤더 키
domain-key
// 혹은
domain.key
예를들어 현재 우리의 서비스가 test.com
이라는 도메인을 사용한다면 헤더의 키로 test.com-key
혹은 test.com.key
d를 키로 사용할 수 있다.
이것은 일반적으로 사용하는 약속 내지는 규칙정도인것 같다.