HTTP Header
HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 해주는 HTTP 구성 중 한 부분이다. 가장 앞 단에 있는 데이터이기 때문에 헤더 라고 표현하며, 헤더 뒤로 이어지는 데이터는 페이로드 혹은 바디로 불린다.
HTTP 헤더의 종류
- General Header : 요청과 응답 모두에 적용되지만 바디에서 최종적으로 전송되는 데이터와는 관련 없는 헤더
- Request Header : 페치(fetch)될 리소스나 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더
- Response Header : 위치 또는 서버 자체에 대한 정보(이름,버전 등)와 같이 응답에 대한 부가적인 정보를 같는 헤더
- Entity Header : 컨텐츠 길이나 MIME 타입과 같이 Entity 바디에 대한 자세한 정보를 포함하는 헤더
아래는 본인의 티스토리 메인 접속 시, 확인할 수 있는 헤더 정보이다.
(F12 단축키를 눌러 개발자도구를 통해 확인이 가능하다)
Request Header
요청 헤더는 클라이언트 자체에 대한 자세한 정보를 포함한다.
메세지의 컨텐츠와는 관련이 없는 헤더이며 HTTP 요청 메세지에서만 사용되고 가장 방대하다.
[주요 항목]
-Host : 요청하는 호스트에 대한 호스트명 및 포트 번호(필수)
-만약 Host 필드를 생략하면 웹서버에서는 400 Bad Request를 응답하는 것이 원칙이다.
-이 host필드에 의해 가변성을 부여해서 동일 ip주소를 갖는 단일 서버에 여러 사이트들을 구축 가능하다(Virtual Hosting)
-host필드에서는 도메인명, 호스트명 모두를 포함하는 전체 URI 지정이 필요하다.
-From : 클라이언트 사용자 메일 주소
- 주로 검색엔진 웹 로봇의 연락처 멩리 주소를 나타낸다.
- 때로는 이 연락처 메일 주소를 User-agent 항목에 두는 경우도 있다.
-Cookie : 서버에 의해 Set-Cookie로 클라이언트에게 설정된 쿠키 정보를 보냄
-Referer : 바로 직전에 머물었던 웹 링크 주소(URL)
- 만일 URL을 주소창에 직접 입력하거나, 북마크ㅡ 사엥서 선택하는 경우 아래와 같이 blank로 표시된다.
ex ) Referer : about :blank
-User-Agnet : 클라이언트 소프트웨어(웹브라우저) 명칭 및 버전 정보
-Accept : 클라이언트 자신이 원하는 미디어 타입 및 우선순위를 서버 측에 알려줌
- 텍스트(text/html, text/plain .....), 이미지(image/jpeg...) 등
ex) 'Accept : */* --> 어떤 미디어 타입도 가능함을 의미, `Accept : image/* --> 모든 종류의 이미지 유형이 가능
- Accept-Charset : 클라이언트 자신이 원하는 문자 집합
- Accpet-Encoding : 클라이언트 자신이 원하는 문자 인코딩 방식
- Accpet-Language : 클라이언트 자신이 해석 가능한 언어(원하는 언어)
-If-Modified-Since : 제시한 일시 이후로만 변경된 리소스를 취득 요청함
Response Header
특정 유형의 HTTP요청이나 특정 HTTP헤더를 수신했을 때, 이에 응답한다.
[주요 항목]
- Server : 웹서버 소프트웨어 정보를 나타낸다
- Set-Cookie : 웹 서버 측에서 클라이언트에게 세션 쿠키 정보를 설정한다.
- `속성이름( attribute)/속성값(value);` 형태로 다수 정보들이 설정된다.
- RFC 2965에서 규정된다.
- Allow : 해당 엔터티에 대해 서버 측에서 지원 가능한 HTTP 메소드의 리스트를 나타낸다.
(때론, HTTP 요청 메소드 OPTIONS에 대한 응답용 항목이다)
- X-Powered-By : 서버 내 시스템 이름을 알리기 위해 반환한다
- RFC 규격 표준은 아니지만 사실 상의(de-facto) 표준
참고 링크
http://www.ktword.co.kr/test/view/view.php?m_temp1=5905
'웹 > HTTP' 카테고리의 다른 글
URI, URL, URN에 대해서 (0) | 2022.11.17 |
---|