超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

同源策略、CORS 与浏览器边界

HTTP、Web 与浏览器原理#Python全栈#第九阶段#HTTP、Web 与浏览器原理#同源策略、CORS 与浏览器边界约 851 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

浏览器如何判断两个 HTTP 页面是否同源?

追问 协议、主机与有效端口分别怎样比较?路径不同是否就属于跨域?

同源策略主要限制哪些跨源操作?

追问 跨源嵌入图片、提交表单、读取 fetch 响应与访问 iframe DOM,为什么不能套用同一个结论?

CORS 如何允许页面读取特定跨源响应?

追问 请求中的 Origin 与响应中的 Access-Control-Allow-Origin 分别由谁决定?为什么 CORS 不等于接口身份认证?

哪些常见跨源请求会触发预检?

追问 方法、头字段与 Content-Type 怎样影响判断?使用 JSON 或 Authorization 头为什么往往不同于普通表单请求?

预检请求与实际请求怎样配合?

追问 Access-Control-Request-Method、Access-Control-Request-Headers 与对应允许响应头各表达什么?预检失败时实际请求通常是否会发送?

带凭据的跨源请求需要哪些客户端与服务端配合?

追问 为什么允许来源不能简单使用通配符?即使 credentials 和 CORS 头正确,Cookie 仍可能因哪些策略不发送?

为什么响应返回 200,前端仍可能报告 CORS 错误?

追问 请求执行与脚本读取响应是怎样分开的?错误响应也缺少 CORS 头时,会怎样掩盖真正的业务错误?

前端怎样读取跨源响应中的自定义头?

追问 Access-Control-Expose-Headers 与 Access-Control-Allow-Headers 有什么区别?Set-Cookie 能否因此被普通页面脚本读取?

预检缓存与普通 HTTP 响应缓存有什么区别?

追问 Access-Control-Max-Age 控制什么?按来源变化的实际响应为什么仍需考虑 Vary 与共享缓存?

混合内容限制、CSP 与 CORS 各约束什么?

追问 HTTPS 页面请求 HTTP API、connect-src 拒绝连接和跨源响应不可读,分别应从哪些证据区分?为什么不宜统一修改 CORS 配置?

核对资料: WHATWG Fetch 标准:CORS 协议。