HTTP 헤더 종류
HTTP 요청 헤더는 클라이언트가 서버로 요청을 보낼 때 요청에 대한 추가적인 정보를 담고 있는 부분. 이 정보는 요청의 목적이나 특성을 서버에 알려주는 데 사용됨. 헤더는 5가지가 있는데, 다음과 같음. User-Agent, Accept, Content-Type, Authorization, Cookie, Host가 존재하며, 6가지의 알아볼 예정
User-Agent
클라이언트 소프트웨어의 종류와 버전을 식별하기 위한 헤더, 이를 통해 서버는 클라이언트의 종류에 따라 다른 응답을 제공할 수 있음
클라이언트 종류란?
User-Agent는 클라이언트 소프트웨어가 서버로 요청을 보낼 때 사용되는 헤더 중 하나입니다. 이 헤더에는 클라이언트 소프트웨어의 종류와 버전 정보가 포함됩니다. 이 정보는 주로 웹 브라우저, 웹 크롤러, API 클라이언트 등과 같이 다양한 클라이언트 소프트웨어를 식별하는 데 사용됨
예를 들어, 일반적인 브라우저인 Google Chrome은 다음과 같은 User-Agent를 갖게 될 수 있음
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36
Accept
클라이언트가 서버로부터 어떤 유형의 콘텐츠를 받기를 원하는지를 나타내는 헤더, 이를 통해 서버는 적절한 콘텐츠 유형을 선택하여 응답할 수 있습니다.
여기서 컨텐츠란 무엇인가?
"컨텐츠"란 웹 서버에서 클라이언트에게 전송되는 정보나 자원을 일컫음. 이는 주로 HTML 문서, 이미지, 비디오, 오디오, 텍스트 파일, JSON 데이터 등 다양한 형태의 데이터를 포함할 수 있습니다.
예를 들어, 클라이언트가 JSON 형식의 데이터를 받기를 원하는 경우에는 다음과 같이 Accept 헤더를 설정할 수 있음
Accept: application/json
또는 클라이언트가 텍스트 형식의 HTML 문서를 받기를 원하는 경우에는 다음과 같이 설정할 수 있음
Accept: text/html
Content-Type
클라이언트가 서버에게 보내는 데이터의 유형을 나타내는 헤더, 주로 POST 요청과 함께 사용되며, 서버는 이를 통해 수신된 데이터를 올바르게 처리할 수 있음
Authorization
클라이언트가 서버로 인증 정보를 보내는 데 사용되는 헤더, 주로 사용자 이름과 비밀번호를 포함하여 인증 토큰을 서버에게 전달하는 데 사용됩니다. 예를 들어, HTTP Basic 인증을 사용하는 경우 다음과 같이 Authorization 헤더를 설정할 수 있음
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l
이렇게 하면 서버는 클라이언트의 인증 정보를 확인하여 요청을 인증하고 처리할 수 있음
Cookie
클라이언트가 서버에게 쿠키를 전송하는 데 사용되는 헤더입니다. 서버는 이를 통해 클라이언트의 상태를 추적하고 유지할 수 있습니다. 작은 데이터 조각이며, 클라이언트는 이 쿠키를 다음 요청에 포함하여 서버에게 전달하므로, 서버는 클라이언트의 상태를 파악하고 필요한 서비스를 제공할 수 있음
Host
클라이언트가 요청을 보내는 서버의 호스트 이름과 포트를 나타내는 헤더입니다. 여러 개의 도메인이 호스팅되는 경우 해당 도메인을 식별하는 데 사용됩니다. 예를 들어, www.example.com 도메인으로 요청을 보내는 경우 다음과 같이 Host 헤더를 설정할 수 있음