티스토리 뷰
자바에서 많이 쓰는 HTTP 통신 라이브라리
1. HttpURLConnection (자바 기본)
2. HttpClient (Apache 제공)
1. HttpURLConnection
- 가벼움.
- 단일 Connection을 제공하므로 만약 1개의 URL만 반복해서 호출하는 구조라면 HttpClient보다 성능이 우수
- 3 way handshake 과정이 최초 1번만 발생하기 때문에 HttpClient보다 2-3배는 빠른 통신이 가능하다.
2. HttpClient
- 다양한 기능. 무겁다.
- Connection pool 제공
- Connection pool을 컨트롤하지 못하면 HTTP 통신마다 3 way handshake가 발생하며 HttpURLConnection보다 느리다.
- 특히, 국내 서버-해외 클라이언트 등 물리적 거리가 먼 환경에서 3 way handshake 발생 여부는 성능상 큰 차이가 발생함
3. HttpClient Connection pool 사용 방법
1) 기본
- 각 통신마다 동일한 Connection pool 객체를 사용해야 함 (당연히..)
- 그래서 Spring DI 또는 싱글톤 패턴으로 PoolingHttpClientConnectionManager 생성 필요
- 또한 pool에서 주기적으로 Connection을 제거하는 로직을 직접 구현해야함 (안그러면 계속 쌓임..)
- 참고 : https://www.hyoyoung.net/103
2) NTCredentials 등 서버 인증을 사용하는 통신
- 위 3-1) 방식 만으로는 connection 재사용 불가 (계속 pool에 쌓이기만함..)
- 아래와 같은 추가 조치 필요
CookieStore cookieStore = new BasicCookieStore();
HttpClientContext httpContext = HttpClientContext.create();
httpContext.setCookieStore(cookieStore);
...
response = httpClient.execute(httpPost, httpContext); // execute 함수에 HttpClientContext 반드시 추가
Test 버전 : httpclient-4.3.5.jar, httpclient-4.4.1.jar
- Total
- Today
- Yesterday
- array
- 과거 버전 사용
- insertion
- call back
- 링크드리스트
- 안드로이드
- Windows 서비스 등록
- LinkedList
- springboot
- 443
- 그라파나
- sort
- 정렬
- Stack
- code push
- setDoInput
- java
- docker
- PoolingHttpClientConnectionManager
- 암호
- 스머핑
- react-native
- Queue
- 선 없이
- Independentsoft
- elasticsearch
- 빌드 세팅
- 개발 설정
- Gradle
- 젠킨스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |