Web Services. Lecture III. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics

Size: px
Start display at page:

Download "Web Services. Lecture III. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics"

Transcription

1 Web Services Lecture III Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics

2 Outline Web Architecture Internet HTTP URI Hypermedia ROA Principles Hypermedia Best practices Metadata Valdas Rapševičius. Web Services 2

3 Success of Web Internet HTTP URI Hypertext Valdas Rapševičius. Web Services 3

4 Internet Valdas Rapševičius. Web Services 4

5 Transport: TCP/IP TCP: Transmission Control Protocol Error-free data transportation In-order delivery Unsegmented data stream IP: Internet Protocol (IPv4, IPv6) Addressing by IP numbers Relaying datagrams Valdas Rapševičius. Web Services 5

6 Transport by Example Valdas Rapševičius. Web Services 6

7 TCP/IP Packet Valdas Rapševičius. Web Services 7

8 TPC/IP Connection Timeline Valdas Rapševičius. Web Services 8

9 HTTP Hypertext Transfer Protocol The Internet s Multimedia Courier An application layer protocol Reliable? Uses reliable transport! Resources: RFC 2616: IETF HTTP/1.1 RFC RFC 4229: HTTP Header Field Registrations HTTP/1.1: Header Field Definitions Valdas Rapševičius. Web Services 9

10 HTTP Versions HTTP/0.9 (1991) Supports only the GET method Does not support MIMEs, headers, or versions HTTP/1.0 (1991) Version numbers, headers, additional methods, and multimedia object handling HTTP/1.0+ (mid-1990s) Long-lasting keepalive connections, virtual hosting support, and proxy connection support HTTP/1.1 (late-1990s) Semantics specification, performance optimizations, and removing mis-features De-facto current version of HTTP. HTTP-NG (a.k.a. HTTP/2.0) A prototype proposal for an architectural successor to HTTP/1.1 Focuses on performance optimizations and a more powerful framework for remote execution of server logic Valdas Rapševičius. Web Services 10

11 Web Architecture Web Servers Host web resources (source of web content) Proxies HTTP intermediaries that sit between clients and servers Caches HTTP storehouses that keep copies of popular web pages close to clients Gateways Special web servers that connect to other applications Tunnels Special proxies that blindly forward HTTP communications Agents (aka Clients) Semi-intelligent web clients that make automated HTTP requests Valdas Rapševičius. Web Services 11

12 HTTP: Messages Valdas Rapševičius. Web Services 12

13 Telnet Example Valdas Rapševičius. Web Services 13

14 HTTP: Message Parts Method The action that the client wants the server to perform on the resource. It is a single word, like GET, HEAD, or POST Request-URL A complete URL naming the requested resource, or the path component of the URL Version The version of HTTP that the message is using. Its format looks like: HTTP/<major>.<minor> where major and minor both are integers Status-code A three-digit number describing what happened during the request. The first digit of each code describes the general class of status ( success, error, etc.). Reason-phrase A human-readable version of the numeric status code, consisting of all the text until the end-of-line sequence. The reason phrase is meant solely for human consumption, so, for example, response lines containing HTTP/ NOT OK and HTTP/ OK. Headers Zero or more headers, each of which is a name, followed by a colon (:), followed by optional whitespace, followed by a value, followed by a CRLF. The headers are terminated by a blank line (CRLF), marking the end of the list of headers and the beginning of the entity body. Entity-body The entity body contains a block of arbitrary data. Not all messages contain entity bodies, so sometimes a message terminates with a bare CRLF Valdas Rapševičius. Web Services 14

15 HTTP: Methods Valdas Rapševičius. Web Services 15

16 HTTP: Status Code Valdas Rapševičius. Web Services 16

17 200 OK Success Status Codes Standard response for successful HTTP requests. 201 Created The request has been fulfilled and resulted in a new resource being created. 202 Accepted The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. 203 Non-Authoritative Information (since HTTP/1.1) The server successfully processed the request, but is returning information that may be from another source. 204 No Content The server successfully processed the request, but is not returning any content. 205 Reset Content The server successfully processed the request, but is not returning any content. Unlike a 204 response, this response requires that the requester reset the document view. 206 Partial Content The server is delivering only part of the resource due to a range header sent by the client. The range header is used by tools like wget to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams Valdas Rapševičius. Web Services 17

18 Redirection Status Codes (1) 300 Multiple Choices Indicates multiple options for the resource that the client may follow. It, for instance, could be used to present different format options for video, list files with different extensions, or word sense disambiguation. 301 Moved Permanently This and all future requests should be directed to the given URI 302 Found This is an example of industry practice contradicting the standard. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was "Moved Temporarily") but popular browsers implemented 302 with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours. However, some Web applications and frameworks use the 302 status code as if it were the See Other (since HTTP/1.1) The response to the request can be found under another URI using a GET method. When received in response to a POST (or PUT/DELETE), it should be assumed that the server has received the data and the redirect should be issued with a separate GET message. 304 Not Modified Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-Match. This means that there is no need to retransmit the resource, since the client still has a previously-downloaded copy Valdas Rapševičius. Web Services 18

19 Redirection Status Codes (2) 305 Use Proxy (since HTTP/1.1) The requested resource is only available through a proxy, whose address is provided in the response. 306 Switch Proxy No longer used. Originally meant "Subsequent requests should use the specified proxy." 307 Temporary Redirect (since HTTP/1.1) In this case, the request should be repeated with another URI; however, future requests should still use the original URI. In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request. For instance, a POST request should be repeated using another POST request. 308 Permanent Redirect (approved as experimental RFC) The request, and all future requests should be repeated using another URI. 307 and 308 (as proposed) parallel the behaviour of 302 and 301, but do not allow the HTTP method to change. So, for example, submitting a form to a permanently redirected resource may continue smoothly Valdas Rapševičius. Web Services 19

20 301 Example Valdas Rapševičius. Web Services 20

