5장 HTTP와 연계하는 웹 서버
웹 서버는 1대의 서버에서 멀티 도메인으로 웹사이트를 실행하거나 중계 서버를 두어 통신 중에 효율을 올릴 수 있다.
5.1 1대로 멀티 도메인을 가능하게 하는 가상 호스트
HTTP/1.1에서는 하나의 HTTP 서버에 여러 개의 웹사이트를 실행할 수 있다.
고객마다 다른 도메인을 가지고, 다른 웹사이트를 실행할 수 있다, 이를 위해 가상 호스트라는 기능을 사용한다.
HTTP Request를 보내는 경우에 호스트명과 도메인 명을 완전하게 포함한 URI를 지정하거나, 반드시 Host 헤더 필드에서 지정해야만 멀티 도메인을 적용할 수 있다.
5.2 통신을 중계하는 프로그램: 프록시, 게이트웨이, 터널
HTTP는 클라이언트와 서버 이외에도 프록시, 게이트웨이, 터널등으로 서버를 연계할 수 있다.
미들웨어처럼 동작한다.
프록시
서버와 클라이언트의 양쪽 역할을 하는 중계 프로그램이다.
클라이언트로 부터의 리퀘스트를 서버에 전송하고, 서버로부터의 리스폰스를 클라이언트에 전송한다.
게이트웨이
다른 서버를 중계하는 서버로, 클라이언트로부터 수신한 리퀘스트를 리소스를 보유한 서버인 것처럼 수신한다.
터널
서로 떨어진 두 대의 클라이언트와 서버 사이를 중계하며 접속을 주선하는 중계 프로그램이다.
5.2.1 프록시
프록시는 클라이언트와 서버의 중간에서 통신을 중계한다.
프록시 서버를 경유해서 리퀘스트와 리스폰스를 릴레이 할 때마다 ‘Via’ 헤더 필드에 프록시 서버에 대한 정보를 추가한다.
프록시 서버를 사용하는 이유에는 캐시를 사용하는 것, 액세스 제한, 액세스 로그를 획득하는 정책을 지키기 위함이 있다.
프록시의 사용 방법은 2개의 기준으로 분리한다.
- 캐시하는지 안하는지
- 메시지를 변경하는지 안하는지
캐싱 프록시
프록시로 리스폰스를 중계할 때 프록시 서버 상에 리소스 캐시를 보존해 두는 타입
같은 리소스에 리퀘스트가 온 경우 캐시를 리스폰스로 돌려준다.
투명 프록시(transparent proxy)
프록시로 리퀘스트와 리스폰스를 중계할 때 메시지 변경을 하지 않는 타입의 프록시다.
메시지에 변경을 가하는 타입의 프록시는 비투과(intransparent) 프록시라고 한다.
5.2.2 게이트웨이
게이트웨이의 동작은 프록시와 매우 유사하다.
게이트웨이는 그 다음에 있는 서버가 HTTP 서버 이외의 서비스를 제공하는 서버가 된다.
클라이언트와 게이트웨이 사이를 암호화하는 등으로 안전하게 접속함으로써 통신의 안정성을 높이는 역할을 한다.
DB에 접속해 SQL 쿼리를 사용해 데이터를 얻는 곳, 결제 시스템 등과 사용.
5.2.3 터널
터널은 다른 서버와의 통신 경로를 확립한다.
암호화 통신을 위해 사용하고 터널은 HTTP Request를 해석하지 않는다.
5.3 리소스를 보관하는 캐시
캐시는 프록시 서버와 클라이언트의 로컬 디스크에 보관된 리소스의 사본을 말한다.
캐시 서버는 프록시 서버의 하나로 캐싱 프록시로 분류된다.
비용을 아낄 수 있다.
5.3.1 캐시는 유효기간이 있다.
캐시를 가지고 있더라도 클라이언트의 요구나 캐시의 유효 기간 등에 의해서 오리진 서버에 리소스의 유효성을 확인하거나 새로운 리소스를 다시 획득하러 가게 되는 경우가 있다.
5.3.2 클라이언트 측에도 캐시가 있다.
브라우저에서도 캐시를 가질 수 있고 인터넷 임시 파일이라고 부른다.
브라우저가 유효한 캐시를 가지고 있으면 같은 리소스의 액세스는 서버에 액세스하지 않고 로컬 디스크로부터 불러온다.
'TIL > 개발' 카테고리의 다른 글
그림으로 배우는 Http & Network Basic - 7장 (1) | 2023.12.28 |
---|---|
그림으로 배우는 Http & Network Basic - 6장 (0) | 2023.12.25 |
[리팩토링 2판 스터디] 3회차 정리 (0) | 2023.12.16 |
그림으로 배우는 Http & Network Basic - 4장 (0) | 2023.12.15 |
그림으로 배우는 Http & Network Basic - 3장 (0) | 2023.12.15 |