ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP] 웹서버와 HTTP. (프록시, 게이트웨이, 가상호스트)
    코딩은 주댕이로/인터넷 2017. 5. 12. 01:24

    <내용과 무관한, 대표 이미지를 위한 Apple2>



    웹서버와 HTTP는 뗄 수 없는 관계에 있다.

    브라우저상에서 일어나는 대부분의 HTTP리퀘스트가 웹서버로 전달되고 있다.


    그럼 학부시절, 교수님이 분명히 알려주었지만 절대로 귀담아 듣지 않았던 프록시와 게이트웨이에 대해서 간단히 짚어보자.

    프록시와 게이트웨이 둘의 공통점은 클라이언트와 서버의 중계 역할을 한다는 것이다. 하지만 용도와 역할이 조금 다르다.



    프록시(Proxy)

    프록시 서버의 기본적인 동작은 클라이언트로부터 전달받은 리퀘스트를 서버로 전달하고, 서버에서 받은 응답을 클라이언트에 전달하는 역할을 한다.

    그렇다면, 왜 프록시를 두고 중계를 하는것일까?


    프록시의 사용 목적은 네트워크 캐싱, 조직내의 특정 웹사이트 액세스 방지, 액세스 로그 획득 등이 있다.

    프록시의 사용방법은 크게 2개의 기준으로 분류된다.


    1. 캐싱을 하는지, 안 하는지

    - 서버의 리스폰스를 프록시 서버에 보존해두고, 이전과 같은 리퀘스트가 들어온다면 목적지 서버를 거치지 않고 바로 프록시에서 캐싱해둔 리스폰스를 돌려줄 수 있다. 이러한 프록시를 Caching Proxy라고 한다.

    2. 메시지를 변경하는지, 안 하는지

    - 클라이언트와 서버를 중계하면서 메시지 변경을 하지 않는 프록시를 Transparent Proxy라고 한다.


    클라이언트에서 서버로 가는 길목에 여러 대의 프록시를 거친다면, 리퀘스트의 헤더에 어떤 프록시를 거쳐가는지 명시해주어야 한다.




    게이트웨이(Gateway)

    게이트웨이는 위에 설명한 프록시와 매우 유사하다. 게이트웨이 또한 목적지 서버를 중계하는 역할을 한다. 하지만 게이트웨이는 HTTP통신을 통해서 HTTP프로토콜 이외의 기능을 사용할 수 있는 기능을 제공해준다. 클라이언트는 게이트웨이와 HTTP통신을 하지만, 게이트웨이는 다음 서버와 HTTP 이외의 통신을 할 수 있기 때문이다. 


    그 결과, 클라이언트와 게이트웨이 사이를 암호화하는 등으로 통신의 안전성을 높인 뒤, SQL로 데이터베이스를 사용하거나 쇼핑몰등의 결제를 할 수 있다.


    실제로 우리 일상에서도 게이트웨이를 사용하고 있다. 집에서 인터넷을 하고 있다면, 우리가 가장 먼저 만나게 되는 게이트웨이는 무선공유기이다.


    출처 : 그림으로 배우는 HTTP&Network Basic


Designed by Tistory.