21 304 Example Valdas Rapševičius. Web Services 21

22 Client Error Codes (1) 400 Bad Request The request cannot be fulfilled due to bad syntax 401 Unauthorized Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. 402 Payment Required Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, but that has not happened, and this code is not usually used. YouTube uses this status if a particular IP address has made excessive requests, and requires the person to enter a CAPTCHA. 403 Forbidden The request was a valid request, but the server is refusing to respond to it. Unlike a 401 Unauthorized response, authenticating will make no difference. On servers where authentication is required, this commonly means that the provided credentials were successfully authenticated but that the credentials still do not grant the client permission to access the resource (e.g. a recognized user attempting to access restricted content). 404 Not Found The requested resource could not be found but may be available again in the future. 405 Method Not Allowed A request was made of a resource using a request method not supported by that resource; for example, using GET on a form which requires data to be presented via POST, or using PUT on a read-only resource Valdas Rapševičius. Web Services 22

23 Client Error Codes (2) 406 Not Acceptable The requested resource is only capable of generating content not acceptable according to the Accept headers sent in the request. 407 Proxy Authentication Required The client must first authenticate itself with the proxy. 408 Request Timeout The server timed out waiting for the request. According to W3 HTTP specifications: "The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time." 409 Conflict Indicates that the request could not be processed because of conflict in the request, such as an edit conflict. 410 Gone Indicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource again in the future. Clients such as search engines should remove the resource from their indices. Most use cases do not require clients and search engines to purge the resource, and a "404 Not Found" may be used instead. 411 Length Required The request did not specify the length of its content, which is required by the requested resource Valdas Rapševičius. Web Services 23

24 Client Error Codes (3) 412 Precondition Failed The server does not meet one of the preconditions that the requester put on the request. 413 Request Entity Too Large The request is larger than the server is willing or able to process. 414 Request-URI Too Long The URI provided was too long for the server to process. 415 Unsupported Media Type The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format. 416 Requested Range Not Satisfiable The client has asked for a portion of the file, but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file. 417 Expectation Failed The server cannot meet the requirements of the Expect request-header field Valdas Rapševičius. Web Services 24

25 Server Error Codes 500 Internal Server Error A generic error message, given when no more specific message is suitable. 501 Not Implemented The server either does not recognize the request method, or it lacks the ability to fulfill the request. 502 Bad Gateway The server was acting as a gateway or proxy and received an invalid response from the upstream server. 503 Service Unavailable The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state. 504 Gateway Timeout The server was acting as a gateway or proxy and did not receive a timely response from the upstream server. 505 HTTP Version Not Supported The server does not support the HTTP protocol version used in the request Valdas Rapševičius. Web Services 25

26 HTTP Headers General headers These are generic headers used by both clients and servers. They serve general purposes that are useful for clients, servers, and other applications to supply to one another. Request headers As the name implies, request headers are specific to request messages. They provide extra information to servers, such as what type of data the client is willing to receive. Response headers Response messages have their own set of headers that provide information to the client Entity headers Entity headers refer to headers that deal with the entity body. For instance, entity headers can tell the type of the data in the entity body. Extension headers Extension headers are nonstandard headers that have been created by application developers but not yet added to the sanctioned HTTP specification. HTTP programs need to tolerate and forward extension headers, even if they don t know what the headers mean Valdas Rapševičius. Web Services 26

27 General Headers General Request Informational Accept Conditional Security Proxy Response Informational Negotiation Security Entity Informational Contents Caching Extension Valdas Rapševičius. Web Services 27

28 General Headers (1) Date The date and time that the message was sent Date: Tue, 15 Nov :12:31 GMT Connection What type of connection the user-agent would prefer Connection: keep-alive Trailer The Trailer general field value indicates that the given set of header fields is present in the trailer of a message encoded with chunked transfer-coding. Trailer: Max-Forwards Transfer-Encoding The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity. Transfer-Encoding: chunked Valdas Rapševičius. Web Services 28

29 General Headers (2) Upgrade Via Ask the client/server to upgrade to another protocol. Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 Informs the server of proxies through which the request was sent. Via: 1.0 fred, 1.1 example.com (Apache/1.1) Cache-Control Used to specify directives that MUST be obeyed by all caching mechanisms along the request/response chain Cache-Control: no-cache Pragma Implementation-specific headers that may have various effects anywhere along the requestresponse chain. Pragma: no-cache Valdas Rapševičius. Web Services 29

30 General Headers General Request Informational Accept Conditional Security Proxy Response Informational Negotiation Security Entity Informational Contents Caching Extension Valdas Rapševičius. Web Services 30

31 Request Informational Headers From Host The address of the user making the request From: The domain name of the server (for virtual hosting), and the TCP port number on which the server is listening. The port number may be omitted if the port is the standard port for the service requested.[5] Mandatory since HTTP/1.1. Although domain name are specified as caseinsensitive,[6][7] it is not specified whether the contents of the Host field should be interpreted in a case-insensitive manner[8] and in practice some implementations of virtual hosting interpret the contents of the Host field in a case-sensitive manner.[citation needed] Host: en.wikipedia.org:80 Host: mif.vu.lt Referer This is the address of the previous web page from which a link to the currently requested page was followed. (The word referrer is misspelled in the RFC as well as in most implementations.) Referer: Valdas Rapševičius. Web Services 31

32 Non-standard Request Informational Headers These headers are not defined in RFC 2616 but are implemented by many HTTP client applications: Client-IP Provides the IP address of the machine on which the client is running UA-Color Provides information about the color capabilities of the client machine s display UA-CPU Gives the type or manufacturer of the client s CPU UA-Disp Provides information about the client s display (screen) capabilities UA-OS Gives the name and version of operating system running on the client machine UA-Pixels Provides pixel information about the client machine s display Valdas Rapševičius. Web Services 32

33 Request Accept Headers Accept Content-Types that are acceptable Accept: text/plain Accept-Charset Character sets that are acceptable Accept-Charset: utf-8 Accept-Encoding Acceptable encodings. Accept-Encoding: gzip, deflate Accept-Language Acceptable human languages for response Accept-Language: en-us Accept-Datetime TE Acceptable version in time Accept-Datetime: Thu, 31 May :35:00 GMT The transfer encodings the user agent is willing to accept: the same values as for the response header Transfer-Encoding can be used, plus the "trailers" value (related to the "chunked" transfer method) to notify the server it expects to receive additional headers (the trailers) after the last, zero-sized, chunk. TE: trailers, deflate Valdas Rapševičius. Web Services 33

34 Request Conditional Headers Expect Indicates that particular server behaviors are required by the client Expect: 100-continue If-Match Only perform the action if the client supplied entity matches the same entity on the server. This is mainly for methods like PUT to only update a resource if it has not been modified since the user last updated it. If-Match: "737060cd8c284d8af7ad3082f209582d" If-Modified-Since Allows a 304 Not Modified to be returned if content is unchanged If-Modified-Since: Sat, 29 Oct :43:31 GMT If-None-Match Allows a 304 Not Modified to be returned if content is unchanged If-None-Match: "737060cd8c284d8af7ad3082f209582d" If-Range If the entity is unchanged, send me the part(s) that I am missing; otherwise, send me the entire new entity If-Range: "737060cd8c284d8af7ad3082f209582d" If-Unmodified-Since Only send the response if the entity has not been modified since a specific time. If-Unmodified-Since: Sat, 29 Oct :43:31 GMT Valdas Rapševičius. Web Services 34

35 Request Security & Proxy Headers Authorization Authentication credentials for HTTP authentication Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Cookie An HTTP cookie previously sent by the server with Set-Cookie Cookie: $Version=1; Skin=new; Proxy-Authorization Authorization credentials for connecting to a proxy. Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Max-Forwards Limit the number of times the message can be forwarded through proxies or gateways Max-Forwards: Valdas Rapševičius. Web Services 35

36 General Headers General Request Informational Accept Conditional Security Proxy Response Informational Negotiation Security Entity Informational Contents Caching Extension Valdas Rapševičius. Web Services 36

37 Response Informational Headers Age The age the object has been in a proxy cache in seconds Age: 12 Retry-After If an entity is temporarily unavailable, this instructs the client to try again after a specified period of time (seconds). Retry-After: 120 Server A name for the server Server: Apache/2.4.1 (Unix) Warning A general warning about possible problems with the entity body. Warning: 199 Miscellaneous warning Valdas Rapševičius. Web Services 37

38 Response Negotiation Headers Accept-Ranges Vary What partial content range types this server supports Accept-Ranges: bytes Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server. Vary: * Valdas Rapševičius. Web Services 38

39 Response Security Headers Set-Cookie An HTTP cookie Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 Proxy-Authenticate Request authentication to access the proxy. Proxy-Authenticate: Basic WWW-Authenticate Indicates the authentication scheme that should be used to access the requested entity. WWW-Authenticate: Basic Valdas Rapševičius. Web Services 39

40 General Headers General Request Informational Accept Conditional Security Proxy Response Informational Negotiation Security Entity Informational Contents Caching Extension Valdas Rapševičius. Web Services 40

41 Entity Informational Headers Allow Valid actions for a specified resource. To be used for a 405 Method not allowed Allow: GET, HEAD Location Used in redirection, or when a new resource has been created Location: Valdas Rapševičius. Web Services 41

42 Entity Content Headers (1) Content-Encoding The type of encoding used on the data. Content-Encoding: gzip Content-Language The language the content is in Content-Language: da Content-Length The length of the response body in octets (8-bit bytes) Content-Length: 348 Content-Location An alternate location for the returned data Content-Location: /index.htm Valdas Rapševičius. Web Services 42

43 Entity Content Headers (2) Content-Location An alternate location for the returned data Content-Location: /index.htm Content-MD5 A Base64-encoded binary MD5 sum of the content of the response Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== Content-Disposition An opportunity to raise a "File Download" dialogue box for a known MIME type with binary format or suggest a filename for dynamic content. Quotes are necessary with special characters. Content-Disposition: attachment; filename="fname.ext" Content-Range Where in a full body message this partial message belongs Content-Range: bytes /47022 Content-Type The MIME type of this content Content-Type: text/html; charset=utf Valdas Rapševičius. Web Services 43

44 Entity Caching Headers Etag An identifier for a specific version of a resource, often a message digest ETag: "737060cd8c284d8af7ad3082f209582d" Expires Gives the date/time after which the response is considered stale Expires: Thu, 01 Dec :00:00 GMT Last-Modified The last modified date for the requested object, in RFC 2822 format Last-Modified: Tue, 15 Nov :45:26 GMT Valdas Rapševičius. Web Services 44

45 Caching Valdas Rapševičius. Web Services 45

46 Caching: Workflow Valdas Rapševičius. Web Services 46

47 Cache: If-Modified-Since Valdas Rapševičius. Web Services 47

48 Entity Tags: ETag Valdas Rapševičius. Web Services 48

49 Basic Authentication (1) Valdas Rapševičius. Web Services 49

50 Basic Authentication (2) Valdas Rapševičius. Web Services 50

51 Digest Authentication Valdas Rapševičius. Web Services 51

52 Secure HTTP Valdas Rapševičius. Web Services 52

53 Public Key Encryption Valdas Rapševičius. Web Services 53

54 SSL process (1) Valdas Rapševičius. Web Services 54

55 SSL process (2) Valdas Rapševičius. Web Services 55

56 Content Encoding Valdas Rapševičius. Web Services 56

57 Range Request Valdas Rapševičius. Web Services 57

58 Entity Tags Valdas Rapševičius. Web Services 58

59 HTTP Entities Messages Are Crates, Entities Are Cargo Content Type: MIME (Multipurpose Internet Mail Extensions) Type or Content-Type text/plain (type/subtype) New type registration Procedure RFC Valdas Rapševičius. Web Services 59

60 Multipart Entities Valdas Rapševičius. Web Services 60

61 HTTP problems Single request per connection Because HTTP can only fetch one resource at a time (HTTP pipelining helps, but still enforces only a FIFO queue), a server delay of 500 ms prevents reuse of the TCP channel for additional requests. Browsers work around this problem by using multiple connections. Since 2008, most browsers have finally moved from 2 connections per domain to 6. Exclusively client-initiated requests In HTTP, only the client can initiate a request. Even if the server knows the client needs a resource, it has no mechanism to inform the client and must instead wait to receive a request for the resource from the client. Uncompressed request and response headers Request headers today vary in size from ~200 bytes to over 2KB. As applications use more cookies and user agents expand features, typical header sizes of bytes is common. For modems or ADSL connections, in which the uplink bandwidth is fairly low, this latency can be significant. Reducing the data in headers could directly improve the serialization latency to send requests Redundant headers In addition, several headers are repeatedly sent across requests on the same channel. However, headers such as the User-Agent, Host, and Accept* are generally static and do not need to be resent. Optional data compression. HTTP uses optional compression encodings for data. Content should always be sent in a compressed format. Source: Valdas Rapševičius. Web Services 61

62 Goals Future of HTTP Not to replace HTTP! One connection: prioritizing and multiplexing of subresources Compressing and caching headers Alternatives: HTTP 2.0 Developed by the Hypertext Transfer Protocol Bis (httpbis) working group of the IETF SPDY By Google Supported by Chrome/Chromium, FF 11+ S+M Microsoft WebSockets Full duplex protocol over TCP Valdas Rapševičius. Web Services 62

63 URI URI Uniform Resource Identifier Uniquely Identifies resources in Web URL Uniform Resource Locator Most common form of resource identifier Describe the specific location of a resource on a particular server URN Uniform Resource Name Unique name for a particular piece of content, independent of where the resource currently resides urn:ietf:rfc: Valdas Rapševičius. Web Services 63

64 URL Syntax Valdas Rapševičius. Web Services 64

65 URI Schemes Scheme + : + scheme-specific part Examples: skype:<username or phone number>?call news:alt.tv.simpsons feed: Valdas Rapševičius. Web Services 65

66 Hypertext Hypertext is text which is not constrained to be linear. Hypertext is text which contains links to other texts. The term was coined by Ted Nelson around HyperMedia is a term used for hypertext which is not constrained to be text: it can include graphics, video and sound. Apparently Ted Nelson was the first to use this term too. Hypertext and HyperMedia are concepts, not products Valdas Rapševičius. Web Services 66

67 REST Representational State Transfer (REST) A style of software architecture for distributed systems such as the World Wide Web REST has emerged as a predominant web service design model ROA (Resource-Oriented Architecture) Valdas Rapševičius. Web Services 67

68 REST: Origins Roy Fielding documented REST based on the principles that emerged as the Web evolved (Fielding 2000) Noticed that Web servers, clients, and intermediaries shared some principles that gave them extensibility to work on the large-scale of the Internet Identified four principles of REST (which he called constraints) (Fielding 2000): 1. Identification of resources 2. Manipulation of resources through representations 3. Self-descriptive messages 4. Hypermedia as the engine of application state (abbreviated HATEOAS) Valdas Rapševičius. Web Services 68

69 REST Data Elements Valdas Rapševičius. Web Services 69

70 Resource The key abstraction of information in REST is a resource Any information that can be named can be a resource a document or image a temporal service (e.g. "today's weather in Los Angeles") a collection of other resources, a non-virtual object (e.g. a person) Any concept that might be the target of an author's hypertext reference must fit within the definition of a resource Valdas Rapševičius. Web Services 70

71 Resource Representation A representation is a sequence of bytes, plus representation metadata to describe those bytes. Other commonly used but less precise names for a representation include: document, file, and HTTP message entity, instance, or variant. A representation consists of data, metadata describing the data, and, on occasion, metadata to describe the metadata (usually for the purpose of verifying message integrity). Metadata is in the form of name-value pairs, where the name corresponds to a standard that defines the value's structure and semantics Valdas Rapševičius. Web Services 71

72 Resource State + Transfer A given representation may indicate the current state of the requested resource or the desired state for the requested resource Valdas Rapševičius. Web Services 72

73 REST Principles Addressability Every object and resource in your system is reachable through a unique identifier Use URIs (URLs)! Constrained interface Stick to the finite set of operations of the application protocol Use HTTP methods! Familiarity, Interoperability, Scalability Representation oriented Client receives a representation of the current state of that resource Client puts or post passes a representation of the resource to the server so that the underlying resource s state can change Use MIME Types! Communicate Statelessly There is no client session data stored on the server Hypermedia As The Engine Of Application State (HATEOAS) Location transparency Decoupling interaction details Reduced state transition errors Valdas Rapševičius. Web Services 73

74 REST Example Valdas Rapševičius. Web Services 74

75 Representations Standard: RDF (application/rdf+xml) Atom Syndication Format (application/atom+xml) GData (Google) or OData (Microsoft) Language-based: Microformat (application/xml, text/xml) Format-based: XML or POX (application/xml, text/xml) JSON (application/json) YAML (text/x-yaml) Valdas Rapševičius. Web Services 75

76 Hypermedia Hypermedia is a document-centric approach with the added support for embedding links to other services and information within that document format Valdas Rapševičius. Web Services 76

77 ROA Best Practices Representations Should Be Addressable (URI) State and Statelessness State of the Resource (ETag) State of Application (URI) Connectedness Links and forms connect the resources to each other The Uniform Interface (HTTP methods) Safety (HEAD & GET methods) Idempotence (PUT & DELETE methods) PUT vs POST Client can create a resource via PUT if it can calculate the final URI Overloading GET & POST? Transactions (as resources)? Authentication Versioning Valdas Rapševičius. Web Services 77

