阅读时间: 3 分钟
什么是CORS,它是什么意思?
"CORS "是指 "*跨源**资源共享"。*它允许你在浏览器中从一个网站向另一个网站发出请求。
服务器托管网页、应用程序、图像和一大堆其他东西。当我们使用浏览器时,我们很可能会访问不同的网站,并浏览大量的在线内容,这些内容可能驻留在同一台服务器上,也可能不在同一台服务器上。
"这就给我们带来了一个问题:我们是如何能够在互联网上访问各种网页的?"
要理解这一点,我们首先要理解两个概念,即 "同源"和 "跨源"。
浏览器确定请求的 "来源 "是 "方案"、"主机"和 "端口"的组合。
方案
它是我们访问互联网的协议,如http://、 https://、ftp:// 等。
主机
它是资源所在的地址。例如:www.abc.com
端口
它是应用程序运行的通信端点。例如。端口:8080或8000。
同源性
"同源"政策或标准是非常严格的。如果一个文件驻留在服务器A上,那么这个文件只能与存储在服务器A上的其他文件交互。
比如说。
www.abc.com/zyx.html(URL 1)
www.abc.com/pqr.html(URL 2)
根据同源政策,我们可以使用浏览器从URL 1到URL 2,因为它们具有相同的原点,但它不能浏览这个原点之外的任何其他URL。
跨原点
来自原点之外的资源的请求被称为 "跨原点 "请求。然而,跨原点请求意味着服务器必须实现处理来自自己原点以外的请求的方法。
举例来说。
www.abc.com/zyx.html(URL 1)
www.edf.com/pqr.html(URL 2)
CORS允许服务器指定谁可以访问其资源,并定义了一种访问方式。
CORS如何管理来自外部来源的请求?
来自外部来源的请求是在 "飞行前请求"的帮助下处理的。大多数服务器将允许一个简单的 "GET"请求,但可能阻止其他请求,如 "PUT"或 "DELETE"请求。当任何像 "PUT "或 "DELETE "这样的请求被提出时,在其原始请求之前会有一个标准的飞行前请求。
飞行前请求"使用 "OPTIONS"作为头,这个飞行前请求的目的是为了确定原始请求是否安全。服务器将对飞行前请求作出响应,并表明该请求是否安全。现在这种指示是通过添加 "头 "来完成的。
一个 "头"是与一个请求或一个响应相关的信息。
CORS标准通过添加标头来管理 "跨源"请求,其中一个标头是 "访问控制-允许-起源"。这个标头用于表明响应是否可以被共享。其他被添加的重要标头有。
- "Access-Control-Allow-Methods" - 一个以逗号分隔的HTTP方法列表,Web服务器希望允许跨源请求。
- "Access-Control-Allow-Headers" - 一个以逗号分隔的列表,列出了Web服务器希望允许跨源请求的HTTP头信息。
- 如果响应头中的任何信息与实际发送的请求不一致,那么浏览器就不会发送实际的请求,以防止不必要的访问。
总结
为了允许跨源访问,我们启用了 "CORS"。根据我们发送的请求类型,设置不同的响应 "头",以绕过 "同源策略 "的限制,因为它是默认启用的。
要阅读更多的技术博客,请访问knoldus博客。