SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

MVP ShowCast 2013
Aplicações e serviços Web interoperáveis com o
padrão Cross-Origin Resource Sharing (CORS)
Rogério Moraes de Carvalho
Visual C#
Diretor de Tecnologia – VITA Informática
@rogeriomc
rogeriomc.wordpress.com
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

Agenda
♦User-Agent
♦Web Origin
♦Same-Origin Policy
♦JSON-P
♦Cross-Origin Resource Sharing
♦Cross-Domain AJAX com CORS
♦Demonstração: Cross-Domain AJAX com CORS
♦Documentação
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: INTEROPERABILIDADE
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

User-Agent
♦O que é um agente de usuário (user agent)?
♦ É um software que age em nome de um usuário
♦ Exemplos
♦ Browser (Chrome, Internet Explorer, Firefox, Safari, Opera, etc.)
♦ Cliente de e-mail (Outlook, Windows Mail, Mac OS X Mail, Thunderbird, etc.)

♦Cenário comum
♦ Agente de usuário como cliente num protocolo de rede usado em
comunicações cliente/servidor
♦ Exemplo
♦ O protocolo HTTP identifica o software cliente que origina uma requisição usando o
cabeçalho User-Agent
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Web Origin
♦O que são Web Origins?
♦ Forma de agentes de usuário agruparem URIs juntas em domínios protegidos

♦Regra para dois URIs serem classificadas na mesma origem web
♦ Devem ter os mesmos: esquemas, hospedeiros e portas

♦Caracterização de uma Web Origin
♦ Trio (esquema, hospedeiro, porta): esquema://hospedeiro[:porta]
♦ Esquema do URI
♦ Hospedeiro do URI
♦ Porta do URI (se omitida, então assume-se a porta padrão do protocolo do esquema)

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Same-Origin Policy
♦O que é a Same-Origin Policy (política de mesma origem)?
♦ Documentos recuperados de origens distintas são isolados uns dos outros
♦ Em domínios protegidos uns dos outros

♦ Exemplo
♦ Um documento em http://mvpshowcast.azurewebsites.net/Evento não pode acessar o
DOM de um documento em https://mvpshowcast.azurewebsites.net/MVP
♦ Origem do documento http://mvpshowcast.azurewebsites.net/Evento
♦ Esquema: http; Hospedeiro: mvpshowcast.azurewebsites.net; Porta: 80
♦ Origem do documento https://mvpshowcast.azurewebsites.net/MVP
♦ Esquema: https; Hospedeiro: mvpshowcast.azurewebsites.net; Porta: 443

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Cross-domain AJAX
♦O que é AJAX?
♦ Um acrônimo para Asynchronous JavaScript and XML
♦ Grupo de técnicas relacionadas de desenvolvimento web usadas do lado do
cliente para criar aplicações web assíncronas
♦ O objeto XMLHttpRequest é usado para trafegar os dados entre cliente e servidor
♦ Independente do nome, XML não é obrigatório
♦ JSON é usado com frequência
♦ Existe o termo AJAJ (Asynchronous JavaScript and JSON), mas é pouco usado

♦O que é cross-domain AJAX?
♦ A ideia de realizar requisições entre diferentes domínios em oposição à
restrição Same-Origin Policy
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

JSON-P
♦O que é JSON-P?
♦ Significa JSON with padding
♦ Mecanismo para requisições de conteúdo cross-domain com o tag <script>
function processarDados(dadosJSON) {
// O argumento dadosJSON deve ser uma representação JSON dos dados.
...
}
<script type="text/javascript"
src="http://dominiocruzado.com.br/servicoweb?jsonp=processarDados">
</script>
processarDados({ webcast: "CORS", trilha: "Interoperabilidade", sessao: "IT" });
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Cross-Origin Resource Sharing (CORS)
♦O que é Cross-Origin Resource Sharing (CORS)?
♦ Mecanismo que habilita requisições do lado do cliente de origens cruzadas

♦Especificação no W3C
♦ Cross-Origin Resource Sharing
♦ W3C Candidate Recommendation 29 January 2013
♦ http://www.w3.org/TR/cors/
♦ Produzido em conjunto por dois grupos de trabalho no W3C
♦ Web Applications (WebApps) e Web Application Security (WebAppSec)

♦Benefícios da padronização
♦ APIs que fazem requisições de origens cruzadas podem usar os algoritmos
definidos na especificação
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Cross-Domain AJAX com CORS
♦O que é XMLHttpRequest?
♦ É uma API que fornece funcionalidades do lado do cliente para transmissão
de dados entre um cliente e um servidor

♦Especificação XMLHttpRequest no W3C
♦ W3C Working Draft 6 December 2012
♦ http://www.w3.org/TR/XMLHttpRequest/

♦A nova especificação XMLHttpRequest introduz novos recursos
♦ Requisições de origens cruzadas
♦ Eventos de progresso de upload
♦ Suporte para upload e download de dados binários
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

Demonstração
Cross-Domain AJAX com CORS
♦Criação de uma solução no Visual Studio 2013
♦ Projeto de uma API web
♦ MvpShowCast.WebApi

♦ Projeto de uma aplicação web
♦ MvpShowCast.WebSite

♦Publicação da solução no Windows Azure
♦ API web: mvpshowcastwebapi.azurewebsites.net
♦ Aplicação web: mvpshowcastwebsite.azurewebsites.net
♦ Aplicação web 2: mvpshowcastwebsite2.azurewebsites.net

♦Habilitação de CORS na API web
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: INTEROPERABILIDADE
SESSÃO: INFRAESTRUTURA

Documentação
♦HTTP/1.1 User-Agent
♦ http://tools.ietf.org/html/rfc2616#section-14.43

♦The Web Origin Concept
♦ http://tools.ietf.org/html/rfc6454

♦Same-Origin Policy
♦ http://www.w3.org/Security/wiki/Same_Origin_Policy

♦Cross-Origin Resource Sharing
♦ W3C Candidate Recommendation 29 January 2013
♦ http://www.w3.org/TR/cors/
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: INTEROPERABILIDADE
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Perguntas & Respostas

Rogério Moraes de Carvalho
Visual C#
Diretor de Tecnologia – VITA Informática
@rogeriomc
rogeriomc.wordpress.com

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

Más contenido relacionado

La actualidad más candente

ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemRogério Moraes de Carvalho
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsJúnior Porfirio
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Rogério Moraes de Carvalho
 
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF CoreExplorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF CoreRogério Moraes de Carvalho
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?akamud
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoRogerio Fontes
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsWaldyr Felix
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoGuilherme Heynemann Bruzzi
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroRogério Moraes de Carvalho
 
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...Rogério Moraes de Carvalho
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETRenato Groff
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Rogério Moraes de Carvalho
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Criciúma Dev
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 

La actualidad más candente (20)

ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
 
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF CoreExplorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - Introdução
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
Jugvale
JugvaleJugvale
Jugvale
 
JEE nas nuvens: uma introdução ao openshift
JEE nas nuvens:  uma introdução ao openshiftJEE nas nuvens:  uma introdução ao openshift
JEE nas nuvens: uma introdução ao openshift
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do código
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
 
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 

Similar a Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) [MVP ShowCast 2013 - IT - Interoperabilidade]

Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2Uilson Souza
 
Construindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRConstruindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRIvan Paulovich
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
HTML5, Mobile Web e além - Computer on the beach 2015
HTML5, Mobile Web e além - Computer on the beach 2015HTML5, Mobile Web e além - Computer on the beach 2015
HTML5, Mobile Web e além - Computer on the beach 2015Reinaldo Ferraz
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilRenato Groff
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo Kono
 
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasMVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasRover Marinho
 
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...Renato Groff
 
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
 APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ... APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...Renato Groff
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Renato Groff
 
Forneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackForneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackDaniel Donda - MVP
 

Similar a Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) [MVP ShowCast 2013 - IT - Interoperabilidade] (20)

Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
 
Construindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRConstruindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalR
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
HTML5, Mobile Web e além - Computer on the beach 2015
HTML5, Mobile Web e além - Computer on the beach 2015HTML5, Mobile Web e além - Computer on the beach 2015
HTML5, Mobile Web e além - Computer on the beach 2015
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Computação em nuvem e Windows Azure
Computação em nuvem e Windows AzureComputação em nuvem e Windows Azure
Computação em nuvem e Windows Azure
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasMVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
 
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
 
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
 APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ... APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
Web Services
Web ServicesWeb Services
Web Services
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
Forneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackForneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure Pack
 

Más de Rogério Moraes de Carvalho

TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaRogério Moraes de Carvalho
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7Rogério Moraes de Carvalho
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Rogério Moraes de Carvalho
 
