ZOS对象存储跨域资源访问的实现和使用
本文分享自天翼云开发者社区《ZOS对象存储跨域资源访问的实现和使用》,作者:对象存储二三事
跨域的定义
跨域指的是从一个域名去请求另外一个域名的资源,即跨域名请求。跨域时,浏览器不能执行其他域名网站的脚本,这是由浏览器的同源策略造成的,是浏览器施加的安全限制。同源策略是一种约定,是浏览器最核心也最基本的安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源 ,这是一个用于隔离潜在恶意文件的重要安全机制。
同源的定义
所谓同源是指:请求的url与当前网页的协议、域名、端口三者都相同,只要三者之间有一个不同,就不是同源,发送的请求即跨域请求。基于同源策略,浏览器都会阻止跨域请求,如下图所示:

CORS
CORS是一个W3C标准,全称是跨域资源共享(cross-origin resource sharing),它克服了浏览器同源策略的限制,允许浏览器向跨域服务器发出跨域请求。目前所有主流的浏览器都支持CORS,整个CORS通信过程,都是浏览器自动完成,不需要用户参与。所以只要服务器实现了CORS接口,就可以实现跨域通信。浏览器将CORS跨域请求分为两类:简单请求和非简单请求。
简单请求必须同时满足以下两点要求:
(1)HTTP请求方法是以下三种之一:
HEAD
GET
POST
(2)只包含简单HTTP请求头,即:
Accept,
Content-Language,
Content-Type: 只限于application/x-www-form-urlencoded, multipart/form-data, 或者text/plain三者之一。
简单请求之外的请求就是非简单请求。
对于简单请求,浏览器直接发出CORS请求。具体来说,就是在请求头之中,增加一个Origin字段。Origin字段用来说明,本次请求来自哪个源,服务器根据这个值,决定是否同意这次请求。对于非简单请求,浏览器会在正式通信之前,先发送一次预检请求,即OPTIONS请求。浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP请求方法和请求头字段。只有得到肯定答复,浏览器才会正式与请求服务器进行通信,否则浏览器就会报错。
ZOS对象存储跨域资源访问的实现和使用
ZOS对象存储底层实现了CORS跨域资源共享。通过在bucket资源上设置CORS规则,指定允许访问的源、允许访问的HTTP请求方法、允许的HTTP请求头以及允许返回的响应头等。当用户发送跨域请求到ZOS对象存储,后端会对该请求进行检查,如果是允许访问的源、允许访问的请求方法等,则允许跨域访问,否则拒绝跨域请求。用户可以通过天翼云控制台或者SDK的方式对bucket资源设置CORS规则,推荐使用天翼云控制台进行配置,操作简单且明了:
(1)进入bucket详情页,选择权限管理,跨域设置,如下图所示:

(2) 通过天翼云控制台创建的bucket,默认都会有一条允许天翼云控制台的CORS规则,点击创建策略可以新增CORS规则,如下图所示:


