실행 전 테이블 요청
이 Preflight Table Request
작업은 요청을 보내기 전에 Azure Table Storage에 대한 CORS(원본 간 리소스 공유) 규칙을 쿼리합니다.
웹 브라우저 또는 다른 사용자 에이전트는 에이전트가 만들려는 요청에 대한 원본 도메인, 메서드 및 헤더를 포함하는 실행 전 요청을 보냅니다. Table Storage에 CORS를 사용하도록 설정한 경우 Table Storage는 계정 소유자가 테이블 서비스 속성 설정을 통해 구성한 CORS 규칙에 대해 실행 전 요청을 평가합니다. 그런 다음 Table Storage는 요청을 수락하거나 거부합니다.
CORS 및 실행 전 요청에 대한 자세한 내용은 Azure Storage 에 대한 CORS 사양 및 CORS 지원을 참조하세요.
요청
다음과 같이 지정할 Preflight Table Request
수 있습니다.
<account-name>
을 스토리지 계정 이름으로 바꿉니다. 을 요청의 대상이 될 테이블 리소스의 이름으로 바꿉 <table-resource>
있습니다.
HTTP 동사 | 요청 URI | HTTP 버전 |
---|---|---|
OPTIONS |
http://<account-name> .table.core.windows.net/<table-resource> |
HTTP/1.1 |
호스트 이름을 URI의 경로 및 쿼리 부분과 분리하려면 항상 URI에 슬래시(/)가 포함되어야 합니다. 이 작업의 경우 URI의 경로 부분이 비어 있거나 테이블 리소스를 가리킬 수 있습니다.
리소스는 실행 전 요청이 이루어진 시점에 존재할 수도 있고 존재하지 않을 수도 있습니다. 실행 전 요청은 서비스의 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-Allow-Origin |
실행 전 요청이 성공하면 요청의 원본 헤더와 일치하는 허용된 원본을 나타냅니다. |
Access-Control-Allow-Methods |
실행 전 요청이 성공하면 이 헤더는 요청 Access-Control-Request-Method 헤더 에 지정된 값 또는 값으로 설정됩니다. |
Access-Control-Allow-Headers |
실행 전 요청이 성공하면 이 헤더는 요청 Access-Control-Request-Headers 헤더 에 지정된 값 또는 값으로 설정됩니다. |
Access-Control-Max-Age |
사용자 에이전트가 향후 요청에 대한 실행 전 요청을 캐시할 수 있는 시간을 지정합니다. |
Access-Control-Allow-Credentials |
자격 증명을 통해 요청을 수행할 수 있는지 여부를 나타냅니다. 이 헤더는 항상 true 로 설정됩니다. |
응답 본문
없음
권한 부여
작업은 Preflight Table Request
항상 익명으로 실행됩니다. 권한 부여가 필요하지 않으며 제공된 경우 자격 증명을 무시합니다.
참고
Azure Storage 분석을 사용하도록 설정하고 메트릭을 로깅하는 경우 작업에 대한 Preflight Table Request
호출은 로 AnonymousSuccess
기록됩니다. 이러한 이유로 Azure Portal 메트릭을 보면 에 대한 Preflight Table Request
로깅이 표시됩니다AnonymousSuccess
. 이 메트릭은 개인 데이터가 손상되었음을 나타내는 것이 아니라 Preflight Table Request
상태 코드 200(OK)으로 작업이 성공했음을 나타냅니다.
샘플 요청 및 응답
다음 예제에서는 원본 www.contoso.com
에 대한 실행 전 요청을 보냅니다. 요청 메서드는 로 PUT
설정되고 요청 헤더는 및 accept
로 content-type
설정됩니다.
OPTIONS http://myaccount.table.core.windows.net/mytable 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(사용할 수 없음)으로 응답합니다. 이 경우 요청은 청구되지 않습니다.
요청 형식이 OPTIONS
잘못된 경우 서비스는 상태 코드 400(잘못된 요청)으로 응답하고 요청은 청구되지 않습니다. 형식이 잘못된 요청의 예는 필수 Origin
및 Access-Control-Request-Method
헤더를 포함하지 않는 요청입니다.
실행 전 요청은 특정 스토리지 계정과 연결된 스토리지 서비스의 CORS 기능을 쿼리하는 메커니즘입니다. 실행 전 요청은 특정 리소스를 대상으로 하지 않습니다.