无需登录 数据私有 本地保存

CORS 请求构建器 - 自定义跨域请求头测试

77
0
0
0

术语表

CORS
Cross-Origin Resource Sharing,跨域资源共享。一种浏览器安全机制,允许Web服务器声明哪些外部源可以访问其资源。CORS通过HTTP响应头(如Access-Control-Allow-Origin)来配置跨域访问策略,浏览器根据这些头部决定是否允许JavaScript代码读取跨域响应。CORS是同源策略的补充和扩展机制。
同源策略
Same-Origin Policy,浏览器的基础安全策略。限制一个源(协议+域名+端口)的文档或脚本如何与另一个源的资源进行交互。同源策略阻止了恶意网站读取其他网站的敏感数据,但同时也限制了合法的跨域数据访问。CORS是绕过同源策略限制的安全机制,允许服务器显式授权跨域访问。
简单请求
Simple Request,满足以下条件的CORS请求:HTTP方法为GET、HEAD或POST;不包含除以下之外的自定义请求头:Accept、Accept-Language、Content-Language、Content-Type(仅限三个安全值);Content-Type为application/x-www-form-urlencoded、multipart/form-data或text/plain之一。简单请求直接发送,浏览器在响应中检查Access-Control-Allow-Origin头部来决定是否允许JavaScript读取响应。
预检请求
Preflight Request,浏览器在发送某些跨域请求之前自动发送的OPTIONS请求。预检请求用于询问服务器是否允许实际请求的方法、头部和凭证。触发预检的条件包括:使用PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH等非简单方法;包含自定义请求头;Content-Type不是三个安全值之一。预检通过后浏览器才会发送实际请求。
Access-Control-Allow-Origin
CORS响应头,指定允许访问资源的源。值可以是具体的源(如https://example.com)、通配符*(允许所有源)或null。当请求携带凭证(credentials: include)时,Allow-Origin不能使用通配符,必须指定具体的源。多个源可以通过动态匹配Origin头部的值来返回对应的源。
Access-Control-Allow-Methods
CORS预检响应头,指定服务器允许的HTTP方法列表。值为逗号分隔的方法名称,如GET, POST, PUT, DELETE。仅在预检响应中有效。如果实际请求的方法不在Allow-Methods列表中,浏览器会阻止请求。
Access-Control-Allow-Headers
CORS预检响应头,指定服务器允许的请求头列表。值为逗号分隔的头部名称。CORS安全头部(Accept、Accept-Language、Content-Language等)不需要在此声明。自定义头部(如Authorization、X-Custom-Header等)必须在Allow-Headers中声明,否则预检会失败。
Access-Control-Allow-Credentials
CORS响应头,指示服务器是否允许在请求中携带凭证(Cookie、Authorization头部等)。值为true或false(默认)。当设置为true时,Access-Control-Allow-Origin不能使用通配符。浏览器在发送凭证跨域请求时会自动包含Cookie,但Access-Control-Allow-Credentials: true是JavaScript代码读取响应的前提条件。
credentials选项
Fetch API和XMLHttpRequest的credentials选项,控制请求中是否包含凭证信息。omit不发送任何凭证;same-origin仅在同源请求时发送Cookie等凭证;include在所有请求(包括跨域)中发送凭证。选择include时必须确保服务器设置Access-Control-Allow-Credentials: true和具体的Access-Control-Allow-Origin。
请求模式
Fetch API的mode选项,控制请求的跨域行为。cors(默认)允许跨域请求,服务器必须返回有效的CORS头部才能读取响应;no-cors不透明模式,请求可以发送但无法读取响应内容,适用于不需要读取响应的跨域资源加载;same-origin仅允许同源请求,跨域请求会直接抛出网络错误。