Fetch basic concepts

Fetch 는 네트워크 통신을 포함한 리소스를 가지고 오기 위한 인터페이스를 제공해주는 보다 새로운 API입니다. XMLHttpRequest 와 기능은 같지만 확장 가능하며 효과적으로 구성되어 있습니다. 이 문서에서는 Fetch API의 기본 컨셉들중 일부를 소개합니다.

참고: 이 문서는 수시로 갱신됩니다 。보다 나은 설명이 필요한 Fetch 컨셉트를 발견한 경우에는、MDN 디스커션 포럼이나 Mozilla IRC(#mdn room)에 연락주시기 바랍니다.

개념

Fetch의 핵심은 인터페이스의 추상화입니다. HTTP Request, Response (en-US), Headers (en-US), Body의 Payload, 그리고 비동기 리소스 Request의 초기화를 위한global fetch (en-US)메서드가 이 대상입니다. HTTP의 주요 컴포넌트가 자바스크립트 오브젝트로써 추상화되어있기 때문에 다른 API에서 이러한 기능들을 사용하기 쉽게 해줍니다.

Service Worker (en-US)는 Fetch를 사용하는 API의 일례입니다.

Fetch는 이러한 Request의 비동기적인 성질을 한걸음 진화시킨 Promise 베이스의 API입니다.

가드

가드는 Headers (en-US) 객체의 기능으로, 헤더가 사용하고 있는 장소에 알맞게 immutable, request, request-no-cors, response, none값을 얻습니다.

Headers() (en-US)constructor (en-US)를 사용하고 있는 새로운 Headers (en-US)객체가 생성될 때, 가드는 기본 설정일때 none에 위치됩니다. Request객체나 Response (en-US)객체가 생성되었을 때, 관계지어진 Headers (en-US)객체의 가드는 아래의 명세와 같이 설정되어 있습니다.

새로운 객체형 생성자 관계한Headers (en-US) 객체 가드의 설정
Request Request() request
no-cors의 mode (en-US)를 설정한 Request() request-no-cors
Response (en-US) Response() (en-US) response
error() (en-US)메서드나 redirect() (en-US) 메서드 immutable

헤더 가드는 헤더의 콘텐츠를 변경하는 set() (en-US), delete() (en-US), append() (en-US) 메서드에 영향을 끼칩니다.가드는 immutableHeaders (en-US)를 수정하려고 한 경우, TypeError 를 반환합니다. 예외의 경우도 있는데 다음과 같은 상황에서는 동작합니다.