Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링 핵심 원리
- 코틸린인액션
- 싱글톤 컨테이너
- Kotlin
- 자바 ORM 표준 JPA 프로그래밍 7장
- Python
- 고급매핑
- 20055 컨베이어 벨트 위의 로봇
- 객체 지향 설계와 스프링
- kotlin in action 정리
- Kotlin in action 6장
- 20055
- spring
- 7장 고급매핑
- 13460 구슬탈출 2
- Kotlin in action 10장
- 백준 20055 컨베이어 벨트 위의 로봇
- 스프링 핵심 원리 - 기본편
- 스프링 핵심 원리 이해
- 컨베이어 벨트 위의 로봇 Python
- Kotlin in action 5장
- 코틀린인액션
- Kotlin in action 3장
- 코틀린
- 스프링 컨테이너와 스프링 빈
- 기능개발 python
- KotlinInAction
- 백준 13460 Python
- 백준
- Kotlin In Action
Archives
- Today
- Total
기록하는 습관
[북스터디] HTTP 완벽 가이드 6장 본문
HTTP 완벽 가이드 6장 프락시
6.1 웹 중개자
웹 프락시 서버는 클라이언트의 입장에서 트랜잭션을 수행하는 중개인이다. 중간에서 요청과 응답을 둘 다 받게 되므로 웹 클라이언트이면서 웹 서버가 되기도 한다.
사용 목적
- 네트워크 캐싱
- 특정 웹 사이트 액세스 방지
- 보안 방화벽
- 웹 케시 문서 접근 등..
6.1.1 개인 프락시와 공유 프락시
공용 프락시 - 여러 클라이언트가 사용하는 프락시
개인 프락시 - 하나의 클라이언트가 독점적으로 사용하는 프락시
6.1.2 프락시 VS 게이트웨이
- 프락시 - 둘 이상의 애플리케이션을 연결하는데 “같은” 프로토콜을 사용
- 게이트웨이- 둘 이상의 애플리케이션을 연결하는데 “다른” 프로토콜을 사용
- 게이트웨이란?
- 리소스와 어플리케이션을 연결하는 것으로, HTTP 트래픽을 다른 트래픽으로 자동 변환해 클라이언트가 다른 프로토콜을 몰라도 서버에 접속할 수 있도록 한다.
- 어플리케이션 -> 게이트웨이 -> 리소스
- 어플리케이션 -> 게이트웨이 : 클라이언트와 게이트웨이의 통신으로 “HTTP” 통신
- 게이트웨이 -> 리소스 : 게이트웨이와 다른 서버의 통신으로 “다른 프로토콜” 통신
- 사용 목적
- 서로 다른 프로토콜과 애플리케이션 간의 통신을 위해
- 결론
- 둘 다 다른 네트워크와 중간에 위치하면서 중개자 역할 느낌이지만 프록시는 캐시, 보안 방화벽, 필터링 역할을 하고 게이트웨이는 다른 네트워크와의 통신을 가능하게 한다.
6.2 왜 프락시를 사용하는가?
프락시 서버는 보안을 개선하고 성능을 높여주며 비용을 절약한다.
그리고, 모든 HTTP 트래픽을 제어할 수 있다.
- 어린이 필터
- 클라이언트와 서버 사이에 있는 중개인으로써 부적절한 사이트의 접근을 강제로 거부한다.
- 성인 콘텐츠 차단
- 문서 접근 제어자
- 보안 방화벽
- 웹 캐시
- 인기 있는 문서의 로컬 사본을 관리하고 해당 문서에 대한 요청이 오면 빠르게 제공한다.
- CDN 서버로 활용한다.
- CDN이란?
- Content Delivery Network의 약자인 CDN은 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술이다.
- 대리 프록시
- 콘텐츠 라우터
- 트랜스 코더
- 익명화 프록시
6.3.2 어떻게 프락시의 연쇄가 계층을 이루는가?
서버쪽으로 갈 수록 부모 서버가 되고, 자식 프락시는 자신이 수행할 일을 요청할 부모 프락시를 정할 수 있다.
6.3.3 어떻게 프락시가 트래픽을 처리하는가?
원서버로 요청한 메시지가 프락시한테 가는 4가지 방법
- 클라이언트를 수정
- 의도적으로 원 서버가 아닌 프락시 서버로 요청이 간다.
- 네트워크를 수정
- 스위칭, 라우팅 장치에서 처리하는 인터셉트 프락시
- DNS에서 수정
- 대리 프락시에서 자신의 DNS 테이블을 사용한다.
- 웹 서버를 수정
- 웹서버에서 HTTP 리다이렉션을 실행시킨다.
번외)
서버 위치에 따른 프록시 서버
- Forward 프록시
- 클라이언트 호스트들과 접근하고자 하는 원격 리소스 사이에 위치시킨다.
- 만약, 사용자가 naver.com을 요청하면 사용자가 직접 PC에 연결하는 것이 아니라 Forward 프록시 서버가 요청을 받아 연결해주고 그 결과를 사용자에게 전달하는 것.
- 서버가 응답받은 IP는 포워드 프록시 서버의 IP이므로 클라이언트를 감출 수 있다.
- 장점
- 대역폭 사용을 감소시킬 수 있다.
- 접근 정책 구현에 있어서 다루기 쉬우면서도 비용이 저렴하다는 장점이 있다.
- Reverse 프록시
- 인터넷 리소스 또는 인트라넷 리소스 앞에 위치시킨다.
- 클라이언트가 서버를 호출할 때 Reverse 프록시를 호출하고 Reverse 프록시 서버가 서버를 요청한다.
- 만약, 사용자가 naver.com에 데이터를 요청하면 Reverse 프록시가 요청을 받아 내부 서버에서 데이터를 받은 후 그 데이터를 사용자에게 전달한다.
- 클라이언트는 리버스 프록시 서버를 먼저 호출하게 되기 때문에 실제 서버의 IP를 알 수 없으므로 리버스 프록시 서버는 원서버를 감추는 역할을 한다.
- 이 방식은 클라이언트들이 프록시 서버에 연결되어 있다는 것을 인식하지 못한다.
- WAS는 보통 DB 서버와 연결 되므로 WAS가 최전방에 있으면 해킹당할 경우 DB까지 같이 해킹되는 문제가 발생할 수 있다. 따라서 Reverse 프록시 서버를 두고 실제 서비스 서버는 내부 망에 위치시키고 프록시 서버만 내부에 있는 서버와 통신해서 결과를 클라이언트에게 제공하는 방식으로 서비스를 하게 된다.
'스터디 > HTTP 완벽 가이드' 카테고리의 다른 글
[북스터디] HTTP 완벽 가이드 2장 (0) | 2021.05.28 |
---|---|
[북스터디] HTTP 완벽 가이드 7장 (0) | 2021.05.28 |
[북스터디] HTTP 완벽 가이드 4장 (0) | 2021.05.28 |
[북스터디] HTTP 완벽 가이드 9장 (0) | 2021.05.28 |
[북스터디] HTTP 완벽 가이드 (0) | 2021.05.28 |
Comments