iOS/iOS

URLSession (이론)

황민우 2022. 3. 28. 21:27

정의

- URLSession는 HTTP/HTTPS를 통해 콘텐츠 및 데이터를 주고받기 위해 API를 제공하는 서비스입니다.

- HTTP를 포함한 몇 가지 프로토콜을 지원하고, 인증, 쿠키 관리, 캐시 관리, 등을 지원합니다.

- 앱에서 서버와 통신하기 위해 애플이 제공하는 API

- iOS 앱에서 네트워킹을 하기 위해 필요한 API

- 기본적으로 request, response 구조를 가지고 있습니다.

 

Request

- URL 객체와 직접 통신하는 형태

- URL Request 객체를 직접 만든 뒤, 옵션을 설정해서 통신하는 형태

 

Response

- Task의 Comletion Handler를 통해서 응답 받는 방식

- URLSessionDelegate의 메서드를 통해서 응답 받는 방식


URLSessionConfiguration

 

- URLSession은 크게 3가지 종류의 Session을 지원합니다.

  • Default Session = 기본적인 Session으로 디스크 기반 캐싱을 지원합니다.
  • Ephemeral Session = 어떠한 데이터도 저장하지 않는 형태의 세션입니다.
  • Background Session = 앱이 종료된 이후에도 통신이 이루어지는 것을 지원하는 세션입니다.

 

URLSession Task

- Task 객체는 일반적으로 Session 객체가 서버로 요청을 보낸 후, 응답을 받을 때 URL 기반의 내용들을 받는 역할을 합니다.

- URLSession Task는 3가지 종류의 Task가 지원됩니다.

  • Data Task = Data 객체를 통해 Data를 주고받는 기능을 합니다.
  • Download Task = Data를 파일의 형태로 전환 후 다운로드하는 기능을 수행합니다. (백그라운드 다운로드 지원)
  • Upload Task = Data를 파일의 형태로 전환 후 업로드하는 기능을 수행합니다.

URLSession 통신 단계

  1. Session Configuration을 결정하고, Session을 생성합니다.
  2. 통신할 URL과 Request 객체를 설정합니다.
  3. 사용할 Task를 결정하고, 그에 맞는 Completion Handle이나 Delegate 메서드들을 작성합니다.
  4. 해당 Task를 실행합니다.
  5. Task 완료 후, Completion Handler가 실행됩니다.

내용 출처

https://greatpapa.tistory.com/66

 

[Swift] URLSession과 사용법

URLSession 앱과 서버 간의 데이터를 주고받기 위해서는 HTTP 프로토콜을 이용해서 데이터를 주고받음 앱에서 서버와 통신하기 위해 애플이 제공하는 API HTTP를 포함한 몇 가지 프로토콜을 지원하고

greatpapa.tistory.com

https://roniruny.tistory.com/163

 

[iOS] URLSession 사용해서 서버 통신해보기 (feat. 네이버 Movie API)

네이버 Movie API 를 가져와서 서버 통신을 해볼건데 이번에는 Alamofire, Moya가 아닌 Apple에서 자체적으로 제공하는 네트워크 통신 API인 URLSession을 사용해 보려고 한다! https://developers.naver.com/app..

roniruny.tistory.com

https://hcn1519.github.io/articles/2017-07/iOS_URLSession

 

iOS URLSession 이해하기

iOS에서 네트워킹을 도와주는 URLSession API에 대해 알아봅니다.

hcn1519.github.io

https://developer.apple.com/documentation/foundation/urlsession

 

Apple Developer Documentation

 

developer.apple.com