Bucket de OPTIONS
Funciones
OPTIONS se refiere a las solicitudes previas que los clientes envían a los servidores. Generalmente, las solicitudes se utilizan para comprobar si los clientes tienen permisos para realizar operaciones en servidores. Solo después de que una solicitud previa se devuelve correctamente, los clientes comienzan a ejecutar las solicitudes de seguimiento.
OBS permite que los bucket almacenen los recursos web estáticos. Los bucket de OBS pueden servir como recursos del sitio web si los bucket se usan correctamente. En este escenario, los bucket en la OBS sirven como servidores para procesar las solicitudes previas de OPTIONS de los clientes.
OBS puede procesar solicitudes previas de OPTIONS solo después de configurar CORS para bucket en OBS. Para más detalles sobre CORS, véase Configuración de Bucket CORS.
Diferencias entre el bucket OPTIONS y el objeto OPTIONS
Con el objeto OPTIONS, debe especificar un nombre de objeto en la URL, pero no se requiere un nombre de objeto con el bucket OPTIONS, que utiliza el nombre de dominio del bucket como URL. Las líneas de solicitud de los dos métodos son las siguientes:
OPTIONS /object HTTP/1.1
OPTIONS / HTTP/1.1
Sintaxis de solicitud
1 2 3 4 5 |
OPTIONS / HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: authorization Origin: origin Access-Control-Request-Method: method |
Parámetros de solicitud
Esta solicitud no contiene parámetros de mensaje.
Encabezados de solicitud
Esta solicitud utiliza los encabezados descritos en Tabla 1.
Encabezado |
Descripción |
Obligatorio |
---|---|---|
Origin |
Origen de la solicitud entre dominios especificada por la solicitud previa. Generalmente, es un nombre de dominio establecido en CORS. Tipo: string |
Sí |
Access-Control-Request-Method |
Un método HTTP que puede ser utilizado por una solicitud. La solicitud puede utilizar varios encabezados de método. Tipo: string Opciones de valor: GET, PUT, HEAD, POST, DELETE |
Sí |
Access-Control-Request-Headers |
Encabezado de HTTP de una solicitud. La solicitud puede utilizar varios encabezados HTTP. Tipo: string |
No |
Elementos de solicitud
Esta solicitud no implica ningún elemento.
Sintaxis de respuesta
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 status_code Content-Type: application/xml Access-Control-Allow-Origin: origin Access-Control-Allow-Methods: method Access-Control-Allow-Header: header Access-Control-Max-Age: time Access-Control-Expose-Headers: header Date: date Content-Length: length |
Encabezados de respuesta
La respuesta utiliza los siguientes encabezados como se describe en Tabla 2.
Encabezado |
Descripción |
---|---|
Access-Control-Allow-Origin |
Si el origen de una solicitud cumple con los requisitos de configuración de CORS del servidor, la respuesta contiene el origen. Tipo: string |
Access-Control-Allow-Headers |
Si los encabezados de una solicitud cumplen con los requisitos de configuración de CORS del servidor, la respuesta contiene los encabezados. Tipo: string |
Access-Control-Max-Age |
Valor de MaxAgeSeconds en la configuración CORS de un servidor Tipo: integer |
Access-Control-Allow-Methods |
Si el método de solicitud de control de acceso de una solicitud cumple con los requisitos de configuración de CORS del servidor, la respuesta contiene los métodos de la regla. Tipo: string Opciones de valor: GET, PUT, HEAD, POST, DELETE |
Access-Control-Expose-Headers |
Valor de ExposeHeader en la configuración CORS de un servidor Tipo: string |
Elementos de respuesta
Esta respuesta no contiene elementos.
Respuestas de error
Tabla 3 describe posibles errores especiales en la solicitud.
Código de error |
Descripción |
Código de estado de HTTP |
---|---|---|
Bad Request |
Método de solicitud de control de acceso no válido: null Cuando CORS y OPTIONS están configurados para un bucket, no se agrega ningún encabezado de método. |
400 BadRequest |
Bad Request |
Información insuficiente. Se necesita un encabezado de solicitud de origen. Cuando se configuran CORS y OPTIONS para un bucket, no se agrega ninguna cabecera de origen. |
400 BadRequest |
AccessForbidden |
CORSResponse: Esta solicitud de CORS no está permitida. Esto se debe generalmente a que la evaluación de Origin, Request Method / Access-Control-Request-Method o Access-Control-Request-Headers no está listada en la lista blanca por la especificación CORS del recurso. Cuando CORS y OPTIONS están configurados para un bucket, el origen, el método y los encabezados no coinciden con ninguna regla. |
403 Forbidden |
Para otros errores, consulte Tabla 2.
Modelo de solicitud
1 2 3 4 5 6 7 8 |
OPTIONS / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:02:15 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:7RqP1vjemo6U+Adv9/Y6eGzWrzA= Origin: www.example.com Access-Control-Request-Method: PUT |
Modelo de respuesta
1 2 3 4 5 6 7 8 9 10 11 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016436314E8FF936946DBC9C Access-Control-Allow-Origin: www.example.com Access-Control-Allow-Methods: POST,GET,HEAD,PUT,DELETE Access-Control-Max-Age: 100 Access-Control-Expose-Headers: ExposeHeader_1,ExposeHeader_2 Access-Control-Allow-Credentials: true x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCTlYimJvOyJncCLNm5y/iz6MAGLNxTuS Date: WED, 01 Jul 2015 04:02:15 GMT Content-Length: 0 |