[devon 2013] dynamic web proxy
TRANSCRIPT
Dynamic Web Proxy
어떻게 구현하나요 ?JavaCafe
김흥래
자바카페 OPEN 세미나 in DevOn 2013
Proxy Overview
Proxy 를 어디에 사용할까 ?
• Web Server 앞쪽 Cache 용도 (Web Cache)
• 서비스의 접근 정책 적용 ( 사이트 차단 )• 네트워크 Access 로깅
• 다른 정보를 빼낼 목적• IP 추적을 피할 목적• 지역 구분을 회피 할 목적
Proxy 의 두가지 측면 ?
Proxy 를 어디에 사용할까 ?
• Web Server 앞쪽 Cache 용도 (Web Cache)
• 서비스의 접근 정책 적용 ( 사이트 차단 )• 네트워크 Access 로깅
• 다른 정보를 빼낼 목적• IP 추적을 피할 목적• 지역 구분을 회피 할 목적
Proxy 를 어디에 사용할까 ?
• Web Server 앞쪽 Cache 용도 (Web Cache)
• 서비스의 접근 정책 적용 ( 사이트 차단 )• 네트워크 Access 로깅
• 다른 정보를 빼낼 목적• IP 추적을 피할 목적• 지역 구분을 회피 할 목적
Proxy Server
Forward Proxy Server
Reverse Proxy Server
Open Proxy Server
Web Proxy
Web Proxy (Http Proxy)
Http Security Proxy
API Gateway
API Gateway
API Gateway
Web Proxy ?
Web Browser ?
Web Browser
Web Proxy
Http ProxyInternal
Basic Http Proxy
• URLConnection• JDK 기본 API• java.net.HttpURLConnection• Since : JDK 1.1
Basic Http Proxy
Advanced Http Proxy
Apache Http Compo-nents• Http Protocol 통신을 지원하는 자바 기반의 Com-
ponent
• Http 기반의 클라이언트 및 서버 프로그램 개발 가능
HttpClient, HttpCore 라이브러리로 구성
• 2001 년부터 개발되기 시작한 안정화 된 라이브러리
• Apache Commons 프로젝트에서 독립 프로젝트로
승격
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 기준의 라이브러리
HTTP Component 는 크게 2 가지의 모듈로 구성되어 있다 .
Http Core
Http Client
HttpCore 라이브러리
• Low Level HTTP 라이브러리• Blocking I/O 기반 기술 제공• Non-Blocking I/O 기반 기술 제공• HTTP 1.1 프로토콜 완벽 지원
HttpCore 라이브러리
• HttpCore• Blocking I/O 기반의 Http 컴포넌트• httpcore-4.2.3.jar
• HttpCore NIO• Non-Blocking I/O 기반의 Http 컴포넌트• httpcore-nio-4.2.3.jar
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 가 아니다 .
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
HttpClient 라이브러리
HttpClient 라이브러리
HttpClient 라이브러리
HttpClient 라이브러리
HttpClient 라이브러리
HttpClient 라이브러리
Http Core
Http Client
DEMO
Thank you자바카페는 언제나 열려있습니다 .