230106 - TIL

Junho Yun·2023년 1월 6일
0

TIL

목록 보기
50/81
post-thumbnail

HTTP와 연계하는 웹 서버

웹서버 1대의 서버에서 멀티 도메인으로 웹사이트를 실행하거나 중계 서버를 두어 통신 중에 효율을 올릴 수 있습니다.

1대로 멀티 도메인이 가능한 이유: 가상 호스트

HTTP/1.1에서는 하나의 HTTP 서버에 여러 개의 웹사이트를 실행할 수 있습니다.
이를 위해 가상 호스트라는 기능을 사용하고 있습니다. 웹사이트에 리퀘스트 할때는 DNS에 의해 결국 IP 주소를 찾습니다. 하나의 IP주소에서 여러개의 도매인 명을 가진 경우 어느 쪽에 대한 액세스 인지 알 수 없습니다. 그렇기 때문에 도메인명을 포함한 리퀘스트를 보내야합니다.

통신을 중계하는 프로그램 : 프록시, 게이트웨이, 터널

  • 프록시 : 서버와 클라이언트의 양쪽 역할을 하는 중계 프로그램으로, 클라이언트로부터 리퀘스트를 서버에 전송하고, 서버로 부터 리스폰스를 클라이언트로 전송합니다.

  • 게이트 웨이 : 다른 서버를 중계하는 서버입니다. 클라이언트로 부터 수신한 리퀘스트를 서버인 것 처럼 수신합니다.

  • 터널 : 서로 떨어진 두대의 클라이언트와 서버 사이를 중계하며 접속을 주선하는 중계 프로그램 입니다.

프록시

프록시는 서버와 클라이언트 사이에 있으며, 해당 프록시 서버를 경유할 때마다 Via 헤더 필드에 경유한 호스트 정보를 추가합니다. 프록시 서버를 사용하는 이유는 액세스에 관한 권한 관리와 네트워크 대역을 효율적으로 쓰기 위한 이유가 있습니다.

캐싱 프록시 , 투명 프록시 두개의 방법으로 사용할 수 있습니다.
캐싱 프록시는 캐시를 되돌려, 주고 투명프록시는 메시지를 변경하지 않는 타입의 프록시 입니다.

게이트웨이

서버와 클라이언트 사이에 있으며, 클라이언트와 HTTP 통신을 합니다. 그리고 서버와는 HTTP 이외의 통신을 합니다. 이는 클라이언트와 게이트웨이 사이를 암호화하는 등으로 안전하게 접속함으로써 안전성을 높이는 역할을 합니다.

터널

안전한 통신 경로를 확립합니다. 클라이언트는 SSL 같은 암호화 통신을 통해 서버와 안전하게 통신을 하기 위해 사용합니다.

터널 자체는 HTTP 리퀘스트를 해석하려고 하지 않습니다. 그대로 서버로 중계 해줄 뿐 입니다.

리소스를 보관하는 캐시

캐시는 프록시 서버와 클라이언트의 로컬 디스크에 보관된 리소스 사본을 가리킵니다.
캐시를 사용하면 리소스를 가진 서버의 액세스를 줄이는 것이 가능하기 때문에 통신량 및 통신 시간을 절약할 수 있습니다.

캐시 서버의 장점은 캐시를 이용해서 같은 데이터를 오리진 서버 까지 여러번 전송할 필요가 없다는 것 입니다.

캐시는 유효기간이 있다.

캐시에는 유효기간이 있기 때문에 해당 캐시가 너무 오래되었을 때, 다시 오리진 서버를 통해 확인 후 리소스를 확인하고 캐시를 갱신해서 사용할 수 있다,

클라이언트 측에도 캐시가 있다.

브라우저에서는 캐시를 인터넷 임시 파일이라고 취급합니다. 해당 리소스가 필요할 때 브라우저는 서버에서 요청하지 않고 로컬 디스크로 부터 불러올 수 있습니다.

이 또한 마찬가지로 오래된 것으로 판단 될때는 오리진 서버를 통해서 갱신합니다.

profile
의미 없는 코드는 없다.

0개의 댓글