

# 부록: OPTIONS 객체
<a name="RESTOPTIONSobject"></a>

## 설명
<a name="RESTOPTIONSobject-description"></a>

브라우저는 이 사전 요청을 Amazon S3에 전송하여 특정 오리진, HTTP 메서드 및 헤더를 사용하여 실제 요청을 전송할 수 있는지 확인할 수 있습니다.

Amazon S3는 버킷에 `cors` 하위 리소스를 추가할 수 있도록 하여 교차 오리진 리소스 공유(CORS)를 지원합니다. 브라우저가 이 사전 요청을 전송하면 Amazon S3는 `cors` 구성에 정의된 규칙을 평가하여 응답합니다.

버킷에서 `cors`가 활성화되지 않은 경우 Amazon S3는 `403 Forbidden` 응답을 반환합니다.

 CORS에 대한 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [교차 오리진 리소스 공유 활성화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html)를 참조하세요.

## 요청
<a name="RESTOPTIONSobject-requests"></a>

### 구문
<a name="RESTOPTIONSobject-requests-syntax"></a>

```
1. OPTIONS /{{ObjectName}} HTTP/1.1
2. Host: {{BucketName}}.s3.amazonaws.com 
3. Origin: {{Origin}}
4. Access-Control-Request-Method: {{HTTPMethod}}
5. Access-Control-Request-Headers: {{RequestHeader}}
```

### 요청 파라미터
<a name="RESTOPTIONSobject-requests-request-parameters"></a>

 이 작업은 특정 요청 파라미터를 도입하지 않지만 실제 요청에 필요한 요청 파라미터를 포함할 수 있습니다.

### 요청 헤더
<a name="RESTOPTIONSobject-requests-request-headers"></a>


|  이름  |  설명  |  필수  | 
| --- | --- | --- | 
| Origin | Amazon S3에 대한 교차 오리진 요청의 오리진을 식별합니다. 예를 들면 http://www.example.com입니다.<br />유형: 문자열 <br />기본값: None |  예  | 
| Access-Control-Request-Method | 실제 요청에 사용할 HTTP 메서드를 식별합니다.<br />유형: 문자열 <br />기본값: None |  예  | 
| Access-Control-Request-Headers | 실제 요청에서 전송할 HTTP 헤더의 쉼표로 구분된 목록입니다.<br />예를 들어 서버 측 암호화를 사용하여 객체를 넣으려면 이 사전 요청은 요청에 `x-amz-server-side-encryption` 헤더를 포함할 수 있는지 여부를 결정합니다.<br />유형: 문자열 <br />기본값: None |  아니요  | 

### 요청 요소
<a name="RESTOPTIONSobject-requests-request-elements"></a>

이 작업의 구현에서는 요청 요소를 사용하지 않습니다.

## 응답
<a name="RESTOPTIONSobject-responses"></a>

### 응답 헤더
<a name="RESTOPTIONSobject-responses-response-headers"></a>


| 헤더 | 설명 | 
| --- | --- | 
| Access-Control-Allow-Origin | 요청에서 전송한 오리진입니다. 요청의 오리진이 허용되지 않는 경우 Amazon S3는 응답에 이 헤더를 포함하지 않습니다.<br />유형: 문자열 | 
| Access-Control-Max-Age | 사전 요청의 결과를 캐시할 수 있는 시간(초 단위)입니다.<br />유형: 문자열 | 
| Access-Control-Allow-Methods  | 원래 요청에서 전송된 HTTP 메서드입니다. 요청의 메서드가 허용되지 않는 경우 Amazon S3는 응답에 이 헤더를 포함하지 않습니다.<br />유형: 문자열 | 
| Access-Control-Allow-Headers  | 브라우저가 실제 요청에서 전송할 수 있는 HTTP 헤더의 쉼표로 구분된 목록입니다. 요청된 헤더가 하나라도 허용되지 않는 경우 Amazon S3는 응답에 해당 헤더를 포함하지 않으며 응답에는 `Access-Control` 접두사가 있는 헤더도 포함하지 않습니다.<br />유형: 문자열 | 
| Access-Control-Expose-Headers  | HTTP 헤더의 쉼표로 구분된 목록입니다. 이 헤더는 실제 요청에 대한 응답에 포함된 이러한 헤더에 대한 액세스 권한을 JavaScript 클라이언트에 제공합니다.<br />유형: 문자열 | 

### 응답 요소
<a name="RESTOPTIONSobject-responses-response-elements"></a>

이 작업의 구현은 응답 요소를 반환하지 않습니다.

## 예제
<a name="RESTOPTIONSobject-examples"></a>

### 예: `cors` 활성화된 버킷에 사전 OPTIONS 요청 전송
<a name="RESTOPTIONSobject-examples-example-1-configure-cors---single-rule"></a>

 브라우저는 이 사전 요청을 Amazon S3로 전송하여 http://www.example.com 오리진에서 `examplebucket`이라는 Amazon S3 버킷으로 실제 PUT 요청을 전송할 수 있는지 확인할 수 있습니다.

#### 샘플 요청
<a name="RESTOPTIONSobject-examples-example-1-configure-cors---single-rule-sample-request"></a>

```
1. OPTIONS /exampleobject HTTP/1.1
2. Host: examplebucket.s3.amazonaws.com 
3. Origin: http://www.example.com
4. Access-Control-Request-Method: PUT
```

#### 샘플 응답
<a name="RESTOPTIONSobject-examples-example-1-configure-cors---single-rule-sample-response"></a>

```
 1. HTTP/1.1 200 OK
 2. x-amz-id-2: 6SvaESv3VULYPLik5LLl7lSPPtSnBvDdGmnklX1HfUl7uS2m1DF6td6KWKNjYMXZ
 3. x-amz-request-id: BDC4B83DF5096BBE
 4. Date: Wed, 21 Aug 2012 23:09:55 GMT
 5. Etag: "1f1a1af1f1111111111111c11aed1da1"
 6. Access-Control-Allow-Origin: http://www.example.com
 7. Access-Control-Allow-Methods: PUT
 8. Access-Control-Expose-Headers: x-amz-request-id
 9. Content-Length: 0
10. Server: AmazonS3
```

## 관련 리소스
<a name="RESTOPTIONSobject-related-resources"></a>
+  [GetBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html) 
+  [DeleteBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) 
+  [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) 