REST & Caching: Web Services, Accelerated

Size: px
Start display at page:

Download "REST & Caching: Web Services, Accelerated"

Transcription

1 REST & Caching: Web Services, Accelerated JAOO 2009 Stefan Tilkov, innoq

2 innoq Deutschland GmbH innoq Schweiz GmbH Halskestraße 17 Gewerbestrasse 11 D Ratingen CH-6330 Cham Phone Phone

3 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages

4 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages

5 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages GET /customers/1234 Host: example.com Accept: application/vnd.mycompany.customer+xml <customer>...</customer> GET /customers/1234 Host: example.com Accept: text/x-vcard begin:vcard... end:vcard

6 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages <order self=' <amount>23</amount> <product ref=' /> <customer ref=' /> <link rel='edit ref=' /> </order>

7 The REST Uniform Interface identification of resources resource manipulation through representations hypermedia as the engine of application state self-descriptive messages Standard Method Media Type GET /service/customers/1234 HTTP 1.1 Host: User-Agent: XYZ 1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Fri, 02 Oct :47:31 GMT If-None-Match:"600028c-59fb-474f6852c9dab" Visibility Cache-Control:max-age=60 HTTP/ OK Date: Sun, 04 Oct :36:25 GMT Server: Apache/ (Debian) Last-Modified:Fri, 02 Oct :47:31 GMT Control Etag: "600028c-59fb-474f6852c9dab" Cache-Control: max-age=300 Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 7160 Keep-Alive: timeout=15, max=91 Data Connection: Keep-Alive Content-Type: application/xml <?xml version= 1.0 encoding= utf-8?>... Data

8 getorderdetails() submitapplicationdata() updatequote() findmatchingbid() initiateprocess() cancelsubscription() listauctions() getusers()

9 getorderdetails() findmatchingbid() GET listauctions() initiateprocess() submitapplicationdata() POST getusers() PUT DELETE updatequote() cancelsubscription()

10 interface Resource { Resource(URI u) Response get() Response post(request r) Response put(request r) Response delete() } generic Any HTTP client (Firefox, IE, curl, wget) Any HTTP server Caches Proxies Google, Yahoo!, MSN class CustomerCollection : Resource {... Response post(request r) { id = createcustomer(r) return new Response(201, r) }... } Anything that knows your app specific

11 Caching Models Note: Thanks to Ryan Tomayko for letting me steal base some work on his diagrams from

12 !"#$%&!'()$ *'(+$%, -./012$"(34$ -./012$"(34$ (3,$0&305$%,06'(+ 78$""3093:",70)$:$ ;<<0=> 8$""3093:", ;<<0=> 8$""3093:",!"#$%&!'()$ *'(+$%,

13 Expiration

