URLSession (이론)
정의
- 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 통신 단계
- Session Configuration을 결정하고, Session을 생성합니다.
- 통신할 URL과 Request 객체를 설정합니다.
- 사용할 Task를 결정하고, 그에 맞는 Completion Handle이나 Delegate 메서드들을 작성합니다.
- 해당 Task를 실행합니다.
- 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