78 Common REST Mistakes Tunneling everything through GET Ignoring response codes Ignoring caching Ignoring hypermedia Ignoring MIME types Valdas Rapševičius. Web Services 78

79 REST API Implementation Figure out the data set Split the data set into resources For each kind of resource: Name the resources with URIs Expose a subset of the uniform interface Design the representation(s) accepted from the client Design the representation(s) served to the client Integrate this resource into existing resources, using hypermedia links and forms Consider the typical course of events: what s supposed to happen? Consider error conditions: what might go wrong? Valdas Rapševičius. Web Services 79

80 RO Analysis and Design (ROA/D) Valdas Rapševičius. Web Services 80

81 From Data to GUI Valdas Rapševičius. Web Services 81

82 REST Services Maturity Level 0 services that have a single URI (all interactions through a single resource) use a single HTTP method (typically POST, i.e., WS-*) Level 1 many URIs (numerous logical resources) single HTTP verb Level 2 numerous URI-addressable resources several of the HTTP verbs on each exposed resource (CRUD) Level 3 representations contain URI links to other resources application state transitions as a result by Valdas Rapševičius. Web Services 82

83 Metadata Entry point(s) Resource paths Methods to access these resources GET, POST, PUT, etc. Parameters that need to be supplied with these methods Query, Template, HTTP Header, etc. Formats of inbound / outbound messages/representations JSON Schema, XML Schema, Relax NG, etc. Status codes and error/fault messages Documentary information for all these descriptions, etc Valdas Rapševičius. Web Services 83

84 Metadata formats WSDL WADL Web Application Description Language submitted to the W3C by Sun in Swagger Developed by Reverb iodocs Developed by Masherys apiary.io Developed by Apiary Valdas Rapševičius. Web Services 84

85 Future of Web Valdas Rapševičius. Web Services 85

86 Conclusions Web is based on simple principles REST Resources Web (see Web!) Hypermedia New protocols WebSockets, SPDY/HTTP/2.0 SOA vs ROA Simplicity wins again! Valdas Rapševičius. Web Services 86

Header Status Codes Cheat Sheet

Header Status Codes Cheat Sheet Header Status Codes Cheat Sheet Thanks for downloading our header status codes cheat sheet! Below you ll find all the header status codes and their meanings. They are organized by sections, starting with

More information

COMPUTER NETWORKS AND COMMUNICATION PROTOCOLS. Web Access: HTTP Mehmet KORKMAZ

COMPUTER NETWORKS AND COMMUNICATION PROTOCOLS. Web Access: HTTP Mehmet KORKMAZ COMPUTER NETWORKS AND COMMUNICATION PROTOCOLS Web Access: HTTP 16501018 Mehmet KORKMAZ World Wide Web What is WWW? WWW = World Wide Web = Web!= Internet Internet is a global system of interconnected computer

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

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

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

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

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

SIP Compliance APPENDIX

SIP Compliance APPENDIX APPENDIX E This appendix describes Cisco SIP proxy server (Cisco SPS) compliance with the Internet Engineering Task Force (IETF) definition of Session Initiation Protocol (SIP) as described in the following

More information

Computer Networks. Wenzhong Li. Nanjing University

Computer Networks. Wenzhong Li. Nanjing University Computer Networks Wenzhong Li Nanjing University 1 Chapter 8. Internet Applications Internet Applications Overview Domain Name Service (DNS) Electronic Mail File Transfer Protocol (FTP) WWW and HTTP Content

More information

COSC 2206 Internet Tools. The HTTP Protocol

COSC 2206 Internet Tools. The HTTP Protocol COSC 2206 Internet Tools The HTTP Protocol http://www.w3.org/protocols/ What is TCP/IP? TCP: Transmission Control Protocol IP: Internet Protocol These network protocols provide a standard method for sending

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

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

RESTful Services. Distributed Enabling Platform

RESTful Services. Distributed Enabling Platform RESTful Services 1 https://dev.twitter.com/docs/api 2 http://developer.linkedin.com/apis 3 http://docs.aws.amazon.com/amazons3/latest/api/apirest.html 4 Web Architectural Components 1. Identification:

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

How to work with HTTP requests and responses

How to work with HTTP requests and responses How a web server processes static web pages Chapter 18 How to work with HTTP requests and responses How a web server processes dynamic web pages Slide 1 Slide 2 The components of a servlet/jsp application

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

Internet Architecture. Web Programming - 2 (Ref: Chapter 2) IP Software. IP Addressing. TCP/IP Basics. Client Server Basics. URL and MIME Types HTTP

Internet Architecture. Web Programming - 2 (Ref: Chapter 2) IP Software. IP Addressing. TCP/IP Basics. Client Server Basics. URL and MIME Types HTTP Web Programming - 2 (Ref: Chapter 2) TCP/IP Basics Internet Architecture Client Server Basics URL and MIME Types HTTP Routers interconnect the network TCP/IP software provides illusion of a single network

More information

Lecture 3. HTTP v1.0 application layer protocol. into details. HTTP 1.0: RFC 1945, T. Berners-Lee HTTP 1.1: RFC 2068, 2616

Lecture 3. HTTP v1.0 application layer protocol. into details. HTTP 1.0: RFC 1945, T. Berners-Lee HTTP 1.1: RFC 2068, 2616 Lecture 3. HTTP v1.0 application layer protocol into details HTTP 1.0: RFC 1945, T. Berners-Lee Lee,, R. Fielding, H. Frystyk, may 1996 HTTP 1.1: RFC 2068, 2616 Ascii protocol uses plain text case sensitive

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

Compliance with RFC 3261

Compliance with RFC 3261 APPENDIX A Compliance with RFC 3261 This appendix describes how the Cisco Unified IP Phone 7960G and 7940G complies with the IETF definition of SIP as described in RFC 3261. It contains compliance information

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

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

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

Information About SIP Compliance with RFC 3261

