네트워크/혼자 공부하는 네트워크

05-03 HTTP 헤더와 HTTP 기반 기술

공부를하자 2024. 8. 14. 13:56

 

아래의 상기 내용은

"혼자 공부하는 네트워크" 도서 내용과 인터넷의 내용을 실습 정리한 글입니다.

1.HTTP헤더

 1)정의

 -HTTP 헤더란 HTTP 통신에 필요한 부가정보를 의미이다.

 -HTTP헤더는 HTTP 메시지의 필드라인 명시되는 정보이다.

 -HTTP헤더는 필드 이름(헤더 이름) 필드 (헤더 ) 콜론(:) 기준으로 구분 되어있다.

2.HTTP 헤더의 종류

 1)Host

 -요청을 보낼 호스트를 나타내는 헤더이다.

 -도메인 네임으로 명시되며, 포트번호가 포함될 있다.

 2)User-Agent

 - 브라우저와 같이 HTTP 요청을 시작하는 클라이언트 측의 프로그램을 의미한다.

 -요청 메시지 생성에 관여한 클라이언트 프로그램과 관련된 다양한 정보가 명시된다.

 -정보 종류에는 운영체제,브라우저 종류 버전,렌더링 엔진 여러가지가 존재한다.

 3)Referer

 -클라이언트가 요청을 보낼 머무르고 있던 URL 명시되는 헤더.

 -클라이언트의 유입 경로를 파악 해볼 있다.

 4)Authorization

 -클라이언트의 인증 정보를 담는 헤더.

 -인증 타입(type) 인증을 위한 정보(credentials) 차례대로 명시된다.

 -인증 타입의 종류는 다양하지만 기본적으로 HTTP 인증 타입은 Basic이라는 타입이다.

 -Basic타입 인증은 username : password 같이 사용자 아이디와 비밀번호를 콜론을 이용하여

 합친 , 이를 Base64 인코딩한 값을 인증정보(credential) 삼는 방식입니다.

 5)Server

 -요청을 처리하는 서버 측의 소프트웨어에 관한 정보가 명시되는 헤더

6)Allow

 -클라이언트에게 허용된 HTTP 메서드 목록을 알려주기 위해 사용된다.

7)Retry-After

 -상태코드 503(Service Unavailable) 같은 상태 코드와 함께 있는 헤더이다.

 -상태코드 503번은 '현재는 요청을 처리할 없으니 추후 가능할 수도 있음' 뜻하고 헤더는

 자원을 사용할 있는 날짜 혹은 시각을 나타낸다.

8)Location

 -클라이언트에게 자원의 위치를 알려주기 위해 사용되는 헤더.

9)WWW-Authenticate

 -상태코드 401번은 요청한 자원에 대한 유효한 인증이 없을 응답하는 코드이다.

 -상태코드 401번과 함께 사용되는 헤더가  WWW-Authenticate입니다.

 -자원에 접근하기 위해 유효한 인증 방식을 설명하는 헤더이다.

10)Date

-메시지가 생성된 날짜와 시각에 관련된 정보를 담은 헤더.

11)Connection

-클라이언트의 요청과 응답 간의 연결방식을 설정하는 헤더입니다.

-지속 연결상태 연결 종료 등의 상태가 명시된다.

12)Content-Length

-본문의 바이트 단위(길이) 나타내는 헤더

13)Content-Type,Content-Language,Content-Encoding

-메시지 본문의 표현방식을 설명하는 헤더들이다.

-표면 헤더(representation header)라고도 한다.

-Content-Type 메시지 본문에서 사용된 미디어 타입을 담고 있다.

-Content-Language 메서지 본문에 사용된 자연어를 명시한다.

-Content-Language 언어 태그로 명시되며 언어 태그는 하이픈(-)으로 구분된 구조를 따른다.

-Content-Encoding 메시지 본문을 압축하거나 변환한 방식이 명시된다. 송수신 데이터의 전송속도를

 높이기 위해 압축하거나 변환하는 경우가 있다. 방식이 기재되는 헤더.

 

3.캐시(Cache)

 1)정의

 -불필요한 대역폭 낭비와 응답 지연을 방지하기 위해 정보의 사본을 임시로 저장하는 기술.

 -사본을 저장해두면 동일한 요청에 대해 불필요한 작업을 줄이고 빠르게 데이터에 접근할 있다.

 -캐시는 브라우저에 저장되어 있기도 하고 클라이언트와 서버 사이에 위치한 중간서버에 저장되어

 있기도 하다. 전자를 개인 전용 캐시(private cache) 후자를  공용 캐시(public cache)라고 한다.

 2)캐시 신선도(cache freshing)

 -캐시는 사본 데이터이기에 원본 데이터가 달라질 있다.

 -사본 데이터와 원본데이터와 유사한지를 나타내는 정도가 캐시 신선도라고 한다.

 -신선도를 유지하기 위해서는 캐시된 데이터에 유효기간을 설정하는 기본적인 방법이 있다.

 -유효기간을 부여하는 방법으로 Exprires 헤더(날짜) Cache-Control 헤더의  MAX-age() 있다.

 -그리고 캐시의 유효기간이 만료되어도 캐시된 자원이 여전히 유효한지 아닌지 검사하여 재다운여부를

 구분이 필요하고 방식엔 날짜방식과 엔티티 방식이 존재한다.

 3)캐시 신선도 재검사 방법 : 날짜 방식

 -클라이언트는 If-Modified-Since라는 헤더를 통해 서버에게 서버에게 특정 시점 이후로 원본 데이터의

 변경이 있는지 물어볼 있다.

 -서버는 변경이 있다면 새로운 데이터를 받으라고,원본 데이터가 없다면 요청한 자원이

  없다고 메시지를 보낸다.

 -요청받은 자원이 변경이 없다면 캐시데이터를 활용하라고 메시지를 보낸다.

 4)캐시 신선도 재검사 방법 : 엔티티 태그

 -엔티티 태그(Entity tag) 자원의 버전을 식별하기 위한 정보이다.

 -자원이 변경되면 엔티티 태그도 변경된다.

 -클라이언트는 사본의 엔티티 태그와 원본의 앤티티 태그를 비교하여 파일 새로 받을 지에 대한 여부를

 검사한다.

 

4.쿠키(Cookie)

1)정의

 -서버에서 생성되어 클라이언트 측에서 저장되는 데이터로,상태를 유지하지 않는 HTTP 특성을 보완하는

 기술.

 -서버가 클라이언트의 상태를 있게 하는 특정의 데이터.

 -쿠키는 <이름,> 쌍의 형태를 띠고 있고, 추가로 적용 범위와 만료 기간 다양한 속성을 가질 있다.

 -클라이언트는 전달 받은 쿠키를 추후에 동일한 서버에 보내는 요청에 함께 포함하여 전달한다.

'네트워크 > 혼자 공부하는 네트워크' 카테고리의 다른 글

06-02 안전성을 위한 기술2  (0) 2024.08.26
06-01 안정성을 위한 기술  (0) 2024.08.26
05-02 HTTP  (0) 2024.08.13
05-01 DNS와 자원  (0) 2024.08.06
04-03 TCP의 오류,흐름,혼잡 제어  (0) 2024.08.04