Fetch 기본 개념
Fetch API는 네트워크 통신을 포함한 리소스 취득을 위한 인터페이스가 정의되어 있습니다. XMLHttpRequest
와 같은 비슷한 API가 존재합니다만, 새로운 Fetch API는 좀더 강력하고 유연한 조작이 가능합니다. 이 글에서는 Fetch API의 기본 개념을 설명합니다.
참고: 이 문서는 수시로 갱신됩니다. 더 자세한 설명이 필요하다고 생각하시는 Fetch 개념이 있으시면 MDN Web Docs 채팅에서 문의해 주세요.
훑어보기
가드
가드는 Headers
객체의 기능으로, 헤더가 사용하고 있는 장소에 따라 immutable
, request
, request-no-cors
, response
, none
의 값을 사용할 수 있습니다.
새로운 Headers
객체는 Headers()
생성자로 생성되면 그 가드는 none
(기본 값)으로 설정됩니다. Request
또는 Response
객체가 생성되면 관계된 Headers
객체를 가지는데, 그 가드는 다음과 같습니다.
새로운 객체의 타입 | 생성자 | 관계된 Headers 객체의 가드 설정 |
---|---|---|
Request |
Request() |
request |
no-cors의 mode 를
설정한 Request()
|
request-no-cors |
|
Response |
Response() |
response |
error() 메서드나
redirect() 메서드
|
immutable |
헤더 가드는 헤더의 콘텐츠를 변경하는 set()
, delete()
, append()
메서드에 영향을 끼칩니다. 가드는 immutable
의 Headers
를 수정하려고 한 경우, TypeError
를 반환합니다. 예외의 경우도 있는데 다음과 같은 상황에서는 동작합니다.
- 가드가
request
에서 헤더의 이름이 forbidden header name 가 아닌 경우 - 가드가
request-no-cors
에서 헤더의name
또는value
값이 simple header 인 경우 - 가드가
response
며 헤더의 이름이 forbidden response header name 가 아닌 경우