同源策略、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 协议。