[DevOn 2013] Dynamic web proxy

58
Dynamic Web Proxy 어어어 어어어어어 ? JavaCafe 어어어 자자자자 OPEN 자자자 in DevOn 2013

Transcript of [DevOn 2013] Dynamic web proxy

Page 1: [DevOn 2013] Dynamic web proxy

Dynamic Web Proxy

어떻게 구현하나요 ?JavaCafe

김흥래

자바카페 OPEN 세미나 in DevOn 2013

Page 2: [DevOn 2013] Dynamic web proxy

NAVER INS 에서 그룹웨어를 개발하고 있습니다 .

자바카페 (JAVACAFE) 커뮤니티에서 운영진으로 활동하고 있습니다 .

[email protected]

발표자 : 김흥래

Page 3: [DevOn 2013] Dynamic web proxy

Proxy Overview

Page 4: [DevOn 2013] Dynamic web proxy
Page 5: [DevOn 2013] Dynamic web proxy
Page 6: [DevOn 2013] Dynamic web proxy
Page 7: [DevOn 2013] Dynamic web proxy

Proxy 를 어디에 사용할까 ?

• Web Server 앞쪽 Cache 용도 (Web Cache)

• 서비스의 접근 정책 적용 ( 사이트 차단 )• 네트워크 Access 로깅

• 다른 정보를 빼낼 목적• IP 추적을 피할 목적• 지역 구분을 회피 할 목적

Page 8: [DevOn 2013] Dynamic web proxy

Proxy 의 두가지 측면 ?

Page 9: [DevOn 2013] Dynamic web proxy

Proxy 를 어디에 사용할까 ?

• Web Server 앞쪽 Cache 용도 (Web Cache)

• 서비스의 접근 정책 적용 ( 사이트 차단 )• 네트워크 Access 로깅

• 다른 정보를 빼낼 목적• IP 추적을 피할 목적• 지역 구분을 회피 할 목적

Page 10: [DevOn 2013] Dynamic web proxy
Page 11: [DevOn 2013] Dynamic web proxy
Page 12: [DevOn 2013] Dynamic web proxy

Proxy 를 어디에 사용할까 ?

• Web Server 앞쪽 Cache 용도 (Web Cache)

• 서비스의 접근 정책 적용 ( 사이트 차단 )• 네트워크 Access 로깅

• 다른 정보를 빼낼 목적• IP 추적을 피할 목적• 지역 구분을 회피 할 목적

Page 13: [DevOn 2013] Dynamic web proxy
Page 14: [DevOn 2013] Dynamic web proxy
Page 15: [DevOn 2013] Dynamic web proxy
Page 16: [DevOn 2013] Dynamic web proxy
Page 17: [DevOn 2013] Dynamic web proxy

Proxy Server

Page 18: [DevOn 2013] Dynamic web proxy

Forward Proxy Server

Page 19: [DevOn 2013] Dynamic web proxy

Reverse Proxy Server

Page 20: [DevOn 2013] Dynamic web proxy

Open Proxy Server

Page 21: [DevOn 2013] Dynamic web proxy

Web Proxy

Page 22: [DevOn 2013] Dynamic web proxy

Web Proxy (Http Proxy)

Page 23: [DevOn 2013] Dynamic web proxy

Http Security Proxy

Page 24: [DevOn 2013] Dynamic web proxy

API Gateway

Page 25: [DevOn 2013] Dynamic web proxy

API Gateway

Page 26: [DevOn 2013] Dynamic web proxy

API Gateway

Page 27: [DevOn 2013] Dynamic web proxy

Web Proxy ?

Web Browser ?

Page 28: [DevOn 2013] Dynamic web proxy

Web Browser

Page 29: [DevOn 2013] Dynamic web proxy

Web Proxy

Page 30: [DevOn 2013] Dynamic web proxy

Http ProxyInternal

Page 31: [DevOn 2013] Dynamic web proxy

Basic Http Proxy

• URLConnection• JDK 기본 API• java.net.HttpURLConnection• Since : JDK 1.1

Page 32: [DevOn 2013] Dynamic web proxy

Basic Http Proxy

Page 33: [DevOn 2013] Dynamic web proxy

Advanced Http Proxy

Page 34: [DevOn 2013] Dynamic web proxy
Page 35: [DevOn 2013] Dynamic web proxy

Apache Http Compo-nents• Http Protocol 통신을 지원하는 자바 기반의 Com-

ponent

• Http 기반의 클라이언트 및 서버 프로그램 개발 가능

HttpClient, HttpCore 라이브러리로 구성

• 2001 년부터 개발되기 시작한 안정화 된 라이브러리

• Apache Commons 프로젝트에서 독립 프로젝트로

승격

Page 36: [DevOn 2013] Dynamic web proxy
Page 37: [DevOn 2013] Dynamic web proxy
Page 38: [DevOn 2013] Dynamic web proxy
Page 39: [DevOn 2013] Dynamic web proxy
Page 40: [DevOn 2013] Dynamic web proxy
Page 41: [DevOn 2013] Dynamic web proxy

Apache Http Compo-nents• HttpComponents Core

• Low Level 의 HTTP 전송 컴포넌트• HTTP 기반의 Server 와 Client 구현 가능• Blocking I/O 와 Non-Blocking I/O 지원

• HttpComponents Client• HttpCore 를 이용하여 구현한 HTTP 기반의 Client• Blocking I/O 기반

• HttpComponents AysncClient• HttpCore NIO 를 이용하여 구현한 HTTP 기반의 Client• Non-Blockin I/O 기반• 현재 Beta 버전임

• Commons HttpClient (legacy)• 과거 3.0 기준의 라이브러리

Page 42: [DevOn 2013] Dynamic web proxy

HTTP Component 는 크게 2 가지의 모듈로 구성되어 있다 .

Http Core

Http Client

Page 43: [DevOn 2013] Dynamic web proxy

HttpCore 라이브러리

• Low Level HTTP 라이브러리• Blocking I/O 기반 기술 제공• Non-Blocking I/O 기반 기술 제공• HTTP 1.1 프로토콜 완벽 지원

Page 44: [DevOn 2013] Dynamic web proxy

HttpCore 라이브러리

• HttpCore• Blocking I/O 기반의 Http 컴포넌트• httpcore-4.2.3.jar

• HttpCore NIO• Non-Blocking I/O 기반의 Http 컴포넌트• httpcore-nio-4.2.3.jar

Page 45: [DevOn 2013] Dynamic web proxy

HttpClient 라이브러리• HttpCore 를 기반으로 만든 Client-Side HTTP

라이브러리• Http 1.1 프로토콜이 지원하는 모든 메소드 구현

(GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE)

• 기본적으로 Blocking I/O 기반의 동작방식을 가진다 . • HTTP 메시지를 전송 및 수신이 가능하다 .• 손쉬운 Http Proxy 구성이 가능하다 .• URI Redirect 동작이나 HTML 랜더링이 불가능하다 .• Javascript 실행이 불가능하다 .• Web Browser 가 아니다 .

Page 46: [DevOn 2013] Dynamic web proxy

HttpClient 라이브러리• HttpClient

• Client-side HTTP 통신 지원• httpclient-4.2.3.jar

• HttpMime• HttpClient 모듈을 지원하기 위한 용도• MIME Encoding• httpmime-4.2.3.jar

• HttpClient Cache• HttpClient 모듈에 Cache 기능을 추가한 확장 모듈• Ehcache, Memcached• httpclient-cache-4.2.3.jar

Page 47: [DevOn 2013] Dynamic web proxy

HttpClient 라이브러리

Page 48: [DevOn 2013] Dynamic web proxy

HttpClient 라이브러리

Page 49: [DevOn 2013] Dynamic web proxy

HttpClient 라이브러리

Page 50: [DevOn 2013] Dynamic web proxy

HttpClient 라이브러리

Page 51: [DevOn 2013] Dynamic web proxy

HttpClient 라이브러리

Page 52: [DevOn 2013] Dynamic web proxy

HttpClient 라이브러리

Page 53: [DevOn 2013] Dynamic web proxy

Http Core

Http Client

Page 54: [DevOn 2013] Dynamic web proxy
Page 55: [DevOn 2013] Dynamic web proxy
Page 56: [DevOn 2013] Dynamic web proxy
Page 57: [DevOn 2013] Dynamic web proxy

DEMO

Page 58: [DevOn 2013] Dynamic web proxy

Thank you자바카페는 언제나 열려있습니다 .