Uma visão de mercado das linguagens de programação
Uma visão de mercado das linguagens de programaçãoUma visão de mercado das linguagens de programação
Uma visão de mercado das linguagens de programaçãoRogério Moraes de Carvalho
 
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...Rogério Moraes de Carvalho
 
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...Rogério Moraes de Carvalho
 
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...
The Developer's Conference (TDC) 2013 - Florianópolis:  HTML5 + CSS3 em múlti...The Developer's Conference (TDC) 2013 - Florianópolis:  HTML5 + CSS3 em múlti...
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...Rogério Moraes de Carvalho
 
MVP Virtual Conference 2013: Cenário do mundo real
MVP Virtual Conference 2013: Cenário do mundo realMVP Virtual Conference 2013: Cenário do mundo real
MVP Virtual Conference 2013: Cenário do mundo realRogério Moraes de Carvalho
 
MVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebMVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebRogério Moraes de Carvalho
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisRogério Moraes de Carvalho
 
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...Rogério Moraes de Carvalho
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5Rogério Moraes de Carvalho
 
TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptTDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptRogério Moraes de Carvalho
 

Más de Rogério Moraes de Carvalho (18)

TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
 
Tecnologias XML e XML no SQL Server 2016
Tecnologias XML eXML no SQL Server 2016Tecnologias XML eXML no SQL Server 2016
Tecnologias XML e XML no SQL Server 2016
 
Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
 
Uma visão de mercado das linguagens de programação
Uma visão de mercado das linguagens de programaçãoUma visão de mercado das linguagens de programação
Uma visão de mercado das linguagens de programação
 
`
``
`
 
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
 
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
 
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...
The Developer's Conference (TDC) 2013 - Florianópolis:  HTML5 + CSS3 em múlti...The Developer's Conference (TDC) 2013 - Florianópolis:  HTML5 + CSS3 em múlti...
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...
 
MVP Virtual Conference 2013: Cenário do mundo real
MVP Virtual Conference 2013: Cenário do mundo realMVP Virtual Conference 2013: Cenário do mundo real
MVP Virtual Conference 2013: Cenário do mundo real
 
MVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebMVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões Web
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
 
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
 
TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
 
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptTDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
 

Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) [MVP ShowCast 2013 - IT - Interoperabilidade]

  • 1. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE MVP ShowCast 2013 Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) Rogério Moraes de Carvalho Visual C# Diretor de Tecnologia – VITA Informática @rogeriomc rogeriomc.wordpress.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 2. SESSÃO: INFRAESTRUTURA Agenda ♦User-Agent ♦Web Origin ♦Same-Origin Policy ♦JSON-P ♦Cross-Origin Resource Sharing ♦Cross-Domain AJAX com CORS ♦Demonstração: Cross-Domain AJAX com CORS ♦Documentação © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: INTEROPERABILIDADE
  • 3. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE User-Agent ♦O que é um agente de usuário (user agent)? ♦ É um software que age em nome de um usuário ♦ Exemplos ♦ Browser (Chrome, Internet Explorer, Firefox, Safari, Opera, etc.) ♦ Cliente de e-mail (Outlook, Windows Mail, Mac OS X Mail, Thunderbird, etc.) ♦Cenário comum ♦ Agente de usuário como cliente num protocolo de rede usado em comunicações cliente/servidor ♦ Exemplo ♦ O protocolo HTTP identifica o software cliente que origina uma requisição usando o cabeçalho User-Agent © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 4. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Web Origin ♦O que são Web Origins? ♦ Forma de agentes de usuário agruparem URIs juntas em domínios protegidos ♦Regra para dois URIs serem classificadas na mesma origem web ♦ Devem ter os mesmos: esquemas, hospedeiros e portas ♦Caracterização de uma Web Origin ♦ Trio (esquema, hospedeiro, porta): esquema://hospedeiro[:porta] ♦ Esquema do URI ♦ Hospedeiro do URI ♦ Porta do URI (se omitida, então assume-se a porta padrão do protocolo do esquema) © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 5. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Same-Origin Policy ♦O que é a Same-Origin Policy (política de mesma origem)? ♦ Documentos recuperados de origens distintas são isolados uns dos outros ♦ Em domínios protegidos uns dos outros ♦ Exemplo ♦ Um documento em http://mvpshowcast.azurewebsites.net/Evento não pode acessar o DOM de um documento em https://mvpshowcast.azurewebsites.net/MVP ♦ Origem do documento http://mvpshowcast.azurewebsites.net/Evento ♦ Esquema: http; Hospedeiro: mvpshowcast.azurewebsites.net; Porta: 80 ♦ Origem do documento https://mvpshowcast.azurewebsites.net/MVP ♦ Esquema: https; Hospedeiro: mvpshowcast.azurewebsites.net; Porta: 443 © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 6. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Cross-domain AJAX ♦O que é AJAX? ♦ Um acrônimo para Asynchronous JavaScript and XML ♦ Grupo de técnicas relacionadas de desenvolvimento web usadas do lado do cliente para criar aplicações web assíncronas ♦ O objeto XMLHttpRequest é usado para trafegar os dados entre cliente e servidor ♦ Independente do nome, XML não é obrigatório ♦ JSON é usado com frequência ♦ Existe o termo AJAJ (Asynchronous JavaScript and JSON), mas é pouco usado ♦O que é cross-domain AJAX? ♦ A ideia de realizar requisições entre diferentes domínios em oposição à restrição Same-Origin Policy © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 7. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE JSON-P ♦O que é JSON-P? ♦ Significa JSON with padding ♦ Mecanismo para requisições de conteúdo cross-domain com o tag <script> function processarDados(dadosJSON) { // O argumento dadosJSON deve ser uma representação JSON dos dados. ... } <script type="text/javascript" src="http://dominiocruzado.com.br/servicoweb?jsonp=processarDados"> </script> processarDados({ webcast: "CORS", trilha: "Interoperabilidade", sessao: "IT" }); © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 8. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Cross-Origin Resource Sharing (CORS) ♦O que é Cross-Origin Resource Sharing (CORS)? ♦ Mecanismo que habilita requisições do lado do cliente de origens cruzadas ♦Especificação no W3C ♦ Cross-Origin Resource Sharing ♦ W3C Candidate Recommendation 29 January 2013 ♦ http://www.w3.org/TR/cors/ ♦ Produzido em conjunto por dois grupos de trabalho no W3C ♦ Web Applications (WebApps) e Web Application Security (WebAppSec) ♦Benefícios da padronização ♦ APIs que fazem requisições de origens cruzadas podem usar os algoritmos definidos na especificação © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 9. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Cross-Domain AJAX com CORS ♦O que é XMLHttpRequest? ♦ É uma API que fornece funcionalidades do lado do cliente para transmissão de dados entre um cliente e um servidor ♦Especificação XMLHttpRequest no W3C ♦ W3C Working Draft 6 December 2012 ♦ http://www.w3.org/TR/XMLHttpRequest/ ♦A nova especificação XMLHttpRequest introduz novos recursos ♦ Requisições de origens cruzadas ♦ Eventos de progresso de upload ♦ Suporte para upload e download de dados binários © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 10. SESSÃO: INFRAESTRUTURA Demonstração Cross-Domain AJAX com CORS ♦Criação de uma solução no Visual Studio 2013 ♦ Projeto de uma API web ♦ MvpShowCast.WebApi ♦ Projeto de uma aplicação web ♦ MvpShowCast.WebSite ♦Publicação da solução no Windows Azure ♦ API web: mvpshowcastwebapi.azurewebsites.net ♦ Aplicação web: mvpshowcastwebsite.azurewebsites.net ♦ Aplicação web 2: mvpshowcastwebsite2.azurewebsites.net ♦Habilitação de CORS na API web © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: INTEROPERABILIDADE
  • 11. SESSÃO: INFRAESTRUTURA Documentação ♦HTTP/1.1 User-Agent ♦ http://tools.ietf.org/html/rfc2616#section-14.43 ♦The Web Origin Concept ♦ http://tools.ietf.org/html/rfc6454 ♦Same-Origin Policy ♦ http://www.w3.org/Security/wiki/Same_Origin_Policy ♦Cross-Origin Resource Sharing ♦ W3C Candidate Recommendation 29 January 2013 ♦ http://www.w3.org/TR/cors/ © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: INTEROPERABILIDADE
  • 12. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Perguntas & Respostas Rogério Moraes de Carvalho Visual C# Diretor de Tecnologia – VITA Informática @rogeriomc rogeriomc.wordpress.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.