Scalable Reliable Secure REST

Scalable, Reliable, and Secure RESTful HTTP A  practical  guide to building to  HTTP  based services
Today’s talk ,[object Object]
What this talk is NOT
What is REST? ,[object Object],[object Object]
 
Resources, resources, resources ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Uniform Interface
Hypertext and linkability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REST & HTTP ,[object Object],[object Object],[object Object],[object Object],[object Object]
Our Starting Point
Reliability through Idempotency
Idempotent Operations
Some Basic Scenarios: ,[object Object],[object Object],[object Object],[object Object]
Getting a resource ,[object Object],[object Object]
Updating a resource Server Client
Deleting a resource Server Client
Creating Resources ,[object Object],[object Object],[object Object],[object Object],[object Object],Server Client Client Server HTTP/1.1 200 OK … POST /entries Host: acme.com … PUT /entries/1 Host: acme.com Content-Type: … Content-Length: … Some data…
Creating Resources ,[object Object],[object Object],[object Object],[object Object],[object Object]
Problem: Firewalls ,[object Object],[object Object],[object Object],[object Object]
Scalability ,[object Object]
Scaling HTTP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Stateless client/server approach ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ETag Header ,[object Object],[object Object],[object Object],[object Object]
ETag Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Server Client Client Server HTTP/1.1 304 Not Modified Date: … ETag: "3e86-410-3596fbbc"  Content-Length: 0… GET /feed.atom Host: www.acme.com … GET /feed.atom If-None-Match:  "3e86-410-3596fbbc" Host: www.acme.com …
LastModified Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Client Server HTTP/1.1 304 Not Modified Date: … Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT Content-Length: 0 GET /feed.atom Host: www.acme.com … GET /feed.atom If-Modified-Since:  Sat, 29 Oct 1994 19:43:31 GMT Host: www.acme.com …
Scalability through Caching ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
How Caching Works ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Is your cache fresh? ,[object Object],[object Object],[object Object],[object Object]
Scalability through URLs and  Content-Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HEAD ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
100 Continue ,[object Object],[object Object]
100 Continue
Transactions ,[object Object],[object Object],[object Object],[object Object],[object Object]
So you really want transactions… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Batch Operations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Security
Question #1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tools at our disposal ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HTTP Authentication Basics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SSL and Public Key Cryptography ,[object Object]
How SSL works Client Server Sends random number encrypted with server’s public key.
How SSL works Client Server Server sends random number to client.  Can be unencrypted since Client may not have public key.
How SSL works Client Server Server and Client compute a shared secret using the negotiated hash algorithm. 94AB134… 94AB134…
How SSL works Client Server Communication is encrypted using the new shared secret & symmetric cryptography
Client Authentication ,[object Object],[object Object],[object Object]
Limitations of SSL ,[object Object],[object Object],[object Object],[object Object],[object Object]
OpenID ,[object Object],[object Object],[object Object]
XML Signature & Encryption ,[object Object],[object Object],[object Object],[object Object]
An XML digital signature ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HTTP Security Limitations ,[object Object],[object Object],[object Object],[object Object],[object Object]
Other Thoughts
Consider using Atom Publishing Protocol ,[object Object],[object Object],[object Object],[object Object],[object Object]
Atom Publishing Protocol ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why you should use APP for your app ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What other tools are available for building RESTful applications? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Limitations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions? ,[object Object],[object Object],[object Object],[object Object],[object Object]
1 of 58

More Related Content

What's hot(20)