Information About SIP Compliance with RFC 3261 APPENDIX A Information About SIP Compliance with RFC 3261 This appendix describes how the Cisco SIP IP phone complies with the IETF definition of SIP as described in RFC 3261. It has compliance information

More information

The search being performed may take a significant time so a forking proxy must send a 100 Trying response.

The search being performed may take a significant time so a forking proxy must send a 100 Trying response. SIP Response Codes Article Number: 178 Rating: Unrated Last Updated: Wed, Nov 15, 2017 at 2:31 PM SIP Response Codes 1xx Provisional Responses 100 Trying Extended The search being performed may take a

More information

Hypertext Transport Protocol HTTP/1.1

Hypertext Transport Protocol HTTP/1.1 Hypertext Transport Protocol HTTP/1.1 Jim Gettys Digital Equipment Corporation, ISBU Visiting Scientist, World Wide Web Consortium 10/17/96 20-Apr-01 1 Acknowledgments HTTP/1.1 Authors Roy Fielding (UCI)

More information

Applications & Application-Layer Protocols: The Web & HTTP

Applications & Application-Layer Protocols: The Web & HTTP CPSC 360 Network Programming Applications & Application-Layer Protocols: The Web & HTTP Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc360

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

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

Networks, WWW, HTTP. Web Technologies I. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP / 35

Networks, WWW, HTTP. Web Technologies I. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP / 35 Networks, WWW, HTTP Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP 2018 1 / 35 Table of Contents Networks Internet 1 Networks Internet

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

NDEV Mobile HTTP Services for NDEV Mobile Clients

NDEV Mobile HTTP Services for NDEV Mobile Clients NDEV Mobile HTTP Services for NDEV Mobile Clients Notice NDEV Mobile HTTP Services for NDEV Mobile Clients Copyright 2011-2012 Nuance Communications, Inc. All rights reserved. Published by Nuance Communications,

More information

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary INTERNET ENGINEERING HTTP Protocol Sadegh Aliakbary Agenda HTTP Protocol HTTP Methods HTTP Request and Response State in HTTP Internet Engineering 2 HTTP HTTP Hyper-Text Transfer Protocol (HTTP) The fundamental

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

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

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

DATA COMMUNICATOIN NETWORKING

DATA COMMUNICATOIN NETWORKING DATA COMMUNICATOIN NETWORKING Instructor: Ouldooz Baghban Karimi Course Book: Computer Networking, A Top-Down Approach By: Kurose, Ross Introduction Course Overview Basics of Computer Networks Internet

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

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

WAP Push Message Version 16-August-1999

WAP Push Message Version 16-August-1999 WAP Push Message Version 16-August-1999 Wireless Application Protocol Push Message Specification Notice: Wireless Application Protocol Forum, Ltd. 1999. Terms and conditions of use are available from the

More information

Review of Previous Lecture

Review of Previous Lecture Review of Previous Lecture Network access and physical media Internet structure and ISPs Delay & loss in packet-switched networks Protocol layers, service models Some slides are in courtesy of J. Kurose

More information

Application Protocols and HTTP

Application Protocols and HTTP Application Protocols and HTTP 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross Administrivia Lab #0 due

More information

Application-layer Protocols and Internet Services

Application-layer Protocols and Internet Services Application-layer Protocols and Internet Services Computer Networks Lecture 8 http://goo.gl/pze5o8 Terminal Emulation 2 Purpose of Telnet Service Supports remote terminal connected via network connection

More information

World-Wide Web Protocols CS 571 Fall Kenneth L. Calvert All rights reserved

World-Wide Web Protocols CS 571 Fall Kenneth L. Calvert All rights reserved World-Wide Web Protocols CS 571 Fall 2006 2006 Kenneth L. Calvert All rights reserved World-Wide Web The Information Universe World-Wide Web structure: hypertext Nonlinear presentation of information Key

More information

Service Oriented Architectures (ENCS 691K Chapter 2)

Service Oriented Architectures (ENCS 691K Chapter 2) Service Oriented Architectures (ENCS 691K Chapter 2) Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ The Key Technologies on Which Cloud

More information

Web, HTTP and Web Caching

Web, HTTP and Web Caching Web, HTTP and Web Caching 1 HTTP overview HTTP: hypertext transfer protocol Web s application layer protocol client/ model client: browser that requests, receives, displays Web objects : Web sends objects

More information

Web Technology. COMP476 Networked Computer Systems. Hypertext and Hypermedia. Document Representation. Client-Server Paradigm.

Web Technology. COMP476 Networked Computer Systems. Hypertext and Hypermedia. Document Representation. Client-Server Paradigm. Web Technology COMP476 Networked Computer Systems - Paradigm The method of interaction used when two application programs communicate over a network. A server application waits at a known address and a

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

HTTP Security. CSC 482/582: Computer Security Slide #1

HTTP Security. CSC 482/582: Computer Security Slide #1 HTTP Security CSC 482/582: Computer Security Slide #1 Topics 1. How HTTP works 2. HTTP methods, headers, and responses 3. URIs, URLs, and URNs 4. Statelessness 5. Cookies 6. More HTTP methods and headers

More information

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018 Understanding RESTful APIs and documenting them with Swagger Presented by: Tanya Perelmuter Date: 06/18/2018 1 Part 1 Understanding RESTful APIs API types and definitions REST architecture and RESTful

More information

Session Initiation Protocol (SIP)

Session Initiation Protocol (SIP) Session Initiation Protocol (SIP) Introduction A powerful alternative to H.323 More flexible, simpler Easier to implement Advanced features Better suited to the support of intelligent user devices A part

More information

CSP 1.3: An HTTP-Based Protocol for Parameterized, Aggregated Content

CSP 1.3: An HTTP-Based Protocol for Parameterized, Aggregated Content CSP 1.3: An HTTP-Based Protocol for Parameterized, Aggregated Content This document was modified: 9/26/2005 1. Introduction...3 1.1. Motivation and Design Goals...3 1.2. Glossary of Terms...3 2. Protocol

