공식홈페이지에 나와있는 설명에 따르면,
OkHttp란 효율적인 HTTP 클라이언트이다.
즉, OkHttp는 클라이언트 사이드에서 통신을 하기 위해서 사용된다.
OkHttp를 사용하면 HTTP 통신을 쉽게 구현할 수 있다.
OkHttp는 네트워크 문제가 발생할 경우, 그 원인이 일반적인 연결 문제라면 자동으로 연결이 복구된다.
만약 우리가 요청을 보낸 서비스가 다양한 IP 주소를 가지고 있다면, 첫번째 IP 주소로 연결이 실패할 경우, OkHttp는 두번째 IP 주소와 자동으로 연결을 시도한다.
IPv4+IPv5 및 중복된 데이터 센터에서 호스팅되는 서비스대상으로는 이 기능이 필요하다.
OkHttp는 모던 TLS(TLS 1.3, ALPN, certificate pinning) 기능들을 지원한다.
(TLS는 TCP/IP 통신을 사용하는 경우에 적용될 수 있으며, 통신 계층에 보안을 제공하기 위해 설계된 암호 프로토콜이다. TLS는 SSL을 계승한 것으로 SSL보다 보안이 강화된 프로토콜이다. HTTPS에서 사용되는 암호화 프로토콜이 SSL/TLS이다. )
이 기능은 광범위한 연결을 위해서 사용되지 않도록 설정될 수 있다.
OkHttp를 사용하는 것은 쉽다.
OkHttp의 요청, 응답 API는 유연한 여러가지 빌더와 불변성을 가지고 설계되었다.
OkHttp는 동기식 블락킹 호출과 콜백을 가지는 비동기식 호출을 모두 지원한다.
조사를 하면서 알게 된건데 OkHttp 4.x 가 나온 것 같다…
OkHttp 모든 로우 레벨의 네트워크 작업, 캐싱, 요청 및 응답을 다루는 HTTP 클라이언트(클라이언트 사이드 라이브러리) 즉, 커넥션 풀링, gzip, 캐싱, 네트워크 문제로부터 복구, 동기 및 비동기 호출, 리다이렉션, 재시도 등을 구현할 수 있다.
Retrofit
OkHttp와 마찬가지로, HTTP 통신때 사용되는 클라이언트 사이드 라이브러리이지만 OkHttp를 기반으로 하여, 그 위에 존재하는 하이 레벨의 추상화 빌드이다.
Retrofit과 OkHttp는 강하게 결합되어 있으며 Retrofit은 OkHttp와 함께 사용할 때, OkHttp를 더 잘 사용할 수 있도록 한다.
즉, URL 조작, 요청, 로딩, 캐싱, 스레딩, 동기화, 동기 및 비동기 호출 등을 구현할 수 있다.
OkHttp보다 하이레벨이기 때문에 네트워크 통신을 구현하기 더 쉽게 만들어 줬다.