Answer – B
The AWS documentation also states that "CloudFront caches responses to GET and HEAD requests" and, optionally, OPTIONS requests. CloudFront does not cache responses to requests that use the other methods.
As per AWS documentation,
Allowed HTTP Methods
Specify the HTTP methods that you want CloudFront to process and forward to your origin:
GET, HEAD: You can use CloudFront only to get objects from your origin or to get object headers.
GET, HEAD, OPTIONS: You can use CloudFront only to get objects from your origin, get object headers, or retrieve a list of the options that your origin server supports.
GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE: You can use CloudFront to get, add, update, and delete objects, and to get object headers. In addition, you can perform other POST operations, such as submitting data from a web form.
Note:
CloudFront caches responses to GET and HEAD requests and, optionally, OPTIONS requests. CloudFront does not cache responses to requests that use the other methods.
Based on this, Option B seems to be a better choice than
C.For more information, please visit:
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesAllowedHTTPMethods
When the CloudFront Distribution supports only "cacheable requests", it means that it supports only GET and HEAD HTTP requests (read-only). For the HTTP requests such as OPTIONS, PUT, POST, PATCH AND DELETE, the CloudFront will give an error "The distribution supports only cacheable requests".
Hence, option B is the correct answer.
There is a good question posted on StackOverflow which explains what should be done in this situation.
http://stackoverflow.com/questions/31253694/this-distribution-is-not-configured-to-allow-the-http-request