Red de conocimiento informático - Aprendizaje de programación - http ¿Qué es el dominio cruzado de Cors?

http ¿Qué es el dominio cruzado de Cors?

En el desarrollo front-end, a menudo se requieren solicitudes entre dominios. Dado que se menciona el dominio cruzado, primero debemos saber cuál es la "política del mismo origen".

La Política del Mismo Origen restringe cómo los documentos o scripts cargados desde una fuente interactúan con los recursos de otra fuente. Este es un mecanismo de seguridad crítico para aislar archivos potencialmente maliciosos.

Dos páginas tienen el mismo origen si el protocolo, el puerto (si se especifica uno) y el nombre de dominio son los mismos para ambas páginas.

Dentro de la misma fuente el acceso a los recursos es muy gratuito. Como en tu propia casa, puedes abrir el frigorífico y hacer lo que quieras. Si desea acceder a recursos de diferentes fuentes, no es tan libre. Esto es entre dominios.

En cuanto a dominios cruzados, debes conocer el JSONP de uso común. ¿Cuál es el principio de JSONP? Echemos un vistazo a la explicación del gran dios He Shijun:

Es muy simple, simplemente use la "laguna" (reliquia histórica) que la etiqueta lt;scriptgt no tiene restricciones entre dominios para lograr. el propósito de comunicarse con un tercero. Cuando se requiere comunicación, el script en este sitio web crea un elemento "scriptgt", la dirección apunta a la URL de la API de terceros y proporciona una función de devolución de llamada para recibir datos (el nombre de la función se puede acordar o pasar a través de la dirección parámetro). La respuesta generada por el tercero es un contenedor de datos json (por eso se llama jsonp, es decir, relleno json. De esta manera, el navegador llamará a la función de devolución de llamada y pasará el objeto json analizado como parámetro). El script del sitio web puede procesar los datos entrantes en la función de devolución de llamada.

Puedes saber que JSONP es una existencia similar a un error. Si eres un programador con misofobia, recordarás y dirás: Esto no es razonable, esto es limpio. Por lo tanto obtenemos cors.

Entonces, ¿qué es cors?

Echemos un vistazo a la explicación de la enciclopedia interactiva:

CORS (Cross-Origin Resource Sharing) es una especificación de tecnología de navegador que proporciona servicios web desde diferentes dominios El método para pasar scripts sandbox Para evitar la política del mismo origen del navegador, existe una versión moderna del patrón JSONP.

Explicación de Wikipedia (manual de Google):

El intercambio de recursos entre orígenes (CORS) es un mecanismo que permite solicitar recursos restringidos (por ejemplo, fuentes) en una página web desde otro dominio. fuera del dominio desde el que se sirvió el primer recurso.

Desde este punto de vista, de hecho, cors es una especificación y un mecanismo basado en esta especificación, se pueden solicitar recursos entre diferentes fuentes. Es como la regla de un río y un lago. Todo el mundo debería seguir las reglas, ¿verdad? ¿No seguir las reglas? Lo creas o no, te daré un puñetazo con mi pequeño puño.

Entonces, si desea utilizar cors para acceso entre dominios, debe seguir las reglas. Echemos un vistazo a cuáles son las reglas.

El estándar de uso compartido entre orígenes permite el uso de solicitudes HTTP entre orígenes en los siguientes escenarios:

Hay un término en cors llamado "solicitud simple", si la solicitud cumple Si se cumplen todas las condiciones siguientes, la solicitud puede considerarse como una "solicitud simple":

Utilice uno de los siguientes métodos:

La razón por la que se distinguen las solicitudes simples es que cors requiere Handle Algunas "solicitudes no simples". Este procesamiento especial se denomina "solicitud de verificación previa". Cuando llega un pez gordo, hay que prepararse con antelación, cierres de carreteras y todo eso.

La función de la solicitud de verificación previa es saber de antemano si el servidor permite la solicitud real. El uso de una "solicitud de verificación previa" puede evitar que las solicitudes entre dominios tengan efectos inesperados en los datos del usuario del servidor.

Una imagen puede ver claramente la solicitud de cors para enviar la solicitud de verificación previa por adelantado

Encabezados de solicitud:

Encabezado de respuesta:

cors Uso en koa:

Enlaces relacionados: