Enviar pesquisa
Carregar
你不知道的HTTP 之 跨域XHR
•
Transferir como PPTX, PDF
•
18 gostaram
•
1,851 visualizações
F
fool2fish
Seguir
RDSS: 特定领域解决方案研究。 我们致力于已有的规范、解决方案、产品等研究, 并实践到工作中。 本章讲述了跨域XHR的实现。
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 22
Baixar agora
Recomendados
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
Lorex L. Yang
数据库与ssd的实践与探索-2011数据库技术大会
数据库与ssd的实践与探索-2011数据库技术大会
freezr
Hdfs
Hdfs
jiang yu
FHIR Server 安裝與使用
FHIR Server 安裝與使用
Lorex L. Yang
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
Lorex L. Yang
Redis介绍
Redis介绍
zhaolinjnu
鳳山高中/網頁應用程式開發入門 I
鳳山高中/網頁應用程式開發入門 I
Lorex L. Yang
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
Recomendados
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
Lorex L. Yang
数据库与ssd的实践与探索-2011数据库技术大会
数据库与ssd的实践与探索-2011数据库技术大会
freezr
Hdfs
Hdfs
jiang yu
FHIR Server 安裝與使用
FHIR Server 安裝與使用
Lorex L. Yang
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
Lorex L. Yang
Redis介绍
Redis介绍
zhaolinjnu
鳳山高中/網頁應用程式開發入門 I
鳳山高中/網頁應用程式開發入門 I
Lorex L. Yang
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
scrapy+sphinx搭建搜索引擎
scrapy+sphinx搭建搜索引擎
Ping Yin
Redis 常见使用模式分析
Redis 常见使用模式分析
vincent253
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
iammutex
Hdfs raid migration to hadoop 1.x
Hdfs raid migration to hadoop 1.x
Jiang Yu
分布式爬虫
分布式爬虫
drewz lin
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
dennis zhuang
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
dennis zhuang
统一接入的架构思考
统一接入的架构思考
yang bingwu
Mongo db 簡介
Mongo db 簡介
昱劭 劉
Ch8 file system management(2013 ncu-nos_nm)
Ch8 file system management(2013 ncu-nos_nm)
Kir Chou
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
dong yuwei
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
國昭 張
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)
Robbin Zhao
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
frogd
几种Nosql介绍
几种Nosql介绍
taotao1240
伪静态
伪静态
huanghua581
Redis 介绍 -田琪
Redis 介绍 -田琪
Shaoning Pan
Mongo db 特性
Mongo db 特性
Hermes Chiang
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
Frank Cai
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
rewinx
Html5
Html5
cazhfe
用戶端攻擊與防禦
用戶端攻擊與防禦
Taien Wang
Mais conteúdo relacionado
Mais procurados
scrapy+sphinx搭建搜索引擎
scrapy+sphinx搭建搜索引擎
Ping Yin
Redis 常见使用模式分析
Redis 常见使用模式分析
vincent253
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
iammutex
Hdfs raid migration to hadoop 1.x
Hdfs raid migration to hadoop 1.x
Jiang Yu
分布式爬虫
分布式爬虫
drewz lin
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
dennis zhuang
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
dennis zhuang
统一接入的架构思考
统一接入的架构思考
yang bingwu
Mongo db 簡介
Mongo db 簡介
昱劭 劉
Ch8 file system management(2013 ncu-nos_nm)
Ch8 file system management(2013 ncu-nos_nm)
Kir Chou
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
dong yuwei
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
國昭 張
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)
Robbin Zhao
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
frogd
几种Nosql介绍
几种Nosql介绍
taotao1240
伪静态
伪静态
huanghua581
Redis 介绍 -田琪
Redis 介绍 -田琪
Shaoning Pan
Mongo db 特性
Mongo db 特性
Hermes Chiang
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
Frank Cai
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
rewinx
Mais procurados
(20)
scrapy+sphinx搭建搜索引擎
scrapy+sphinx搭建搜索引擎
Redis 常见使用模式分析
Redis 常见使用模式分析
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
Hdfs raid migration to hadoop 1.x
Hdfs raid migration to hadoop 1.x
分布式爬虫
分布式爬虫
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
统一接入的架构思考
统一接入的架构思考
Mongo db 簡介
Mongo db 簡介
Ch8 file system management(2013 ncu-nos_nm)
Ch8 file system management(2013 ncu-nos_nm)
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
几种Nosql介绍
几种Nosql介绍
伪静态
伪静态
Redis 介绍 -田琪
Redis 介绍 -田琪
Mongo db 特性
Mongo db 特性
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
Semelhante a 你不知道的HTTP 之 跨域XHR
Html5
Html5
cazhfe
用戶端攻擊與防禦
用戶端攻擊與防禦
Taien Wang
Rest与面向资源的web开发
Rest与面向资源的web开发
topgeek
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術
Yu Lung Shao
Real time web实时信息流推送
Real time web实时信息流推送
yongboy
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
yongboy
Javascript加载总结
Javascript加载总结
衡锋 阳
白玉磊 Webrebuild
白玉磊 Webrebuild
裕波 周
石玉磊 Web rebuild
石玉磊 Web rebuild
Webrebuild
互联网创业服务器运维工具集
互联网创业服务器运维工具集
zhen chen
Artifacts management with CI and CD
Artifacts management with CI and CD
Chen-Tien Tsai
網路安全
網路安全
Alexander Shieh
網路安全20140911@INFOR
網路安全20140911@INFOR
Alexander Shieh
移动端Web开发性能优化实践
移动端Web开发性能优化实践
Mingel Zhang
Node分享 展烨
Node分享 展烨
tb-vertical-guide
Web coding principle
Web coding principle
ZongYing Lyu
Lamp架构下的web开发
Lamp架构下的web开发
ops_bd
浅析浏览器解析和渲染
浅析浏览器解析和渲染
Ailsa126
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
Li JianYe
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
self study
Semelhante a 你不知道的HTTP 之 跨域XHR
(20)
Html5
Html5
用戶端攻擊與防禦
用戶端攻擊與防禦
Rest与面向资源的web开发
Rest与面向资源的web开发
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術
Real time web实时信息流推送
Real time web实时信息流推送
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
Javascript加载总结
Javascript加载总结
白玉磊 Webrebuild
白玉磊 Webrebuild
石玉磊 Web rebuild
石玉磊 Web rebuild
互联网创业服务器运维工具集
互联网创业服务器运维工具集
Artifacts management with CI and CD
Artifacts management with CI and CD
網路安全
網路安全
網路安全20140911@INFOR
網路安全20140911@INFOR
移动端Web开发性能优化实践
移动端Web开发性能优化实践
Node分享 展烨
Node分享 展烨
Web coding principle
Web coding principle
Lamp架构下的web开发
Lamp架构下的web开发
浅析浏览器解析和渲染
浅析浏览器解析和渲染
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
你不知道的HTTP 之 跨域XHR
1.
跨域 XHR 你不知道的 HTTP
RDSS 小组 2012-04
2.
作者
沉鱼 fool2fish@gmail.com http://fool2fish.cn
3.
关于 RDSS Research on Domain
Specific Solution 我们致力于已有的规范、解决方案、产品等研究 并实践到工作中
4.
演示 http://fool2fish.aliapp.com/rdss/http/xhr. html 服务器端源码 http://fool2fish.aliapp.com/rdss/http/ser
ver.js
5.
目录 •
Ajax 结构 • 参考资料 • 简单请求 • Preflight 请求 • 带验证的请求 • 兼容性
6.
Ajax 结构
Ajax getScript jsonp Xhr Same Cross origin domain Get post Get post
7.
参考资料 • Cross-Origin Resource
Sharing – w3c • Cross-domain Ajax with Cross-Origin Resource Sharing - ncz • HTTP access control (CORS) – mdn • http://arunranga.com/examples/acces s-control/ (demo)
8.
• Cross-Origin Resource
Sharing (CORS)是W3c工作草案,它定义了在 跨域访问资源时浏览器和服务器之间 如何通信。CORS背后的基本思想是 使用自定义的HTTP头部允许浏览器和 服务器相互了解对方,从而决定请求 或响应成功与否。
9.
简单请求
10.
浏览器 • 对一个简单的请求,没有自定义头部,
要么使用GET,要么使用POST,它的 Content-type为text/plain,请求会发送 一个名叫Orgin的额外的头部。 例:Origin: http://fool2fish.cn Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
11.
服务器 • 如果服务器确定请求被通过,它将发
送一个Access-Control-Allow-Origin头 部响应发送请求的同一个源,如果是 一个公共资源,则返回“*”。 例:Access-Control-Allow-Origin: http://fool2fish.cn Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
12.
• 注意,请求和响应都不包括cookie信
息。 Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
13.
• FF3.5 +,Safari
4和chrome通过使用 XMLHttpRequest对象支持其使用。在 IE8中也是一样,用同样的方式你需要 使用XDomainRequest对象。 Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
14.
Preflight 请求
15.
Browser • 除了GET或POST,通过一种称之为
preflighted请求的服务器透明验证机制, CORS允许使用自定义的头部和方法,以 及不同主体内容类型。当你尝试使用高级 选项中的一个来试着建立一个请求时,这 时就建立了一个preflighted请求。该请求 使用可选的方法,并发送如下头部: – Origin – Access-Control-Request-Method – Access-Control-Request-Headers Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
16.
Server • 在请求期间,服务器能决定是否允许
这类请求。服务器通过在响应中发送 以下头部来与浏览器通信。 – Access-Control-Allow-Origin – Access-Control-Allow-Methods – Access-Control-Allow-Headers – Access-Control-Max-Age Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
17.
• preflighted 请求一旦作出,结果将按
响应中规定的时间缓存下来;第一次 做出这样的请求,你将引发一次额外 的HTTP请求。 • Firefox 3.5+, Safari 4+和Chrome都支 持preflighted 请求,IE8则不支持。 Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
18.
带验证的请求
19.
Browser • 默认状态下,跨域请求不提供证书
(cookie、HTTP身份验证、客户端SSL 证书)。你可以规定一个请求应该通过设 置withCredentials属性为true来发送证书。 如果服务器允许credentialed请求,那么 它将用下面的头部作出响应: 例:Access-Control-Allow-Credentials: true Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
20.
Server • 如果一个credentialed请求被发送,而
这个头部没在响应头中相应的返回, 浏览器不会将响应传递给 JavaScript(responseText是一个空字 符串,状态为0,onerror()被调用)。 Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
21.
• IE8不支持withCredentials属性,irefox
3.5+, Safari 4+和Chrome都支持它。 Refer: Cross-domain Ajax with Cross-Origin Resource Sharing - ncz
22.
兼容性
ie6 ie7 ie8 ie9 chrom firefox safari e xd xhr no no XDom yes yes yes yes ainReq uest withCredentia no no no yes yes yes Yes ls solution swf swf swf xhr xhr xhr xhr
Baixar agora