KEMBAR78
Apache http component | PPTX
자바카페와 함께하는
Apache
HttpComponents
JavaCafe 김흥래
발표자
김흥래
NHN INS 경영지원개발팀에서
그룹웨어를 개발하고 있습니다.
자바카페(JAVACAFE) 커뮤니티에서
운영진으로 활동하고 있습니다.
APACHE
HTTP COMPONETS
 Http 프로토콜 통신을 지원하는 자바 기반의 Component
 Http 기반의 클라이언트 및 서버 프로그램 개발 가능
 Web Spider, Http Proxy, Web Service System
 HttpClient, HttpCore 라이브러리로 구성
 2001년부터 개발되기 시작한 안정화 된 라이브러리
 Apache Commons 프로젝트에서 독립 프로젝트로 승격
APACHE
COMMONS LIBRARY
 프로그램의 공통적인 기능을 재사용하기 위한 목적으로 시작
 Google Library와 더불어 전세계적으로 가장 많이 사용되고 있
는 Library
 현재 Commons Library는 40여개의 컴포넌트들로 구성
 각각의 컴포넌트를 필요에 따라서 선택적으로 사용하는 것이 가
능
2005년
Http Client
Http Core
HTTP Component는 크게 2가지의 기능으로 구성되어 있
다.
APACHE
HTTP COMPONENTS
 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 기준의 라이브러리
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
HttpCore 라이브러리
모듈
HttpClient 라이브러리
특징
 HttpCore를 기반으로 만든 Client-side HTTP 통신 라이브러리
 모든 Http 메소드 구현
(GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE)
 Blocking I/O 기반의 동작방식을 가진다.
 HTTP 메시지를 전송 및 수신이 가능하다.
 손쉬운 Http Proxy 구성이 가능하다.
 Javascript 실행이 불가능하다.
 URI Redirect 동작이나 HTML 랜더링이 불가능하다.
 Web Browser가 아니다.
HttpClient 라이브러리
특징
HttpClient 라이브러리
특징
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-4.2.3.jar
HttpClient 라이브러리
httpclient-4.2.3.jar
HttpClient 라이브러리
httpclient-4.2.3.jar
HttpClient 라이브러리
httpmime-4.2.3.jar
HttpClient 라이브러리
httpmime-4.2.3.jar
HttpClient 라이브러리
httpmime-4.2.3.jar
HttpClient 라이브러리
httpmime-4.2.3.jar
HttpClient 라이브러리
httpmime-4.2.3.jar
HttpClient 라이브러리
httpclient-cache-4.2.3.jar
HttpClient 라이브러리
httpclient-cache-4.2.3.jar
HttpClient 라이브러리
httpclient-cache-4.2.3.jar
Http Proxy
원리
Http Proxy
원리
Http Proxy
원리
Http Proxy
구현
 Java URLConnection
 Apache HttpClient 3.x
 Apache HttpClient 4.x
Http Proxy
구현
 Java URLConnection
 JDK 기본 API
 java.net.HttpURLConnection
 Since : JDK 1.1
Http Proxy
구현
 Java URLConnection
Http Proxy
구현
 Apache HttpClient 3.x
 HTTP 통신 라이브러리
 Java URLConnection보다 강력한 기능을 제공
 Cookie 핸들링
 Http Pipelining 지원
 현재 개발 중단
Http Proxy
구현
 Apache HttpClient 3.x
Http Proxy
구현
 Apache HttpClient 4.x
 HttpCore와 HttpClient 분리
 기존 3.x 버전과 하위 호환성 없음
 Non-Blocking I/O 지원
 Proxy Cache 지원
HTTP COMPONENT
사용예
HTTP COMPONENT
사용예
HTTP COMPONENT
사용예
HTTP COMPONENT
사용예
HTTP COMPONENT
사용예
HTTP COMPONENT
사용예
Apache http component

Apache http component