[Android] HTTP 통신에 대하여

김민주·2022년 11월 23일
1

Android

목록 보기
12/21

안드로이드 HTTP 통신

통신을 하기 위해서는 2가지 방식이 있다.

  1. Socket 연결
  • 클라이언트와 서버의 양방향 통신
  • 실시간으로 데이터를 주고 받는 상황이 필요한 경우 (스트리밍, 온라인 게임)
  1. HTTP 연결
  • 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신
  • 실시간 연결이 아닌, 필요한 상황에만 서버의 request를 보낸다
  • 서버로부터 응답을 받은 후에는 연결이 종료됨(=Connectionless)
  • 서버가 클라이언트를 외우지 못함(=Stateless), 필요한 경우 쿠키/세션 이용

HTTP 동작방식

  • 클라이언트가 서버에 Header + Body로 이루어진 메시지를 요청한다
  • 서버는 요청을 처리하고 응답코드와 함께 response를 반환한다

HTTP 메소드

method설명
GET서버에 리소스를 요청(Safe method)
HEADGET과 동일하지만 서버가 body를 반환하지 않음
POST클라이언트에서 요청한 URL에 본문의 내용으로 새로운 리소스 생성
PUT서버에 리소스를 쓸 때
DELETE서버에서 요청리소스 삭제
TRACE패킷의 변조를 확인하기 위해, 서버가 수신한 클라이언트 메시지 반환

RESTful API

: HTTP기반의 정보를 안전하게 교환하기 위해 사용하는 아키텍처를 적용한 인터페이스

Android HTTP Client

  1. HttpClient

    • Apache 라이브러리
    • Android 6.0에서 삭제됨
  2. HttpUrlConnection

    • Google에서 제시한 클래스
  3. Volley

    • Google에서 제시한 라이브러리
    • 네트워크 요청 자동 스케쥴링
    • 여러개 동시 네트워크 연결
  4. OkHttp

    • 통신 모든 활동을 모니터링
    • 커넥션 타임아웃
  5. Retrofit

    • OkHttp를 래핑한 Squareup 사의 라이브러리
    • 동기/비동기 쉬운 구현
    • annotation 사용으로 뛰어난 가독성
    • 빠른 성능
  6. Ktor

    • 코틀린 라이브러리 (멀티플랫폼 프레임워크)
    • 비동기 서버와 클라이언트 프로그래밍 가능
    • 확장성👍





참고 https://www.inflearn.com/course/%EC%95%8C%EA%B8%B0%EC%89%AC%EC%9A%B4-modern-android/unit/112149

profile
𝐃𝐨𝐧'𝐭 𝐛𝐞 𝐚 𝐩𝐫𝐨𝐜𝐫𝐚𝐬𝐭𝐢𝐧𝐚𝐭𝐨𝐫💫

0개의 댓글