실행 전 Blob 요청

Preflight Blob Request 작업은 실제 요청을 보내기 전에 Blob 서비스에 대한 CORS(크로스-원본 자원 공유) 규칙을 쿼리합니다. 웹 브라우저 또는 다른 사용자 에이전트는 원하는 실제 요청에 대한 원본 도메인, 메서드 및 헤더가 포함된 실행 전 요청을 보냅니다. Blob 서비스에 대해 CORS를 사용하도록 설정한 경우 Blob 서비스는 계정 소유자가 Blob 서비스 속성 집합을통해 구성한 CORS 규칙에 대해 프리플라이트 요청을 평가하고 요청을 수락하거나 거부합니다.

CORS 및 프리플라이트 요청에 대한 자세한 내용은 스토리지 서비스에 대한 CORS 사양CORS 지원을 참조하십시오.

요청

다음과 같이 Preflight Blob Request을 지정할 수 있습니다. <account-name>을 스토리지 계정 이름으로 바꿉니다. <blob-resource>를 실제 요청의 대상이 될 컨테이너 또는 blob 리소스로 바꿉니다.

HTTP 동사 요청 URI HTTP 버전
OPTIONS http://<account-name>.blob.core.windows.net/<blob-resource> HTTP/1.1

경로의 호스트 이름과 URI의 쿼리 부분을 구분하기 위해 URI에는 항상 슬래시(/)가 포함되어야 합니다. 이 작업의 경우 URI의 경로 부분이 비어 있거나 컨테이너 또는 blob 리소스를 가리킬 수 있습니다. 리소스는 실행 전 요청이 수행될 때 있을 수도 있고 없을 수도 있습니다. 실행 전 요청은 서비스 수준에서 서비스의 CORS 규칙에 대해 평가되므로 리소스 이름의 존재 유무는 작업의 성공이나 실패에 영향을 미치지 않습니다.

URI 매개 변수

없음

요청 헤더

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

요청 헤더 Description
Origin 필수 사항입니다. 실제 요청이 실행될 원본을 지정합니다. 원본은 실행 전 요청의 성공이나 실패를 결정하기 위해 서비스의 CORS 규칙에 대해 확인됩니다.
Access-Control-Request-Method 필수 사항입니다. 실제 요청의 메서드(또는 HTTP 동사)를 지정합니다. 메서드는 실행 전 요청의 성공이나 실패를 결정하기 위해 서비스의 CORS 규칙에 대해 확인됩니다.
Access-Control-Request-Headers (선택 사항) 전송될 실제 요청의 헤더를 지정합니다. 이 경우 서비스는 실제 요청과 함께 헤더가 전송되지 않는다고 간주합니다.

요청 본문

없음

응답

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

상태 코드

작업에 성공하면 상태 코드 200(정상)이 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드를참조하십시오.

응답 헤더

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을준수합니다.

프리플라이트 요청 헤더에 대한 자세한 내용은 CORS 사양을 참조하십시오.

응답 헤더 Description
액세스 제어 허용-원산지 실행 전 요청이 성공한 경우 요청의 원본 헤더와 일치하는 허용되는 원본입니다.
액세스 제어 허용 방법 실행 전 요청이 성공하는 경우 이 헤더는 요청 헤더 Access-Control-Request-Method에 지정된 하나 이상의 값으로 설정됩니다.
액세스 제어 허용 헤더 실행 전 요청이 성공하는 경우 이 헤더는 요청 헤더 Access-Control-Request-Headers에 지정된 하나 이상의 값으로 설정됩니다.
액세스 제어 최대 연령 사용자 에이전트가 이후 요청을 위해 실행 전 요청을 캐시할 수 있는 시간을 지정합니다.
액세스 제어 허용 자격 증명 자격 증명을 사용하여 실제 요청을 수행할 수 있는지 여부를 나타냅니다. 이 헤더는 항상 true로 설정됩니다.

응답 본문

없음

권한 부여

작업은 Preflight Blob Request 항상 익명으로 실행됩니다. 권한 부여가 필요하지 않으며 자격 증명이 제공된 경우 자격 증명을 무시합니다.

참고

Azure Storage 분석을 사용하도록 설정하고 메트릭을 로깅하는 경우 Preflight Blob Request 작업에 대한 호출이 익명성공으로기록됩니다. 이러한 이유로 Azure 포털에서 메트릭을 볼 경우 에 대해 Preflight Blob Request기록된 익명성공이 표시됩니다. 이 메트릭은 개인 데이터가 손상되었음을 나타내는 것이 아니라 Preflight Blob Request 작업이 200(확인)의 상태 코드로 성공했다는 것을 나타냅니다.

예제 요청 및 응답

다음 예제에서는 원본 www.contoso.com 대한 프리플라이트 요청을 보내고 PUT 요청 메서드는 로 content-type 설정하고 accept요청 헤더를 에 설정합니다.

OPTIONS http://myaccount.blob.core.windows.net/mycontainer/myblockblob  HTTP/1.1  
Accept: */*  
Origin: www.contoso.com  
Access-Control-Request-Method: PUT  
Access-Control-Request-Headers: content-type, accept  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)  
Content-Length: 0  
  

응답은 CORS가 서비스에 사용되고 CORS 규칙이 실행 전 요청과 일치함을 나타냅니다.

HTTP/1.1 200 OK  
Connection: Keep-Alive  
Content-Length: 0  
Content-Type: text/html; charset=UTF-8  
Access-Control-Allow-Origin: *  
Access-Control-Max-Age: 60  
Access-Control-Allow-Methods: PUT  
Access-Control-Allow-Headers: accept,content-type  
  

설명

CORS가 서비스에 사용되고 실행 전 요청과 일치하는 CORS 규칙이 있는 경우 서비스는 상태 코드 200(OK)으로 실행 전 요청에 응답합니다. 응답에는 필요한 Access-Control 헤더가 포함됩니다. 이 경우에 요청에 대해 요금이 청구됩니다.

CORS가 사용되지 않거나 실행 전 요청과 일치하는 CORS 규칙이 없는 경우 서비스는 상태 코드 403(Forbidden)으로 응답합니다. 이 경우에 요청에 대해 요금이 청구되지 않습니다.

OPTIONS 요청의 형식이 잘못된 경우 서비스는 상태 코드 400(Bad Request)으로 응답하고 요청에 대해 요금이 청구되지 않습니다. 잘못된 형식의 요청은 필요한 OriginAccess-Control-Request-Method 헤더가 포함되지 않은 요청 등입니다.

실행 전 요청은 특정 저장소 계정과 연결된 저장소 서비스의 CORS 기능을 쿼리하는 메커니즘입니다. 실행 전 요청은 특정 리소스를 대상으로 하지 않습니다.

참고 항목

계정 운영(Blob 서비스)
저장소 서비스에 대한 CORS 지원