: 정보들을 주고받을 때 지켜야하는 인터넷 상의 규약
Hyper Text(HTML문서)를 전송하기 위해 지켜야하는 프로토콜
client -----(request) ---> Web server
client <---(response) --- WebServer
=> HTTP는 기본적으로 서버와 클라이언트가 계속해서 연결되어있지 않고, 서버는 response를 한 뒤 곧바로 연결을 종료시킵니다.
1) GET : 데이터 가져오기
2) POST : 새로운 데이터 추가하기
3) PUT : 기존의 데이터 수정(업데이트)
4) PATCH : 기존의 데이터 일부 수정
5) DELETE : 데이터 삭제
6) HEAD : GET과 동일하지만 메시지의 헤더만 반환
7) OPTIONS : 해당 URL이 어떤 메소드를 지원하는지 확인
8) CONNECT : 프록시를 통하여 서버와 SSL 통신을 하고자 할 때 사용
9) TRACE : 통신 관리 및 디버깅, 원격 서버 테스트용 메시지 확인
애플에서 HTTP 통신을 위해 만든 것으로 특정 url을 이용해서 데이터를 다운로드하고 업로드하기 위해 사용하는 API 입니다.
URLSession은 URLSessionConfiguration과 URLSessionTask로 구성되어있습니다.
공유 세션 : URLSession.share()
=> singleton, 기본요청을 하기 위한 세션, 맞춤설정은 어렵지만 쉽게 생성하여 사용 가능
기본 세션 : URLSession(configuration: .default)
=> 공유 세션과 유사하게 작동하지만 직접 원하는 설정 가능, 캐시 쿠킹 정보 저장함, 순차적인 데이터 처리를 위한 delegate 설정 가능
임시 세션 : URLSession(configuration: .ephemeral)
=> 공유 세션과 유사하지만 캐시, 쿠키, 사용자 인증 정보를 디스크에 저장하지 않음, 세션 만료시 데이터 사라짐
백그라운드 세션 : URLSession(configuration: .background)
=> 앱이 실행되지 않는 동안 백그라운드에서 컨텐츠 업로드, 다운로드 실행 가능