REST and ASP.NET Web API (Milan)REST and ASP.NET Web API (Milan)
REST and ASP.NET Web API (Milan)
Jef Claes4.9K views
Rest & RESTful WebServicesRest & RESTful WebServices
Rest & RESTful WebServices
Prateek Tandon5.8K views
Architecture Best PracticesArchitecture Best Practices
Architecture Best Practices
AWS Germany5.8K views
Overview of RESTful web servicesOverview of RESTful web services
Overview of RESTful web services
nbuddharaju4.2K views
ASP.NET WEB API TrainingASP.NET WEB API Training
ASP.NET WEB API Training
Chalermpon Areepong3.4K views
Implementation advantages of restImplementation advantages of rest
Implementation advantages of rest
Balamurugan Easwaran4.4K views
Web ArchitectureWeb Architecture
Web Architecture
sudip pudasaini452 views
REST & RESTful Web ServiceREST & RESTful Web Service
REST & RESTful Web Service
Hoan Vu Tran1.1K views
Restful webservicesRestful webservices
Restful webservices
Luqman Shareef2.1K views
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
Halil Burak Cetinkaya43.9K views
Restful web services pptRestful web services ppt
Restful web services ppt
OECLIB Odisha Electronics Control Library4K views
The ASP.NET Web API for BeginnersThe ASP.NET Web API for Beginners
The ASP.NET Web API for Beginners
Kevin Hazzard4.4K views
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
Stormpath225.9K views
Micro Web Service - Slim and JWTMicro Web Service - Slim and JWT
Micro Web Service - Slim and JWT
Tuyen Vuong3.9K views
Excellent rest using asp.net web apiExcellent rest using asp.net web api
Excellent rest using asp.net web api
Maurice De Beijer [MVP]11.4K views

Viewers also liked(15)

API Reliability GuideAPI Reliability Guide
API Reliability Guide
Nick DeNardis3.4K views
REST vs SOAPREST vs SOAP
REST vs SOAP
Juan Luis Pérez5.4K views
SOAP vs RESTSOAP vs REST
SOAP vs REST
Mário Almeida12.5K views
REST vs. SOAPREST vs. SOAP
REST vs. SOAP
Murat Çakal11.8K views
Spring Web Services: SOAP vs. RESTSpring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. REST
Sam Brannen22.4K views
29 Essential AngularJS Interview Questions29 Essential AngularJS Interview Questions
29 Essential AngularJS Interview Questions
Arc & Codementor487.6K views
Secure Your REST API (The Right Way)Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)
Stormpath218.8K views

Similar to Scalable Reliable Secure REST

HTTPHTTP
HTTPspacecharge
1.2K views15 slides
HTTP BasicsHTTP Basics
HTTP Basicssanjoysanyal
34K views16 slides

Similar to Scalable Reliable Secure REST(20)

HTTPHTTP
HTTP
spacecharge1.2K views
Pentesting web applicationsPentesting web applications
Pentesting web applications
Satish b12.4K views
HTTP BasicsHTTP Basics
HTTP Basics
sanjoysanyal34K views
HTTP Basics DemoHTTP Basics Demo
HTTP Basics Demo
InMobi Technology450 views
Http_Protocol.pptxHttp_Protocol.pptx
Http_Protocol.pptx
Abshar Fatima20 views
01. http basics v2701. http basics v27
01. http basics v27
Eoin Keary549 views
Implementation of ssl injavaImplementation of ssl injava
Implementation of ssl injava
tanujagrawal725 views
Lecture17Lecture17
Lecture17
Châu Thanh Chương466 views
Starting With PhpStarting With Php
Starting With Php
Harit Kothari787 views
Securing RESTful APISecuring RESTful API
Securing RESTful API
Muhammad Zbeedat271 views
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1
hussulinux2.8K views
WebbasicsWebbasics
Webbasics
patinijava698 views
Http Vs Https . Http Vs Https .
Http Vs Https .
simplyharshad34.2K views

Recently uploaded(20)

ThroughputThroughput
Throughput
Moisés Armani Ramírez28 views
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya51 views
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum183 views
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web Developers
Maximiliano Firtman152 views

Scalable Reliable Secure REST

Editor's Notes

  1. - Intro to self - Ask questions! 10 mins for questions at the end (may be a bit much, I know you norwegians are a talkative bunch)