-
HTTP 기반 시스템의 구성요소HTTP 2020. 9. 16. 20:35
HTTP 프로토콜에서 요청은 하나의 개체, 사용자 에이전트(또는 프록시)에 의해 전송
일반적으로 사용자 애이전트는 브라우저를 뜻하나 무엇이든 될 수 있다.각각의 요청들은 서버로 보내지며, 서버는 요청을 처리하고 response라고 불리는 응답을 제공한다. 이 요청과 응답사이에는 여러 개체들이 있다. 예를 들어 다양한 작업을 수행하는 게이트웨이 또는 캐시역할을 하는 프록시 등이 있다.
실제로는 브라우저와 요청을 처리하는 서버사이에는 많은 컴퓨터들이 존재한다. 라우터, 모뎀 등 있다. 웹의 계층적 설계 덕분에, 이들은 네트워크 또는 전송 계층에 있다. HTTP는 애플리케이션 계층 으로 최상위에 있다.
클라이언트: 사용자 에이전트
사용자 에이전트는 사용자를 대신하여 동작하는 모든 도구이다. 이 역할은 주로 브라우저에 의해 수행된다.
브라우저는 '항상' 요청을 보내는 개체이다. 이것은 절대 서버가 될 수 없다.
웹페이지를 표시하기 위해, 브라우저는 페이지의 HTML 문서를 가져오기 위한 요청을 전송한 뒤, 파일을 구문 분석하여 실행해야 할 스크립트 그리고 페이지 내의 하위 리소스들(비디오 또는 이미지)을 표시하기 위한 CSS에 대응하는 추가적인 요청을을 가져온다. 그 후에 브라우저는 리소스들을 혼합한다. 실행된 스크립트는 이후 단계에서 좀 더 많은 리소스들을 가져올 수 있다. 그에 따라 웹페이지는 갱신하게 된다.
웹서버
서버는 사실상 단일 기계이다. 이는 로드(로드 밸런싱) 혹은 그때 그때 다른 컴퓨터(캐시, DB 등)들의 정보를 얻고 완전하게 혹은 부분적으로 문서를 생성하는 소프트웨어의 복잡한 부분을 공유하는 서버들의 집합일 수 있다.
서버는 반드시 단일 머신일 필요는 없다. 그러나, 여러개의 서버를 동일한 머신위에 호스팅 할 수는 있다. HTTP/1.1과 Host 헤더를 이용하여, 동일한 IP 주소를 공유할 수도 있다.
Host 헤더란? 요청하려는 서버 호스트 이름과 포트번호를 말한다.
프록시
웹 브라우저와 서버 사이에서는 수많은 컴퓨터와 머신이 HTTP 메시지를 이어 받고 전달한다. 여러 계층으로 이루어진 웹 스택 구조에서 이러한 컴퓨터/머신 들은 대부분 전송, 네트워크 혹은 물리 계층에서 동작하여, 성능에 상당히 큰 영향은 주지만 HTTP의 계층(애플리캐이션)에서는 이들이 어떻게 동작하는지 눈에 보이지 않는다.
이러한 컴퓨터/머신 중에서도 애플리케이션 계층에서 동작하는 것들을 일반적으로 프록시라고 부른다.
프록시의 기능 1. 캐싱(캐시는공개 또는 비공개가 될 수 있다) 2. 필터링( 백신 스캔, 컨텐츠 차단) 3. 로드 밸런싱(여러 서버들이 서로 다른 요청을 처리하도록 허용) 4. 인증 (다양한 리소스에 대한 접근 제어) 5. 로깅 (변경 이력 저장)
'HTTP' 카테고리의 다른 글
HTTP 쿠키에 대하여 (0) 2020.09.24 HTTP 캐싱 (0) 2020.09.23 HTTP 개요 (0) 2020.09.15