Upload
-
View
592
Download
2
Embed Size (px)
DESCRIPTION
2013년 공감세미나에서 발표한 내용입니다.
Citation preview
자바카페와 함께하는
Apache HttpComponents
JavaCafe 김흥래
발표자
김흥래NHN INS 경영지원개발팀에서그룹웨어를 개발하고 있습니다 .
자바카페 (JAVACAFE) 커뮤니티에서 운영진으로 활동하고 있습니다 .
APACHEHTTP 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 가지의 기능으로 구성되어 있다 .
APACHEHTTP 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사용예