3.2 KiB
3.2 KiB
HTTP 헤더
HTTP 헤더는 클라이언트(보통 웹 브라우저)와 서버 간의 통신에서 추가적인 정보를 주고받기 위해 사용되는 메타데이터입니다. HTTP 요청과 응답 메시지에 포함되어 있으며, 요청이나 응답의 내용, 전송되는 데이터의 형식, 캐싱 정보 등 다양한 정보를 담고 있습니다.
HTTP 헤더의 역할
- 요청 헤더: 클라이언트가 서버에 요청할 때, 어떤 종류의 데이터를 원하는지, 어떤 브라우저를 사용하는지 등의 정보를 전달합니다.
- 응답 헤더: 서버가 클라이언트에게 응답할 때, 응답 데이터의 종류, 콘텐츠 길이, 캐싱 관련 정보 등을 전달합니다.
HTTP 헤더의 종류
HTTP 헤더는 크게 다음과 같은 종류로 나눌 수 있습니다.
- General Header: 요청과 응답 모두에 사용되며, 메시지 자체에 대한 일반적인 정보를 포함합니다.
- Date: 메시지가 생성된 시간을 나타냅니다.
- Cache-Control: 캐싱 관련 지시를 포함합니다. (예: no-cache, max-age)
- Request Header: 요청 메시지에만 사용되며, 클라이언트에 대한 정보나 요청하는 리소스에 대한 정보를 포함합니다.
- User-Agent: 클라이언트(브라우저)의 종류와 버전 정보를 나타냅니다.
- Accept: 클라이언트가 수용할 수 있는 콘텐츠 형식(MIME type)을 나타냅니다.
- Accept-Language: 클라이언트가 선호하는 언어를 나타냅니다.
- Accept-Encoding: 클라이언트가 지원하는 인코딩 방식을 나타냅니다.
- Authorization: 인증 정보를 포함합니다.
- Cookie: 서버가 클라이언트의 브라우저에 저장한 쿠키 정보를 포함합니다.
- Referer: 현재 요청된 페이지의 이전 페이지 URL을 나타냅니다.
- Response Header: 응답 메시지에만 사용되며, 서버에 대한 정보나 응답 데이터에 대한 정보를 포함합니다.
- Content-Type: 응답 데이터의 형식(MIME type)을 나타냅니다.
- Content-Length: 응답 데이터의 크기를 바이트 단위로 나타냅니다.
- Last-Modified: 자원이 마지막으로 수정된 시간을 나타냅니다.
- ETag: 자원의 버전을 나타내는 문자열입니다. Location: 리소스가 다른 URL로 이동했을 때 새로운 URL을 나타냅니다.
- Set-Cookie: 클라이언트의 브라우저에 새로운 쿠키를 설정합니다.
- Entity Header: 메시지 본문(entity-body)에 대한 정보를 포함합니다.
- Content-Encoding: 응답 데이터가 압축된 방식을 나타냅니다.
- Content-Language: 응답 데이터의 언어를 나타냅니다.
HTTP 헤더의 활용
- 캐싱: Last-Modified, ETag 헤더를 이용하여 브라우저에서 자원을 캐싱하고, 불필요한 데이터 전송을 줄일 수 있습니다.
- 인증: Authorization 헤더를 이용하여 사용자를 인증하고, 권한을 부여할 수 있습니다.
- 콘텐츠 협상: Accept 헤더를 이용하여 클라이언트가 선호하는 콘텐츠 형식을 선택할 수 있습니다.
- 웹 크롤링: User-Agent 헤더를 변경하여 다른 브라우저처럼 행동할 수 있습니다.