More information

How to Configure Authentication and Access Control (AAA)

How to Configure Authentication and Access Control (AAA) How to Configure Authentication and Access Control (AAA) Overview The Barracuda Web Application Firewall provides features to implement user authentication and access control. You can create a virtual

More information

CSP 1.4: An HTTP-Based Protocol for Parameterized, Aggregated Content

CSP 1.4: An HTTP-Based Protocol for Parameterized, Aggregated Content CSP 1.4: An HTTP-Based Protocol for Parameterized, Aggregated Content This document was modified: 6/25/2007 1. Introduction... 3 1.1. Motivation and Design Goals... 3 1.2. Glossary of Terms... 3 2. Protocol

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

Internet Protocols. Robin Sharp

Internet Protocols. Robin Sharp Internet Protocols Robin Sharp Informatics and Mathematical Modelling Technical University of Denmark Phone: (+45) 4525 3749 e-mail: robin@imm.dtu.dk Internet Protocols Just to remind you: Application

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

Networking. Layered Model. DoD Model. Application Layer. ISO/OSI Model

Networking. Layered Model. DoD Model. Application Layer. ISO/OSI Model Networking Networking is concerned with the physical topology of two or more communicating entities and the logical topology of data transmission. Layered Model Systems communicate over a shared communication

More information

Hypertext Transport Protocol

Hypertext Transport Protocol Hypertext Transport Protocol CSE 333 Summer 2018 Instructor: Hal Perkins Teaching Assistants: Renshu Gu William Kim Soumya Vasisht Administriia Section tomorrow: pthread tutorial/demo Followup exercise

More information

HTTP. Robert Grimm New York University

HTTP. Robert Grimm New York University HTTP Robert Grimm New York University Administrivia! Web cams! http://orwell1.cs.nyu.edu! http://orwell2.cs.nyu.edu! http://66.93.85.13/! Linux servers running JDK 1.4.1! class[20-25].scs.cs.nyu.edu! Reading

More information

Browser behavior can be quite complex, using more HTTP features than the basic exchange, this trace will show us how much gets transferred.

Browser behavior can be quite complex, using more HTTP features than the basic exchange, this trace will show us how much gets transferred. Lab Exercise HTTP Objective HTTP (HyperText Transfer Protocol) is the main protocol underlying the Web. HTTP functions as a request response protocol in the client server computing model. A web browser,

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

[MS-PCCRTP]: Peer Content Caching and Retrieval: Hypertext Transfer Protocol (HTTP) Extensions

[MS-PCCRTP]: Peer Content Caching and Retrieval: Hypertext Transfer Protocol (HTTP) Extensions [MS-PCCRTP]: Peer Content Caching and Retrieval: Hypertext Transfer Protocol (HTTP) Extensions Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft

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

CSSE 460 Computer Networks Group Projects: Implement a Simple HTTP Web Proxy

CSSE 460 Computer Networks Group Projects: Implement a Simple HTTP Web Proxy CSSE 460 Computer Networks Group Projects: Implement a Simple HTTP Web Proxy Project Overview In this project, you will implement a simple web proxy that passes requests and data between a web client and

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

HyperText Transfer Protocol

HyperText Transfer Protocol Outline Introduce Socket Programming Domain Name Service (DNS) Standard Application-level Protocols email (SMTP) HTTP HyperText Transfer Protocol Defintitions A web page consists of a base HTML-file which

More information

13. Internet Applications 최양희서울대학교컴퓨터공학부

13. Internet Applications 최양희서울대학교컴퓨터공학부 13. Internet Applications 최양희서울대학교컴퓨터공학부 Internet Applications Telnet File Transfer (FTP) E-mail (SMTP) Web (HTTP) Internet Telephony (SIP/SDP) Presence Multimedia (Audio/Video Broadcasting, AoD/VoD) Network

More information

REST. Lecture BigData Analytics. Julian M. Kunkel. University of Hamburg / German Climate Computing Center (DKRZ)

REST. Lecture BigData Analytics. Julian M. Kunkel. University of Hamburg / German Climate Computing Center (DKRZ) REST Lecture BigData Analytics Julian M. Kunkel julian.kunkel@googlemail.com University of Hamburg / German Climate Computing Center (DKRZ) 11-12-2015 Outline 1 REST APIs 2 Julian M. Kunkel Lecture BigData

More information

Internet Content Distribution

Internet Content Distribution Internet Content Distribution Chapter 1: Introduction Jussi Kangasharju Chapter Outline Introduction into content distribution Basic concepts TCP DNS HTTP Outline of the rest of the course Kangasharju:

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

The HTTP Protocol HTTP

The HTTP Protocol HTTP The HTTP Protocol HTTP Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later

More information

REST over HTTP. Ambient intelligence. Fulvio Corno. Politecnico di Torino, 2015/2016

REST over HTTP. Ambient intelligence. Fulvio Corno. Politecnico di Torino, 2015/2016 REST over HTTP Ambient intelligence Fulvio Corno Politecnico di Torino, 2015/2016 Goal Understanding main communication protocol (http) How to use REST architectures to integrate (call and/or offer) remote

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Application Layer 2-1 Some network apps e-mail web text messaging remote

More information

Configuring Caching Services

Configuring Caching Services CHAPTER 8 This chapter describes how to configure conventional caching services (HTTP, FTP [FTP-over-HTTP caching and native FTP caching], HTTPS, and DNS caching) for centrally managed Content Engines.

More information

draft-ietf-sip-info-method-02.txt February 2000 The SIP INFO Method Status of this Memo

draft-ietf-sip-info-method-02.txt February 2000 The SIP INFO Method Status of this Memo HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 07:53:57 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Tue, 15 Feb 2000 17:03:00 GMT ETag: "3239a5-465b-38a986c4" Accept-Ranges: bytes Content-Length: 18011 Connection:

More information

2/13/2014. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints

2/13/2014. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints Rensselaer Polytechnic Institute CSCI-4220 Network Programming David Goldschmidt, Ph.D. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints All

More information

EECS 3214: Computer Network Protocols and Applications

EECS 3214: Computer Network Protocols and Applications EECS 3214: Computer Network Protocols and Applications Suprakash Datta Course page: http://www.eecs.yorku.ca/course/3214 Office: LAS 3043 Email: datta [at] cse.yorku.ca These slides are adapted from Jim

More information

Layered Model. DoD Model. ISO/OSI Model

Layered Model. DoD Model. ISO/OSI Model Data Communications vs Networking (later) Communication is concerned with the transmission of data over a communication medium/channel between two entities. Here we are more concerned about EE issues such

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

Lecture 25. Tuesday, November 21 CS 475 Networks - Lecture 25 1

Lecture 25. Tuesday, November 21 CS 475 Networks - Lecture 25 1 Lecture 25 Reminders: Homework 7 due today. Homework 8 posted. Due at the beginning of the last day of class for final exam review. Programming Project 6 posted. Final project worth double. Due by 4:30pm,

More information

Hypertext Transfer Protocol -- HTTP/1.1

Hypertext Transfer Protocol -- HTTP/1.1 Network Working Group Request for Comments: 2616 Obsoletes: 2068 Category: Standards Track R. Fielding UC Irvine J. Gettys Compaq/W3C J. Mogul Compaq H. Frystyk W3C/MIT L. Masinter Xerox P. Leach Microsoft

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

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

3. WWW and HTTP. Fig.3.1 Architecture of WWW

3. WWW and HTTP. Fig.3.1 Architecture of WWW 3. WWW and HTTP The World Wide Web (WWW) is a repository of information linked together from points all over the world. The WWW has a unique combination of flexibility, portability, and user-friendly features

More information

RESTful API Design APIs your consumers will love

RESTful API Design APIs your consumers will love RESTful API Design APIs your consumers will love Matthias Biehl RESTful API Design Copyright 2016 by Matthias Biehl All rights reserved, including the right to reproduce this book or portions thereof in

More information

Configuring Virtual Servers

Configuring Virtual Servers 3 CHAPTER This section provides an overview of server load balancing and procedures for configuring virtual servers for load balancing on an ACE appliance. Note When you use the ACE CLI to configure named

More information

Business Data Networks and Security 10th Edition by Panko Test Bank

Business Data Networks and Security 10th Edition by Panko Test Bank Business Data Networks and Security 10th Edition by Panko Test Bank Chapter 2 Network Standards 1) Internet standards are published as. A) RFCs B) IETFs C) TCP/IPs D) Internet Protocols Question: 1a Objective:

More information

Lecture 9a: Sessions and Cookies

Lecture 9a: Sessions and Cookies CS 655 / 441 Fall 2007 Lecture 9a: Sessions and Cookies 1 Review: Structure of a Web Application On every interchange between client and server, server must: Parse request. Look up session state and global

More information

HTTP, circa HTTP protocol. GET /foo/bar.html HTTP/1.1. Sviluppo App Web 2015/ Intro 3/3/2016. Marco Tarini, Uninsubria 1

HTTP, circa HTTP protocol. GET /foo/bar.html HTTP/1.1. Sviluppo App Web 2015/ Intro 3/3/2016. Marco Tarini, Uninsubria 1 HTTP protocol HTTP, circa 1989 a resource «give me the HTML representation of thatresource» «ok, here» Client request GET /hello.txt Server response Hello, world! Client Server Http 1.1 Request line Client

More information

TAXII 2.0 Specification Pre Draft

TAXII 2.0 Specification Pre Draft TAXII 2.0 Specification Pre Draft Current Status/Intent This document serves to gain consensus on pre draft concepts of TAXII 2.0. Please feel free to poke holes and comment! Overview TAXII is an open

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

Network Working Group Request for Comments: 3507 Category: Informational April 2003

Network Working Group Request for Comments: 3507 Category: Informational April 2003 Network Working Group Request for Comments: 3507 Category: Informational J. Elson A. Cerpa UCLA April 2003 Status of this Memo Internet Content Adaptation Protocol (ICAP) This memo provides information

More information

April 24, 1998 Expires in six months. SMTP Service Extension for Secure SMTP over TLS. Status of this memo

April 24, 1998 Expires in six months. SMTP Service Extension for Secure SMTP over TLS. Status of this memo HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 00:24:41 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Mon, 27 Apr 1998 14:31:00 GMT ETag: "2e9b64-31dd-354496a4" Accept-Ranges: bytes Content-Length: 12765 Connection:

More information

CMPE 151: Network Administration. Servers

CMPE 151: Network Administration. Servers CMPE 151: Network Administration Servers Announcements Unix shell+emacs tutorial. Basic Servers Telnet/Finger FTP Web SSH NNTP Let s look at the underlying protocols. Client-Server Model Request Response

More information

vrealize Log Insight Developer Resources

vrealize Log Insight Developer Resources vrealize Log Insight Developer Resources vrealize Log Insight 4.3 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new

More information

[MS-OAUTH2EX]: OAuth 2.0 Authentication Protocol Extensions. Intellectual Property Rights Notice for Open Specifications Documentation

[MS-OAUTH2EX]: OAuth 2.0 Authentication Protocol Extensions. Intellectual Property Rights Notice for Open Specifications Documentation [MS-OAUTH2EX]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages,

More information

IP Mobility vs. Session Mobility

IP Mobility vs. Session Mobility IP Mobility vs. Session Mobility Securing wireless communication is a formidable task, something that many companies are rapidly learning the hard way. IP level solutions become extremely cumbersome when

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 11 MIDTERM EXAMINATION #1 OCT. 16, 2013 COMPUTER NETWORKS : 03-60-367-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Fall 2013-75 minutes This examination

More information