14 !"#$%&!'()$ *'(+$%, -./012$"(34$ -./012$"(34$ 56$""30738",5 6$""30738",G!"#$%&!'()$ *'(+$%,

15 !"# $%&'(!%&)(*+,-./01(2&"3(.'45/+"(5/*"6/'%77(*/ /#(&%95(/6'(/&%&'(/45/:;(5'< AB(C/D> $%&'(E$"*6;"2C/3%FE%B(GH>> I(22"/J";2+<!"# $%&'(!%&)(*+

16 Validation

17 !"#$% &'$(% )'$*%+, -./012%"$34% -./012%"$34% 5%+%6'7%08'"#,'7369: ;<%""30=36",; <%""30=36", <%""30=36",!"#$% &'$(% )'$*%+,

18 !"# $%&'(!%&)(*+,-./01(2&"3(,-./01(2&"3( =MM/?N -.%F:/%C(DEE%5+ P(22"/Q"G2+!"# $%&'(!%&)(*+

19 Combination

20 !"#$% &'$(% )'$*%+, -./012%"$34% -./012%"$34% 5%+%6'7%08'"#,'7369: ;<%""30=36",; &'$(%B&3+763"C04'DB'5%EF? <%""30=36", &'$(%B&3+763"C04'DB'5%EF? <%""30=36",!"#$% &'$(% )'$*%+,

21 !"# $%&'(!%&)(*+,-./01(2&"3(.'45/+"(5/*"6/'%77(*/ /#(&%95(/6'(/&%&'(/45/:;(5'< $%&'(A$"*6;"2B/3%CA%D(EF> GD(B/H> I%56AJ"+4:4(+B/.9(K/=L/?&6888 M(22"/N";2+!"# $%&'(!%&)(*+

22 !"#$%!"&'( )"&*(+, -./012(%&$3( -./012(%&$3( Q(%%$0R$#%,!"#$%!"&'( )"&*(+,

23 Implementation

24 !"#$%&!'()$ *$+,-$./$. 0#"$,-12&$3 4'(5,6%7 *.#&$,0#"$ 869,:;$"(<3$ 869,:;$"(<3$ =$'7,0#"$ =$&>.%,0#"$,!<%&$%&2 =$&>.%,=$2?<%2$!"#$%&!'()$ *$+,-$./$. 0#"$,-12&$3 4'(5,6%7

25 Apache FileETag FileETag INode MTime Size date and time the file was last modified number of bytes in the file file's i-node number

26 ETag Depth

27 !"#$%&!'()$ *$%$+#(,-.'/,*$%$+'&0+ 1'(2,-%3 *-.,45$"(06$ *-.,45$"(06$ *-.,45$"(06$ 7$&8+%,7$9:0%9$!06:8&$,-.'/ 7$&8+%,7$9:0%9$,;,-.'/ 7$&8+%,7$9:0%9$!"#$%&!'()$ *$%$+#(,-.'/,*$%$+'&0+ 1'(2,-%3

28 !"#$%&!'()$ *+',&-.'(/-0% $"(6+$ $"(6+$ 7$&8,%-7$9:6%9$ -;-03'< 7$&8,%-7$9:6%9$!"#$%&!'()$ *+',&-.'(/-0%1

29 !"#$%&!'()$ *+',&-.'(/-0% $"(6+$ $"(6+$ 7$&8,%-7$9:6%9$ $"(6+$ $"(6+$ 7$&8,%-7$9:6%9$!"#$%&!'()$ *+',&-.'(/-0%1

30 Edge Side Includes (ESI)

31 <esi:include src=" alt=" onerror="continue"/> <esi:include src="

32 !"#$% &$'!"()* &"(+,-./ 0-1,23& 0-1,23& 4*56#.,4*78$.7* 4*56#.,4*78$.7* 0-1,23! 0-1,23! 4*56#.,4*78$.7* 4*56#.,4*78$.7*!"#$% &$'!"()* &"(+,-./

33 !"# $%&'(.+/*01!.+/*01 2(345,*2(67",6( +/%89*:%;(<==%>-: 1885(8%3(*1*E*! 2(345,*2(67",6(!"# $%&'(!%&)*+,-!%&)*+,-

34 !"# $%&'(.+/*01!.+/*01*-"(2*,"3*'%44(,* *#(&%62(*3'(*&%&'(*72*89(2':.+/*0$ 1;;9(;%3(*1*<*$ =(369,*=(24",2(!"# $%&'(!%&)*+,-!%&)*+,-

35 Cache Topologies

36 Client Cache Client Client Cache Server Client Cache Server Client Cache Client Client only Proxy Cache Client Cache Client Client Cache Cache Server Client Cache Server Client Client Client Cache Reverse Proxy Cache Complex Topology

37 Server Client Client Server Cache Server Client Server "Cache as ESB"

38 Web Sites vs. Web Services

39 Application Layers Presentation/UI Browser Data Formatting View Control Flow Aggregate Logic Business Rules Relations Controller Model Lib Utility Functions Data (create, select, update, delete) Database

40 App Layers & Resources Presentation/UI Browser REST Client Data Formatting View Control Flow Aggregate Logic Business Rules Relations Controller Model Lib Utility Functions Data (create, select, update, delete) Database

41 Single Resource Model Browser (Other) REST Client Everything doable Application via UI Resource becomes doable via API Resource Resource UI Backend = API

42 Intermediaries

43 Squid Full proxy cache w/ reverse proxy option Mature/stable/old, widely used Complicated configuration Support for ESI Support for external invalidation (PURGE) (Experimental) support for cache channels (much, much more)

44 mod_cache mod_cache module for Apache HTTPD 2.x (production-ready in 2.2) backends: mod_mem_cache and mod_disk_cache Runs within Apache process Simple solution in conjunction with Passenger No support for ESI or explicit invalidation

45 <VirtualHost > ServerName example.com <Location /images> ExpiresActive On ExpiresDefault A3600 </Location> <Location /user> ExpiresActive On ExpiresDefault "access plus 1 month" </Location> CacheEnable disk /images CacheRoot /var/www/cache ProxyPass / ProxyPassReverse / </VirtualHost>

46 Varnish Pure in-memory reverse proxy Disk storage through OS swap mechanism (Partial) ESI support External invalidation VCL configuration language Easy configuration

47 sub vcl_recv { if (req.request!= "GET" && req.request!= "HEAD" && req.request!= "PUT" && req.request!= "POST" && req.request!= "TRACE" && req.request!= "OPTIONS" && req.request!= "DELETE") { /* Non-RFC2616 or CONNECT which is weird. */ return (pipe); } if (req.request!= "GET" && req.request!= "HEAD") { /* We only deal with GET and HEAD by default */ return (pass); } if (req.http.authorization req.http.cookie) { /* Not cacheable by default */ return (pass); } return (lookup); } VCL Hook vcl_recv vcl_pipe vcl_pass vcl_hit vcl_miss vcl_fetch vcl_deliver vcl_timeout vcl_discard Meaning Called at the beginning of a request Called upon entering pipe mode Called upon entering pass mode Called after a cache lookup if the requested document was found in the cache Called after a cache lookup if the requested document was not found in the cache Called after a document has been successfully retrieved from the backend Called before a cached object is delivered to the client Called by the reaper thread shortly before a cached document reaches its expiry time Called by the reaper thread when a cached document is about to be discarded

48 Rack::Cache Runs within Ruby process Cross-process synchronization via memcached Absurdly simple + transparent config.middleware.use(rack::cache, :verbose => true, :metastore => 'file:/var/cache/rack/meta', :entitystore => 'file:/var/cache/rack/body')

49 Clients

50 Cache-aware HTTP Clients Note: Conditional GET does not require anything special Your browser and news reader.net (HttpWebRequest) Python httplib2 HttpCache4J

51 So what?

52 How to Exploit HTTP Caching 1. Provide safe resource access via GET 2. Include appropriate validation and cache control headers 3. Leave caching to a reverse proxy cache 4. Use conditional GET on the client 5. Profit :-)

53 I do think the REST-afarians are missing an opportunity by not driving home the secret sauce that is HTTP GET. [ ] GET is one of the most optimized pieces of distributed systems plumbing in the world. It's an absolute/objective slam dunk. No arguing/evangelism needed IMO. GET is the classic the first bag is free kind of feature a platform builder dreams about. Don Box, Co-inventor of SOAP

54 Stefan Tilkov Thank you! Any questions? Architectural Consulting SOA WS-* REST MDA MDSD MDE J(2)EE RoR.NET

55 Backup

56 Turning Session State R1 Client 1 Server R1 R2 Rn Client 2 R2 State Client 1 State Client 2 Server State Representation

57 into Resource or Client State Client 1 C1 R1 C1 C1 Server C1 R1 R2 C2 C2 Rn Client 2 R2 C2 C2 State Client 1 State Client 2 Server State Representation

58 Resources Nothingham, Mark: The State of Proxy Caching Nottingham, Mark: The State of Browser Caching Nottingham, Mark: Caching Tutorial Squid, Nottingham, Mark: Cache Channels for Squid The Varnish Project, Varnish: Notes from the Architect Tomoyako, Ryan: Things Caches Do W3C, ESI Language Specification Apache HTTP 2.2 Caching Guide

Using REST for SOA Stefan Tilkov, QCon SF 2010

Using REST for SOA Stefan Tilkov, QCon SF 2010 Using REST for SOA Stefan Tilkov, QCon SF 2010 Stefan Tilkov stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ @stilkov innoq Deutschland GmbH innoq Schweiz GmbH Halskestraße 17 Gewerbestrasse 11 D-40880

More information

Pragmatic SOA Beyond Buzzwords and Flamewars. Stefan Tilkov, -

Pragmatic SOA Beyond Buzzwords and Flamewars. Stefan Tilkov, - Pragmatic SOA Beyond Buzzwords and Flamewars Stefan Tilkov, innoq @stilkov - http://www.innoq.com/blog/st/ 1 Some Claims 2 Some Recommendations 3 Claim: Application architecture is irrelevant for your

More information

A Pragmatic Introduction to REST. Stefan Tilkov,

A Pragmatic Introduction to REST. Stefan Tilkov, A Pragmatic Introduction to REST Stefan Tilkov, stefan.tilkov@innoq.com Stefan Tilkov http://www.innoq.com stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ http://www.infoq.com Audience Poll How many

More information

REST for SOA. Stefan Tilkov, innoq Deutschland GmbH

REST for SOA. Stefan Tilkov, innoq Deutschland GmbH REST for SOA Stefan Tilkov, innoq Deutschland GmbH stefan.tilkov@innoq.com Contents An Introduction to REST Why REST Matters REST And Web Services Recommendations Stefan Tilkov http://www.innoq.com stefan.tilkov@innoq.com

More information

REST & JSR 311. Stefan Tilkov, innoq Deutschland GmbH November 2008

REST & JSR 311. Stefan Tilkov, innoq Deutschland GmbH November 2008 REST & JSR 311 Stefan Tilkov, innoq Deutschland GmbH stefan.tilkov@innoq.com November 2008 1 Stefan Tilkov Geschäftsführer und Principal Consultant, innoq Deutschland GmbH Fokus auf SOA, Web-Services,

More information

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel innoq Deutschland GmbH innoq Schweiz GmbH D-40880 Ratingen CH-6330 Cham Tel +49 2102 77 1620 Tel +41 41 743 01 11 www.innoq.com Stefan Tilkov, stefan.tilkov@innoq.com 1 Goals Introduce MDE, MDA, MDD, MDSD,...

More information

REST: I don't Think it Means What You Think it Does. Stefan

REST: I don't Think it Means What You Think it Does. Stefan REST: I don't Think it Means What You Think it Does Stefan Tilkov @stilkov REST: An architectural style defined by the constraints Client-Server, Stateless Communication, Caching, Uniform Interface, Layered

More information

Stefan Tilkov innoq Deutschland GmbH REST + JSR 311 Java API for RESTful Web Services

Stefan Tilkov innoq Deutschland GmbH REST + JSR 311 Java API for RESTful Web Services Stefan Tilkov innoq Deutschland GmbH stefan.tilkov@innoq.com REST + JSR 311 Java API for RESTful Web Services Contents An Introduction to REST Why REST Matters REST And Web Services JSR 311 Intro Demo

More information

About 1. Chapter 1: Getting started with varnish 2. Remarks 2. Versions 2. Examples 2. Installation or Setup 2. CentOS 7 2. Ubuntu 2.

About 1. Chapter 1: Getting started with varnish 2. Remarks 2. Versions 2. Examples 2. Installation or Setup 2. CentOS 7 2. Ubuntu 2. varnish #varnish Table of Contents About 1 Chapter 1: Getting started with varnish 2 Remarks 2 Versions 2 Examples 2 Installation or Setup 2 CentOS 7 2 Ubuntu 2 Debian 3 Varnish VCL 3 Chapter 2: Building

More information

JAX-RS: REST, the Java Way. Stefan Tilkov,

JAX-RS: REST, the Java Way. Stefan Tilkov, JAX-RS: REST, the Java Way Stefan Tilkov, stefan.tilkov@innoq.com 1 Contents An Introduction to REST Why REST Matters JSR 311 Overview Demo What s Next 2 Stefan Tilkov stefan.tilkov@innoq.com http://www.innoq.com/blog/st/

More information

A Brief Introduction to REST

A Brief Introduction to REST A Brief Introduction to REST Posted by Stefan Tilkov on Dec 10, 2007 03:42 AM Community Architecture,SOA Topics Enterprise Architecture, REST You may or may not be aware that there is debate going on about

More information

Akamai Connector for Varnish Installation Guide

Akamai Connector for Varnish Installation Guide Akamai Connector for Varnish Installation Guide Table of Contents 1 Introduction 3 2 Installation 4 2.1 Overview 4 2.2 Varnish Plus Installation 4 2.2.1 Ubuntu Installation 4 2.2.2 Redhat Enterprise Linux

More information

Varnish. - a server-side http cache. Poul-Henning Kamp.

Varnish. - a server-side http cache. Poul-Henning Kamp. Varnish - a server-side http cache Poul-Henning Kamp phk@freebsd.org dictionary:varnish tr. v. var nished, var nish ing, var nish es To cover with varnish. To give a smooth and glossy finish to. To give

More information

A Pragmatic Introduction to REST

A Pragmatic Introduction to REST A Pragmatic Introduction to REST QCon London 2008 Stefan Tilkov, stefan.tilkov@innoq.com 1 Stefan Tilkov http://www.innoq.com stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ http://www.infoq.com

More information

INF5750. RESTful Web Services

INF5750. RESTful Web Services INF5750 RESTful Web Services Recording Audio from the lecture will be recorded! Will be put online if quality turns out OK Outline REST HTTP RESTful web services HTTP Hypertext Transfer Protocol Application

More information

Proxying. Why and How. Alon Altman. Haifa Linux Club. Proxying p.1/24

Proxying. Why and How. Alon Altman. Haifa Linux Club. Proxying p.1/24 Proxying p.1/24 Proxying Why and How Alon Altman alon@haifux.org Haifa Linux Club Proxying p.2/24 Definition proxy \Prox"y\, n.; pl. Proxies. The agency for another who acts through the agent; authority

More information

FOSHttpCache Documentation

FOSHttpCache Documentation FOSHttpCache Documentation Release 1.0.0 David Buchmann, David de Boer June 02, 2014 Contents 1 Getting started 3 1.1 Installation................................................ 3 1.2 Configuration...............................................

More information

REST Easy with Infrared360

REST Easy with Infrared360 REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style

More information

The State of REST vs. SOA

The State of REST vs. SOA The State of REST vs. SOA BeJUG Enterprise SOA 07 Stefan Tilkov, innoq Who am I? Stefan Tilkov stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ http://www.innoq.com http://www.infoq.com REST vs....?

More information

Varnish Cache. White Paper. Web Application Accelerator

Varnish Cache. White Paper. Web Application Accelerator Varnish Cache White Paper Web Application Accelerator Varnish Cache is a web application accelerator that is installed in front of any web or application server using the HTTP protocol. Varnish Cache then

More information

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape REST API s in a CA Plex context API Design and Integration into CA Plex landscape Speaker Software Architect and Consultant at CM First AG, Switzerland since 2008 having 30+ years of experience with the

More information

REST A brief introduction

REST A brief introduction REST A brief introduction Juergen Brendel What is it good for? Something with networks: APIs Interactions Distributed systems? All contents Copyright 2010, Mulesoft Inc. 2 Getting more popular All contents

More information

ENTERPRISE SOA CONFERENCE

ENTERPRISE SOA CONFERENCE BELGIAN JAVA USER GROUP PRESENTS ENTERPRISE SOA CONFERENCE 2 4 O c t o b e r 2 0 0 6, D e M o n t i l, A f f l i g e m REST - the Better Web Services Model Stefan Tilkov Founder & Principal Consultant

More information

RKN 2015 Application Layer Short Summary

RKN 2015 Application Layer Short Summary RKN 2015 Application Layer Short Summary HTTP standard version now: 1.1 (former 1.0 HTTP /2.0 in draft form, already used HTTP Requests Headers and body counterpart: answer Safe methods (requests): GET,

More information

HTTP Server Application

HTTP Server Application 1 Introduction You are to design and develop a concurrent TCP server that implements the HTTP protocol in the form of what is commonly called a web server. This server will accept and process HEAD and

More information

The HTTP protocol. Fulvio Corno, Dario Bonino. 08/10/09 http 1

The HTTP protocol. Fulvio Corno, Dario Bonino. 08/10/09 http 1 The HTTP protocol Fulvio Corno, Dario Bonino 08/10/09 http 1 What is HTTP? HTTP stands for Hypertext Transfer Protocol It is the network protocol used to delivery virtually all data over the WWW: Images

More information

FOSHttpCache Documentation

FOSHttpCache Documentation FOSHttpCache Documentation Release 1.0.0 David Buchmann, David de Boer Dec 21, 2017 Contents 1 Getting started 3 1.1 Installation................................................ 3 1.2 Configuration...............................................

More information

Assignment, part 2. Statement and concepts INFO-0010

Assignment, part 2. Statement and concepts INFO-0010 Assignment, part 2 Statement and concepts INFO-0010 Outline Statement Implementation of concepts Objective Mastermind game using HTTP GET and HTTP POST methods The platform Architecture Root page ("/")

More information

ReST 2000 Roy Fielding W3C

ReST 2000 Roy Fielding W3C Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST

More information

Yioop Full Historical Indexing In Cache Navigation. Akshat Kukreti

Yioop Full Historical Indexing In Cache Navigation. Akshat Kukreti Yioop Full Historical Indexing In Cache Navigation Akshat Kukreti Agenda Introduction History Feature Cache Page Validation Feature Conclusion Demo Introduction Project goals History feature for enabling

More information

Life on the Edge with ESI. Kit Chan Custom Branded Experiences Yahoo!

Life on the Edge with ESI. Kit Chan Custom Branded Experiences Yahoo! Life on the Edge with ESI Kit Chan (kichan@yahoo-inc.com) Custom Branded Experiences Yahoo! World Cup Penalty Shootout Royal Wedding Cybergeddon Life on the Edge Source: http://img.shockblast.net/2012/01/shockblast-4-803109.jpg

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

REST. And now for something completely different. Mike amundsen.com

REST. And now for something completely different. Mike amundsen.com REST And now for something completely different Mike Amundsen @mamund amundsen.com Preliminaries Mike Amundsen Developer, Architect, Presenter Hypermedia Junkie I program the Internet Designing Hypermedia

More information

Real Life Web Development. Joseph Paul Cohen

Real Life Web Development. Joseph Paul Cohen Real Life Web Development Joseph Paul Cohen joecohen@cs.umb.edu Index 201 - The code 404 - How to run it? 500 - Your code is broken? 200 - Someone broke into your server? 400 - How are people using your

More information

Caching. Caching Overview

Caching. Caching Overview Overview Responses to specific URLs cached in intermediate stores: Motivation: improve performance by reducing response time and network bandwidth. Ideally, subsequent request for the same URL should be

More information

Yahoo Traffic Server -a Powerful Cloud Gatekeeper

Yahoo Traffic Server -a Powerful Cloud Gatekeeper Yahoo Traffic Server -a Powerful Cloud Gatekeeper Shih-Yong Wang Yahoo! Taiwan 2010 COSCUP Aug 15, 2010 What is Proxy Caching? Proxy Caching explicit client configuration transparent emulate responses

More information

CORS Attacks. Author: Milad Khoshdel Blog: P a g e. CORS Attacks

CORS Attacks. Author: Milad Khoshdel Blog: P a g e. CORS Attacks Author: Milad Khoshdel Blog: https://blog.regux.com Email: miladkhoshdel@gmail.com 1 P a g e Contents What is CORS?...3 How to Test?...4 CORS Checker Script...6 References...9 2 P a g e What is CORS? CORS

More information

TACACS Support APIs. curl -k -v -u "admin:cisco123" -H Accept:application/vnd.yang.data+xml -H ContentType:application/vnd.yang.

TACACS Support APIs. curl -k -v -u admin:cisco123 -H Accept:application/vnd.yang.data+xml -H ContentType:application/vnd.yang. Table 1: Action Method Payload Required API To configure TACACS server POST Yes To configure TACACS server PUT Yes To configure TACACS server DELETE No To view TACACS server configuration GET No Example:

More information

High performance and scalable architectures

High performance and scalable architectures High performance and scalable architectures A practical introduction to CQRS and Axon Framework Allard Buijze allard.buijze@trifork.nl Allard Buijze Software Architect at Trifork Organizers of GOTO & QCON

More information

Building next-gen Web Apps with WebSocket. Copyright Kaazing Corporation. All rights reserved.

Building next-gen Web Apps with WebSocket. Copyright Kaazing Corporation. All rights reserved. Building next-gen Web Apps with WebSocket Copyright 2011 - Kaazing Corporation. All rights reserved. Who am I? Graham Gear Solution Architect, with Kaazing, purveyors of HTML5 enabling tech Based in London,

More information

Intercepting Web Requests

Intercepting Web Requests This chapter contains the following sections: Overview of, on page 1 Tasks for, on page 1 Best Practices for, on page 2 Web Proxy Options for, on page 3 Client Options for Redirecting Web Requests, on

More information

HTTP and Web Content Delivery

HTTP and Web Content Delivery HTTP and Web Content Delivery COS 461: Computer Networks Spring 2011 Mike Freedman hgp://www.cs.princeton.edu/courses/archive/spring11/cos461/ 2 Outline Layering HTTP HTTP conneclon management and caching

More information

CSE 333 Lecture HTTP

CSE 333 Lecture HTTP CSE 333 Lecture 19 -- HTTP Hal Perkins Department of Computer Science & Engineering University of Washington Administrivia Server-side programming exercise due Wed. morning HW4 due a week later - How s

More information

CIT 668: System Architecture. Caching

CIT 668: System Architecture. Caching CIT 668: System Architecture Caching Topics 1. Cache Types 2. Web Caching 3. Replacement Algorithms 4. Distributed Caches 5. memcached A cache is a system component that stores data so that future requests

More information

CSCI-1680 WWW Rodrigo Fonseca

CSCI-1680 WWW Rodrigo Fonseca CSCI-1680 WWW Rodrigo Fonseca Based partly on lecture notes by Scott Shenker and John Jannotti Precursors 1945, Vannevar Bush, Memex: a device in which an individual stores all his books, records, and

More information

CSCI-1680 WWW Rodrigo Fonseca

CSCI-1680 WWW Rodrigo Fonseca CSCI-1680 WWW Rodrigo Fonseca Based partly on lecture notes by Sco2 Shenker and John Janno6 Administrivia HW3 out today Will cover HTTP, DNS, TCP TCP Milestone II coming up on Monday Make sure you sign

More information

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng. CS 355 Computer Networking Wei Lu, Ph.D., P.Eng. Chapter 2: Application Layer Overview: Principles of network applications? Introduction to Wireshark Web and HTTP FTP Electronic Mail SMTP, POP3, IMAP DNS

More information

Session 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes

Session 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes Session 8 Deployment Descriptor 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/_status_codes

More information

CS 43: Computer Networks. HTTP September 10, 2018

CS 43: Computer Networks. HTTP September 10, 2018 CS 43: Computer Networks HTTP September 10, 2018 Reading Quiz Lecture 4 - Slide 2 Five-layer protocol stack HTTP Request message Headers protocol delineators Last class Lecture 4 - Slide 3 HTTP GET vs.

More information

Real World Web Scalability. Ask Bjørn Hansen Develooper LLC

Real World Web Scalability. Ask Bjørn Hansen Develooper LLC Real World Web Scalability Ask Bjørn Hansen Develooper LLC Hello. 28 brilliant methods to make your website keep working past $goal requests/transactions/sales per second/hour/day Requiring minimal extra

More information

Executive Summary. Performance Report for: The web should be fast. Top 1 Priority Issues. How does this affect me?

Executive Summary. Performance Report for:   The web should be fast. Top 1 Priority Issues. How does this affect me? The web should be fast. Executive Summary Performance Report for: http://instantwebapp.co.uk/8/ Report generated: Test Server Region: Using: Fri, May 19, 2017, 4:01 AM -0700 Vancouver, Canada Firefox (Desktop)

More information

WEB TECHNOLOGIES CHAPTER 1

WEB TECHNOLOGIES CHAPTER 1 WEB TECHNOLOGIES CHAPTER 1 WEB ESSENTIALS: CLIENTS, SERVERS, AND COMMUNICATION Modified by Ahmed Sallam Based on original slides by Jeffrey C. Jackson THE INTERNET Technical origin: ARPANET (late 1960

More information

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me?

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me? The web should be fast. Executive Summary Performance Report for: https://edwardtbabinski.us/blogger/social/index Report generated: Test Server Region: Using: Analysis options: Tue,, 2017, 4:21 AM -0400

More information

HTTP Reading: Section and COS 461: Computer Networks Spring 2013

HTTP Reading: Section and COS 461: Computer Networks Spring 2013 HTTP Reading: Section 9.1.2 and 9.4.3 COS 461: Computer Networks Spring 2013 1 Recap: Client-Server Communication Client sometimes on Initiates a request to the server when interested E.g., Web browser

More information

WWW, REST, and Web Services

WWW, REST, and Web Services WWW, REST, and Web Services Instructor: Yongjie Zheng Aprile 18, 2017 CS 5553: Software Architecture and Design World Wide Web (WWW) What is the Web? What challenges does the Web have to address? 2 What

More information

Application Level Protocols

Application Level Protocols Application Level Protocols 2 Application Level Protocols Applications handle different kinds of content e.g.. e-mail, web pages, voice Different types of content require different kinds of protocols Application

More information

Executive Summary. Performance Report for: The web should be fast. Top 4 Priority Issues

Executive Summary. Performance Report for:   The web should be fast. Top 4 Priority Issues The web should be fast. Executive Summary Performance Report for: https://www.wpspeedupoptimisation.com/ Report generated: Test Server Region: Using: Tue,, 2018, 12:04 PM -0800 London, UK Chrome (Desktop)

More information

Coding Intro to APIs and REST

Coding Intro to APIs and REST DEVNET-3607 Coding 1001 - Intro to APIs and REST Matthew DeNapoli DevNet Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

Policies to Resolve Archived HTTP Redirection

Policies to Resolve Archived HTTP Redirection Policies to Resolve Archived HTTP Redirection ABC XYZ ABC One University Some city email@domain.com ABSTRACT HyperText Transfer Protocol (HTTP) defined a Status code (Redirection 3xx) that enables the

More information

Introduction to Internet, Web, and TCP/IP Protocols SEEM

Introduction to Internet, Web, and TCP/IP Protocols SEEM Introduction to Internet, Web, and TCP/IP Protocols SEEM 3460 1 Local-Area Networks A Local-Area Network (LAN) covers a small distance and a small number of computers LAN A LAN often connects the machines

More information

Scalable applications with HTTP

Scalable applications with HTTP Scalable applications with HTTP Patrice Neff, co-founder Memonic patrice@memonic.com twitter.com/pneff 20100407 memonic Memonic Founded in 2009 Your personal digital notebook Easy web research Try it out

More information

Web Services Week 10

Web Services Week 10 Web Services Week 10 Emrullah SONUÇ Department of Computer Engineering Karabuk University Fall 2017 1 Recap BPEL Process in Netbeans RESTful Web Services Introduction to Rest Api 2 Contents RESTful Web

More information

Improve Web Application Performance with Zend Platform

Improve Web Application Performance with Zend Platform Improve Web Application Performance with Zend Platform Shahar Evron Zend Sr. PHP Specialist Copyright 2007, Zend Technologies Inc. Agenda Benchmark Setup Comprehensive Performance Multilayered Caching

More information

Agenda. Introduction. Supported Formats. Creating a Custom REST Service. What s Next

Agenda. Introduction. Supported Formats. Creating a Custom REST Service. What s Next Using the ArcGIS Server REST API Jeremy Bartley Keyur Shah Agenda Introduction Design and Concepts Supported Formats REST API Admin Creating a Custom REST Service What s New (Since 9.3) What s Next Conclusion

More information

Scalability, Performance & Caching

Scalability, Performance & Caching COMP 150-IDS: Internet Scale Distributed Systems (Spring 2018) Scalability, Performance & Caching Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah Copyright

More information

CSE 333 Lecture HTTP

CSE 333 Lecture HTTP CSE 333 Lecture 19 -- HTTP Hal Perkins Paul G. Allen School of Computer Science & Engineering University of Washington Administrivia HW4 due a week from Thursday - How s it look? Today: http; finish networking/web

More information

REST Web Services Objektumorientált szoftvertervezés Object-oriented software design

REST Web Services Objektumorientált szoftvertervezés Object-oriented software design REST Web Services Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline HTTP REST REST principles Criticism of REST CRUD operations with REST RPC operations

More information

IBM Security Access Manager Version January Federation Administration topics IBM

IBM Security Access Manager Version January Federation Administration topics IBM IBM Security Access Manager Version 9.0.2.1 January 2017 Federation Administration topics IBM IBM Security Access Manager Version 9.0.2.1 January 2017 Federation Administration topics IBM ii IBM Security

More information

Just relax - take some 90 minutes of ReST

Just relax - take some 90 minutes of ReST Just relax - take some 90 minutes of ReST Markku Laitkorpi Nokia Research Center 4.10.2007 TUT 1 V1-Filename.ppt / yyyy-mm-dd / Initials Prologue: Why should I care? My WS tools can generate a nice SOAP

More information

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies CNIT 129S: Securing Web Applications Ch 3: Web Application Technologies HTTP Hypertext Transfer Protocol (HTTP) Connectionless protocol Client sends an HTTP request to a Web server Gets an HTTP response

More information

Seminar on. By Sai Rahul Reddy P. 2/2/2005 Web Caching 1

Seminar on. By Sai Rahul Reddy P. 2/2/2005 Web Caching 1 Seminar on By Sai Rahul Reddy P 2/2/2005 Web Caching 1 Topics covered 1. Why Caching 2. Advantages of Caching 3. Disadvantages of Caching 4. Cache-Control HTTP Headers 5. Proxy Caching 6. Caching architectures

More information

Web Robots Platform. Web Robots Chrome Extension. Web Robots Portal. Web Robots Cloud

Web Robots Platform. Web Robots Chrome Extension. Web Robots Portal. Web Robots Cloud Features 2016-10-14 Table of Contents Web Robots Platform... 3 Web Robots Chrome Extension... 3 Web Robots Portal...3 Web Robots Cloud... 4 Web Robots Functionality...4 Robot Data Extraction... 4 Robot

More information

7 Topics Concerning Languages & Architecture Stefan JUG KA 2011

7 Topics Concerning Languages & Architecture Stefan JUG KA 2011 7 Topics Concerning Languages & Architecture Stefan Tilkov @stilkov JUG KA 2011 1 http://www.innoq.com Stefan Tilkov stefan.tilkov@innoq.com @stilkov 2 http://rest-http.info 3 1. Language Equality 4 Languages

More information

Drupal Frontend Performance & Scalability

Drupal Frontend Performance & Scalability Riverside Drupal Meetup @ Riverside.io August 14, 2014 Christefano Reyes christo@larks.la, @christefano Who's Your Presenter? Who's Your Presenter? Why We Care About Performance Who's Your Presenter? Why

More information

Scalability, Performance & Caching

Scalability, Performance & Caching COMP 150-IDS: Internet Scale Distributed Systems (Spring 2015) Scalability, Performance & Caching Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah Copyright

More information

CS 43: Computer Networks. Layering & HTTP September 7, 2018

CS 43: Computer Networks. Layering & HTTP September 7, 2018 CS 43: Computer Networks Layering & HTTP September 7, 2018 Last Class: Five-layer Internet Model Application: the application (e.g., the Web, Email) Transport: end-to-end connections, reliability Network:

More information

Introduction to Cisco TV CDS Software APIs

Introduction to Cisco TV CDS Software APIs CHAPTER 1 Cisco TV Content Delivery System (CDS) software provides two sets of application program interfaces (APIs): Monitoring Real Time Streaming Protocol (RTSP) Stream Diagnostics The Monitoring APIs

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer About the Tutorial The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. This is the foundation for data communication

More information

The Architecture of the World Wide Web

The Architecture of the World Wide Web The Architecture of the World Wide Web Laboratory of Computer Technologies L-A Laboratorio di Tecnologie Informatiche L-A Giulio Piancastelli & Andrea Omicini {giulio.piancastelli, andrea.omicini}@unibo.it

More information

HTTP, REST Web Services

HTTP, REST Web Services HTTP, REST Web Services Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2018 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) HTTP, REST Web Services Winter Term 2018 1 / 36 Contents 1 HTTP 2 RESTful

More information

Designing RESTful Web Applications. Ben Ramsey

Designing RESTful Web Applications. Ben Ramsey Designing RESTful Web Applications Ben Ramsey About Me Proud father of 3-month-old Sean Organizer of Atlanta PHP user group Founder of PHP Groups Founding principal of PHP Security Consortium Original

More information

Services Web Nabil Abdennadher

Services Web Nabil Abdennadher Services Web Nabil Abdennadher nabil.abdennadher@hesge.ch 1 Plan What is Web Services? SOAP/WSDL REST http://www.slideshare.net/ecosio/introduction-to-soapwsdl-and-restfulweb-services/14 http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/

More information

Features of a proxy server: - Nowadays, by using TCP/IP within local area networks, the relaying role that the proxy

Features of a proxy server: - Nowadays, by using TCP/IP within local area networks, the relaying role that the proxy Que: -Proxy server Introduction: Proxy simply means acting on someone other s behalf. A Proxy acts on behalf of the client or user to provide access to a network service, and it shields each side from

More information

HashCookies A Simple Recipe

HashCookies A Simple Recipe OWASP London Chapter - 21st May 2009 HashCookies A Simple Recipe Take a cookie Add some salt Add a sequence number John Fitzpatrick Full paper at http://labs.mwrinfosecurity.com Structure What are hashcookies

More information

Distributed Systems Principles and Paradigms. Chapter 12: Distributed Web-Based Systems

Distributed Systems Principles and Paradigms. Chapter 12: Distributed Web-Based Systems Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science steen@cs.vu.nl Chapter 12: Distributed -Based Systems Version: December 10, 2012 Distributed -Based Systems

More information

A Library and Proxy for SPDY

A Library and Proxy for SPDY A Library and Proxy for SPDY Interdisciplinary Project Andrey Uzunov Chair for Network Architectures and Services Department of Informatics Technische Universität München April 3, 2013 Andrey Uzunov (TUM)

More information

Notes beforehand... For more details: See the (online) presentation program.

Notes beforehand... For more details: See the (online) presentation program. Notes beforehand... Notes beforehand... For more details: See the (online) presentation program. Topical overview: main arcs fundamental subjects advanced subject WTRs Lecture: 2 3 4 5 6 7 8 Today: the

More information

Nasuni Data API Nasuni Corporation Boston, MA

Nasuni Data API Nasuni Corporation Boston, MA Nasuni Corporation Boston, MA Introduction The Nasuni API has been available in the Nasuni Filer since September 2012 (version 4.0.1) and is in use by hundreds of mobile clients worldwide. Previously,

More information

The Architecture of the World Wide Web

The Architecture of the World Wide Web The Architecture of the World Wide Web Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini after Giulio Piancastelli andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di

More information

CacheControl Documentation

CacheControl Documentation CacheControl Documentation Release 0.12.4 Eric Larson May 01, 2018 Contents 1 Install 3 2 Quick Start 5 3 Tests 7 4 Disclaimers 9 4.1 Using CacheControl........................................... 9 4.2

More information

A Framework For Transitioning Enterprise Web Services From XML-RPC to REST

A Framework For Transitioning Enterprise Web Services From XML-RPC to REST Association for Information Systems AIS Electronic Library (AISeL) CONF-IRM 2009 Proceedings International Conference on Information Resources Management (CONF-IRM) 5-2009 A Framework For Transitioning

More information

Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017

Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017 CSC 401 Data and Computer Communications Networks Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017 Outline Application Layer (ch 2) 2.1 principles of network applications 2.2

More information

Introduc)on to Computer Networks

Introduc)on to Computer Networks Introduc)on to Computer Networks COSC 4377 Lecture 3 Spring 2012 January 25, 2012 Announcements Four HW0 s)ll missing HW1 due this week Start working on HW2 and HW3 Re- assess if you found HW0/HW1 challenging

More information

Applied Architectures

Applied Architectures Applied Architectures Software Architecture Lecture 17 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Objectives Illustrate how principles have been used to solve

More information

Session 9. Deployment Descriptor Http. Reading and Reference. en.wikipedia.org/wiki/http. en.wikipedia.org/wiki/list_of_http_headers

Session 9. Deployment Descriptor Http. Reading and Reference. en.wikipedia.org/wiki/http. en.wikipedia.org/wiki/list_of_http_headers Session 9 Deployment Descriptor Http 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/http_status_codes

More information

Web server reconnaissance

Web server reconnaissance Web server reconnaissance Reconnaissance and fingerprinting Finding information about a target web server/web site May be illegal to perform reconnaissance on a web server and web site without prior approval/permission.

More information

REST API Developer Preview

REST API Developer Preview REST API Developer Preview Dave Carroll Developer Evangelist dcarroll@salesforce.com @dcarroll Alex Toussaint Sr. Product Manager atoussaint@salesforce.com @alextoussaint Safe Harbor Safe harbor statement

More information

Lecture 7b: HTTP. Feb. 24, Internet and Intranet Protocols and Applications

Lecture 7b: HTTP. Feb. 24, Internet and Intranet Protocols and Applications Internet and Intranet Protocols and Applications Lecture 7b: HTTP Feb. 24, 2004 Arthur Goldberg Computer Science Department New York University artg@cs.nyu.edu WWW - HTTP/1.1 Web s application layer protocol

More information

Nasuni Data API Nasuni Corporation Boston, MA

Nasuni Data API Nasuni Corporation Boston, MA Nasuni Corporation Boston, MA Introduction The Nasuni API has been available in the Nasuni Filer since September 2012 (version 4.0.1) and is in use by hundreds of mobile clients worldwide. Previously,

More information