Http Method
- GET : 클라이언트가 서버에 리소스를 요청할 때 사용
- POST : 클라이언트가 서버의 리소스를 새로 만들 때 사용
- PUT : 클라이언트가 서버의 리소스를 전체 수정 할 때 사용
- PATCH : 클라이언트가 서버의 리소스를 일부 수정 할 때 사용
- DELETE : 클라이언트가 서버의 리소스를 삭제 할 때 사용
- HEAD : 클라이언트가 서버의 정상 작동 여부를 확인할 때 사용
- OPTIONS : 클라이언트가 서버에서 해당 URL이 어떤 메소드를 지원하는지 확인 할 때 사용
- CONNECT : 클라이언트가 프록시를 통하여 서버와 SSL 통신을 하고자 할 때 사용
- TRACE : 클라이언트와 서버간 통신 관리 및 디버깅을 할 때 사용
HTTP Status
- 100번 대 Informational : 요청 정보를 처리 중 (거의 안쓴다고!)
- 200번 대 Success : 요청을 정상적으로 처리함
- 300번 대 Redirection : 요청을 완료하기 위해 추가 동작 필요
- 400번 대 Client Error : 서버가 요청을 이해하지 못함
- 500번 대 Server Error : 서버가 요청 처리 실패함
URLSession
특정한 url 을 이용하여 데이터를 다운로드하고 업로드 하기 위한 API
URLSeccionConfiguration 을 통해 URLSession 생성 된다.
URLSession 을 통해 한 개 이상의 URLSessionTask 를 생성 할 수 있다.
URLSessionTask 를 통해 실제 서버와 통신한다.
URLSession 종류
공유 세션 (Shared Session)
URLSession.shared()
싱글톤, 기본 요청을 하기위한 세션. 맞춤 설정은 할 수 없지만 쉽게 만들 수 있다.
기본 세션 (Default Session)
URLSession(configuration: .default)
공유 세션과 유사하지만 직접 원하는 설정을 할 수 있다.
캐시와 쿠키인증 등을 디스크에 저장한다.
순차적으로 데이터를 처리하기 위한 델리게이트를 지정할 수 있다.
임시 세션 (Ephemeral Session)
URLSession(configuration: .ephemeral)
공유 세션과 비슷하지만 캐시와 쿠키, 사용자 인증 정보를 디스크에 저장하지 않는다.
메모리에 올려서 세션을 연결한다. 세션 만료시 데이터가 사라진다.
백그라운드 세션 (Background Session)
URLSession(configuration: .background)
앱이 실행되지 않는 동안 백그라운드에서 컨텐츠 업로드 및 다운로드를 실행할 수 있다.
URLSessionTask 종류
URLSessionDataTask - 데이터 객체를 사용하여 데이터를 요청하고 응답받는데 짧고 빈번하게 요청 하는 경우 사용된다.
URLSessionUploadTask - 데이터 객체 또는 파일형태의 데이터를 업로드하는 작업 수행. 앱이 실행되지 않았을때 백그라운드 업로드를 지원한다.
URLSessionDownloadTask - 데이터를 다운받아 파일형태로 저장하는 작업 수행. 앱이 실행중이지 않을 때 백그라운드 다운로드를 지원한다.
URLSessionStreamTask - TCP / IP 연결을 생성할때 사용한다.
URLSessionWebSocketTask - 웹소켓 프로토콜 표준을 통해 통신한다.
URLSession Life Cycle
1. Session Configuration 을 결정하고, Session 을 생성
2. 통신할 URL과 Request 객체를 설정
3. 사용할 Task 를 결정하고 그에 맞는 Completion Handler 나 Delegate 메소드들을 작성
4. 해당 Task 를 실행
5. Task 완료 후 Completion Handler 클로저가 호출이 됨
'# 02 > iOS' 카테고리의 다른 글
[iOS] Geofence (0) | 2023.09.22 |
---|---|
[iOS] 라이브러리 사용! (0) | 2022.10.26 |
[iOS] Alamofire (0) | 2022.10.26 |