用户设置过跨域规则之后,即可通过浏览器向后端ZOS对象存储发送跨域请求,并正常通信。
ZOS对象存储跨域资源访问的实现和使用的更多相关文章
- CORSFilter 跨域资源访问
CORS 定义 Cross-Origin Resource Sharing(CORS)跨来源资源共享是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略,是 ...
- JAVA跨域资源访问CORSFilter
当一个资源从与该资源本身所在的服务器不同的域或端口不同的域或不同的端口请求一个资源时,资源会发起一个跨域 HTTP 请求. 出于安全考虑,浏览器会限制从脚本内发起的跨域HTTP请求.跨域资源共享机制允 ...
- apache如何解决跨域资源访问
很多时候,大中型网站为了静态资源分布式部署,加快访问速度,减轻主站压力,会把静态资源(例如字体文件.图片等)放在独立服务器或者CDN上,并且使用独立的资源域名(例如res.test.com) 但是在实 ...
- jsonp实现跨域资源访问
平时项目中处理ajax跨域资源请求时,例如www.example2.com上的某个页面要请求www.example1.com的数据,我们使用得较多的是jsonp方式.jsonp通过JavaScript ...
- ubuntu-apache如何解决跨域资源访问
参考:http://blog.csdn.net/emily201314/article/details/52877277 步骤1 #打开apache的headers模块 sudo a2enmod he ...
- WebApi系列~开放的CORS,跨域资源访问对所有人开放
回到目录 之前有客户问我,如何AJAX跨域post,这个问题挺有意思,在我们看来,我是不被允许的,因为它是不安全的,但随着web api的火热,这个东西也被人们一步步的接受了,确实,有时,我们的接口希 ...
- Spring Security (CORS)跨域资源访问配置
1.CORS介绍 CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing).它允许浏览器向跨源(协议 + 域名 + 端口)服务 ...
- 来吧学学.Net Core之登录认证与跨域资源使用
序言 学习core登录认证与跨域资源共享是越不过的砍,所以我在学习中同样也遇到啦这两个问题,今天我们就用示例来演示下使用下这2个技术点吧. 本篇主要内容如下: 1.展示一个登录认证的简单示例 2.跨域 ...
- JSONP、图片Ping、XMLHttpRequest2.0等跨域资源请求(CORS)
跨域:当协议.主域名.子域名.端口号中任意一个不相同时都不算同一个域,而在不同域之间请求数据即为跨域请求.解决方法有以下几种(如有错误欢迎指出)以请求图片url为例: 1.通过XMLHttpReque ...
- JavaScript跨域资源请求(CORS)解决方案
跨域:当协议.主域名.子域名.端口号中任意一个不相同时都不算同一个域,而在不同域之间请求数据即为跨域请求.解决方法有以下几种(如有错误欢迎指出)以请求图片url为例: 1.通过XMLHttpReque ...
随机推荐
- 一文详解:项目如何从Docker慢慢演变成了K8s部署
今天,我们将深入探讨一个项目部署的演变过程.在这篇文章中,为了紧扣主题,我们将从 Docker 开始讲解,分析为什么一个传统的项目逐步演变成了今天流行的 Kubernetes(K8s)集群部署架构.我 ...
- css var实现网页换肤
前情 最近在做需求开发,要求根据后台传来的配置对网页换肤,按以往的换肤思路应该是写好几套样式做切换达到换肤效果,但是现在想做到能根据后台配置动态修改. 原理 通过css3新增变量特性,把颜色定义为变量 ...
- Dockerfile轻松打包jar包生成docker
1. 创建java目录 mkdir /home/java/ cd /home/java/ 2. 创建Dockerfile #FROM openjdk:8-jdk-alpine #ADD *.jar a ...
- Vue2 面试题 (2023-09-22更新)
基础 Vue2.0 兼容 ie 哪个版本? 不支持 ie8,部分兼容 ie9,完全兼容 ie10 因为 vue 的响应式原理是基于 es5 的 Object.defineProperty 这个方法不支 ...
- Flutter自动生成安卓和IOS图标
flutter_launcher_icons 用这个库自动生成 首先添加依赖 dev_dependencies: flutter_launcher_icons: flutter_icons: andr ...
- KTL 用C++14写公式的K线工具 - 0.9.3版
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- 关于 VMware 与 WSL 在 Win11 虚拟化的一些问题
关于 VMware 与 WSL 在 Win11 虚拟化的一些问题 VMware 虚拟化问题 之前用虚拟机做计网 GNS3 组网实验的时候需要用到虚拟机虚拟化,然后一直显示虚拟化不成功,检查过 BIOS ...
- 【Python】【爬虫】【爬狼】004_正则规则模板及其应用
# 正则规则模板 与 应用(一) 先看这些视频,是在哪个div里面的 for datapage in soup.find_all("div", class_="lpic& ...
- Spirng Data JPA 之Specification中and、or的使用
项目中,有的地方存值以逗号分隔的方式来存储,但查询的时候是需要满足单个值或者多个值条件查询,因此用到Specification中and.or组合使用,此文用来记录,以防后用. 描述:parentCod ...
- Spring Security并结合JWT实现用户认证(Authentication) 和用户授权(Authorization)
引言在Web应用开发中,安全一直是非常重要的一个方面.Spring Security基于Spring 框架,提供了一套Web应用安全性的完整解决方案. JwT (JSON Web Token) 是当前 ...