CONTENT of this CHAPTER

Similar documents
Evolution of the WWW. Communication in the WWW. WWW, HTML, URL and HTTP. HTTP Abstract Message Format. The Client/Server model is used:

Network Technologies

The Web: some jargon. User agent for Web is called a browser: Web page: Most Web pages consist of: Server for Web is called Web server:

HTTP. Internet Engineering. Fall Bahador Bakhshi CE & IT Department, Amirkabir University of Technology

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment?

Protocolo HTTP. Web and HTTP. HTTP overview. HTTP overview

The Web History (I) The Web History (II)

Evolution of the WWW. Communication in the WWW. WWW, HTML, URL and HTTP. HTTP - Message Format. The Client/Server model is used:

Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT)

HTTP Protocol. Bartosz Walter

1 Introduction: Network Applications

World Wide Web. Before WWW

Application Example: WWW. Communication in the WWW. WWW, HTML, URL and HTTP. Loading of Web Pages. The Client/Server model is used in the WWW

The Hyper-Text Transfer Protocol (HTTP)

By Bardia, Patit, and Rozheh

CS640: Introduction to Computer Networks. Applications FTP: The File Transfer Protocol

Application Layer: HTTP and the Web. Srinidhi Varadarajan

WWW. World Wide Web Aka The Internet. dr. C. P. J. Koymans. Informatics Institute Universiteit van Amsterdam. November 30, 2007

Computer Networks. Lecture 7: Application layer: FTP and HTTP. Marcin Bieńkowski. Institute of Computer Science University of Wrocław

Hypertext for Hyper Techs

Chapter 27 Hypertext Transfer Protocol


DATA COMMUNICATOIN NETWORKING

Outline Definition of Webserver HTTP Static is no fun Software SSL. Webserver. in a nutshell. Sebastian Hollizeck. June, the 4 th 2013

SWE 444 Internet and Web Application Development. Introduction to Web Technology. Dr. Ahmed Youssef. Internet

Introduction to Computer Security

Research of Web Real-Time Communication Based on Web Socket

Application-layer protocols

CTIS 256 Web Technologies II. Week # 1 Serkan GENÇ

Web Programming. Robert M. Dondero, Ph.D. Princeton University

Architecture of So-ware Systems HTTP Protocol. Mar8n Rehák

Application layer Web 2.0

Internet Technologies 4-http. F. Ricci 2010/2011

Data Communication I

Modern Web Development From Angle Brackets to Web Sockets

Internet Technologies Internet Protocols and Services

Real Time Data Communication over Full Duplex Network Using Websocket

Stateful Inspection Technology

Lektion 2: Web als Graph / Web als System

All You Can Eat Realtime

Remote System Monitor for Linux [RSML]: A Perspective

CS 5480/6480: Computer Networks Spring 2012 Homework 1 Solutions Due by 9:00 AM MT on January 31 st 2012

Oct 15, Internet : the vast collection of interconnected networks that all use the TCP/IP protocols

Web. Services. Web Technologies. Today. Web. Technologies. Internet WWW. Protocols TCP/IP HTTP. Apache. Next Time. Lecture # Apache.

1. The Web: HTTP; file transfer: FTP; remote login: Telnet; Network News: NNTP; SMTP.

Lecture 2. Internet: who talks with whom?

Session Management in Web Applications

By : Khalid Alfalqi Department of Computer Science, Umm Al-Qura University

TCP/IP Networking An Example

Cookies Overview and HTTP Proxies

Web Browsing Examples. How Web Browsing and HTTP Works

Fachgebiet Technische Informatik, Joachim Zumbrägel

Sticky Session Setup and Troubleshooting

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Lecture 8a: WWW Proxy Servers and Cookies

Internet Information TE Services 5.0. Training Division, NIC New Delhi

reference: HTTP: The Definitive Guide by David Gourley and Brian Totty (O Reilly, 2002)

Divide and Conquer Real World Distributed Port Scanning

Web Design and Development ACS-1809

Installation and Deployment

S y s t e m A r c h i t e c t u r e

Guideline for setting up a functional VPN

Application Layer. CMPT Application Layer 1. Required Reading: Chapter 2 of the text book. Outline of Chapter 2

Experian Secure Transport Service

Project #2. CSE 123b Communications Software. HTTP Messages. HTTP Basics. HTTP Request. HTTP Request. Spring Four parts

How To Understand The History Of The Web (Web)

Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords

WHAT IS A WEB SERVER?

Lecture 8a: WWW Proxy Servers and Cookies

Single Pass Load Balancing with Session Persistence in IPv6 Network. C. J. (Charlie) Liu Network Operations Charter Communications

Modern snoop lab lite version

CS 188/219. Scalable Internet Services Andrew Mutz October 8, 2015

Application Layer -1- Network Tools

The World Wide Web: History

Repeater. BrowserStack Local. browserstack.com 1. BrowserStack Local makes a REST call using the user s access key to browserstack.

Content'Delivery'Infrastructure' HTTP'Overview' A'Web'Page' Computer Networks. Lecture'9:'HTTP'

LabVIEW Internet Toolkit User Guide

CS514: Intermediate Course in Computer Systems

URLs and HTTP. ICW Lecture 10 Tom Chothia

The Application Layer. CS158a Chris Pollett May 9, 2007.

Connecting with Computer Science, 2e. Chapter 5 The Internet

Understanding Slow Start

Application Monitoring using SNMPc 7.0

WS_FTP Server. User s Guide. Software Version 3.1. Ipswitch, Inc.

Installation Guide For Choic Enterprise Edition

WebStore Guide. The Uniform Solution

Chapter 1 Load Balancing 99

Web Application Development

FIVE SIGNS YOU NEED HTML5 WEBSOCKETS

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ MEng. Nguyễn CaoĐạt

Session Initiation Protocol (SIP) Chapter 5

Network setup and troubleshooting

Web Application Security

Description of Microsoft Internet Information Services (IIS) 5.0 and

Web Architecture I u

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

Transcription:

CONTENT of this CHAPTER v DNS v HTTP and WWW v EMAIL v SNMP 3.2.1

WWW and HTTP: Basic Concepts With a browser you can request for remote resource (e.g. an HTML file) Web server replies to queries (e.g. response containing HTML file) The protocol used for this type of communication is HTTP Request Web Server Browser Response HTML file typically contain references to other servers/ressources hyperlink with uniform resource locators (URL) e.g. http://www.name.com/index.html You obtain pointers to other docs, which can point to other docs, etc. This creates a «web» of resources, called the World Wide Web (WWW) 3.2.2

Related Standards and RFCs Related RFCs RFC 1945: Hypertext Transfer Protocol, HTTP/1.0 (in 1996) RFC 2616: Hypertext Transfer Protocol, HTTP/1.1 (in 1999) RFC 1738: Uniform Resource Locators (URL) RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (including URLs) HTTP/2.0 http://tools.ietf.org/html/draft-ietf-httpbis-http2 Standardization of Web-related mechanisms (HTML, webrtc) World Wide Web Consortium (W3C): http://www.w3.org/ 3.2.3

About the WWW Historic Background Communication in the WWW (HTTP, WebSocket, RTCWeb) HTTP Cookies Proxies Scaling Web Server Architecture 3.2.4

Towards the WWW Brief history towards the WWW 1945 1962 1963 1989 Vannever Bush sketched the hypertext concept It was called Memex Doug Engelbart started work on implementation of hypertext model Everything run on one computer Ted Nelson coined the term hypertext Tim Berners Lee introduced WWW Connecting hypertext idea to TCP/IP and DNS World Wide Web (WWW) today gives access to interlinked documents distributed over several computers in the Internet It uses the Internet as a data delivery service It was developed to exchange data, figures, etc. between a large number of geographically distributed project partners via Internet 3.2.5

Evolution of the WWW: Serving Users We started we static web pages 3.2.6

Evolution of the WWW: Serving Prosumers continued with interactive content 3.2.7

Evolution of the WWW: towards Real-Time currently focus on real-time communication How do you bring content to the end user? Let s start thinking about communication protocols! Which properties have the different applications? 3.2.8

Requirements of Different WWW Applications Handling a huge user base Client/server model fits (pull paradigm) Changing content dynamically Push paradigm preferred Low latency, towards real time Direct communication between end users preferred 3.2.9

About the WWW Historic Background Communication in the WWW (HTTP, WebSocket, RTCWeb) HTTP Cookies Proxies Scaling Web Server Architecture 3.2.10

Standard Communication in the WWW First graphic browser version (1993). Credit:National Center for Supercomputing Applications/University of Illinois Board of Trustees. Client = Browser Popular browsers: Firefox, Internet Explorer, Chrome, Safari, Opera Server = Web server Popular implementations: Apa Microsoft Internet Informatio Server, Tornado Request Browser Response Web Server 3.2.11

HTTP HyperText Transfer Protocol Standard protocol used between a web server and a web client If you load a web page, you use HTTP Server usually listens on well-known port 80 Is request/response protocol Client requests data, server responses Is an ASCII protocol (text-based) Identifies requested data by URL Is stateless Server maintains no information about past client requests Protocols that are stateful are complex! Past history (state) must be maintained If server/client crashes, their views of state may be inconsistent, must be reconciled HTTP provides an API to the web that complies with REST architecture 3.2.12

HTTP Requests Command GET URL http://server.name/path/file.type protocol HTTP server domain name path name file name GET http:// www.ietf.org / meeting / upcoming.html Specified commands are: GET: Load a web page HEAD: Load only the header of a web page (not the content). For debugging. PUT: Store a web page on the server POST: Append something to the request passed to the web server DELETE: Delete a web page 3.2.13

HTTP Request Format method sp URL sp version cr lf header field name : value cr lf header field name : value cr lf : : header field name : value cr lf cr lf Data Request line: necessary part, e.g., GET server.name/path/file.type Header lines: optionally, further information to the host/document, e.g. Host: www.fu-berlin.de Accept-language: fr User-agent: Opera /5.0 Entity Body: optionally. Further data, if the Client transmits data (POST method) sp: space cr/lf: carriage return/line feed 3.2.14

HTTP Response status line (protocol status code status phrase) data, e.g., requested HTML file header lines HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data data data data data... 3.2.15

HTTP Response Format version sp status code sp phrase cr lf header field name : value cr lf header field name : value cr lf : : header field name : value cr lf Status LINE: status code and phrase indicate the result of an inquiry and an associated message, e.g. 200 OK 404 Not Found 400 Bad Request cr lf Data Entity Body: inquired data Groups of status messages: 1xx: Only for information 2xx: Successful inquiry 3xx: Further activities are necessary 4xx: Client error (syntax) 5xx: Server error 3.2.16

Loading of Web Pages Browser Internet DNS Server WWW Server Browser asks DNS for the IP address of the server DNS answers Browser establishes TCP connection to port 80 Browser sends the command GET /stud/index.html WWW server sends back the file index.html Connection is terminated 3.2.17

Open Problems 1. How does a web server push content to the client? HTTP is a request/response protocol, client needs to poll explicitly Large overhead Solution: WebSocket Protocol (RFC 6455) 2. How do you enable communication between browsers? HTTP is a client/server protocol Do you really want to integrate a web server into your web browser? Solution: RTCWeb (under standardization, see IETF rtcweb group) 3.2.18

New Communication in the WWW: WebSockets Overview Allows efficient, full-duplex communication between web server and client It does not need HTTP Web socket URLS, example: ws://www.example.com/newsfeed Parallel Use of WebSocket Protocol and HTTP HTTP and WebSocket share port 80 Connection request by client looks like HTTP GET request with Upgrade offer (upgrading HTTP connection into TCP socket) HTTP server replies with Switching Protocols Available implementations Clients: Chrome, Firefox, Internet Explorer, Safari, Opera Server: Apache 3.2.19

Future Communication in the WWW: WebRTC Overview Implements real-time communication between web browsers Communication does not require web server Brings P2P architecture support to browsers Joint standardization activity between IETF (rtcweb) and W3C (WebRTC) IETF defines protocol, W3C defines Javascript API Standardization is ongoing Provides functions to establish media and data channel Implementations Chrome, Firefox More expected ;) 3.2.20

About the WWW Historic Background Communication in the WWW (HTTP, WebSocket, RTCWeb) HTTP Cookies Proxies Scaling Web Server Architecture 3.2.21

From Stateless Protocol to Stateful Information Problem with HTTP Stateless protocol After an HTTP request/reply sequence. After each session, the web server forgets everything about this request/reply. Advantages: simply scalable for large user base, little processing/memory Enough for browsing Drawbacks: cannot store context, personalize user experience etc. not suitable for applications like online shops which need to remember customers Solution Cookie: tags assigned by the website, stored by the web browser Additional HTTP header field: Set-cookie Instructs client to store the received cookie together with the server name Client indicates cookie in its subsequent requests header The server is then able to identify related requests Stateful information can be stored on server side 3.2.22

User Identification: Cookies Cookie database entries format: Name-value pairs defined by the server for identification Optional name-value pairs for, e.g., comments, date, TTL Domain Path Content Expires Secure toms-casino.com / CustomerID=497793521 15-10-08 17:00 Yes joes-store.com / Cart=1-00501;1-07031 11-10-08 12:00 No aportal.com / Prefs=Stk:SUNW+ORCL 31-12-08 17:30 No sneaky.com / UserID=2344537333744 31-12-08 18:00 No A cookie is valid until its expiration time To delete a cookie: cookie resent with expiration time in the past Client sends a cookie together with next requests to the server 3.2.23

Cookie Exchange 3.2.24

Pros & Cons of Cookies What cookies enable: Authorization Shopping carts Recommendations User session state (Web email) Nice solution to manage state : Cookies: HTTP with persistent ID Protocol maintaining state at sender/ receiver over multiple transactions Simple management on the host side Great. But what about privacy? Cookies can tell a LOT about you Check your browser: hundreds of cookies? What is tracked for each cookie? You can disable cookies, but many websites don t function anymore Global tracking with third-party cookies Goal = gather info about ALL your online activity, to extract behavioral information This info = really BIG business (e.g. deals between content providers and Doubleclick) Disabled third party cookies? Tracking persists, with ad banners hosted by Doubleclick. There is cookie-less tracking too! Advanced techniques using Javascript, caching, conditional HTTP requests and Etag Check http://lucb1e.com/rp/cookielesscookies/ 3.2.25

Another Good Way to Remember the Past Nonpersistent HTTP At most one object is sent over a TCP single connection. HTTP/1.0 uses nonpersistent connections Persistent HTTP Multiple objects can be sent over single TCP connection between client and server HTTP/1.1 uses persistent connections in default mode Why switching from nonpersistent to persistent HTTP? TCP connection setup is expensive (CPU, memory, delay, etc.) Web page includes multiple objects (images ) Using nonpersistent HTTP: One TCP connection per object request Persistent HTTP allows to send multiple HTTP request/responses over one TCP connection But: What happens if objects are distributed over multiple servers? 3.2.26

About the WWW Historic Background Communication in the WWW (HTTP, WebSocket, RTCWeb) HTTP Cookies Proxies Scaling Web Server Architecture 3.2.27

Proxy Server A Web Proxy is an intermediate entity used by several browsers. It takes over tasks of the browsers (complexity) and servers for more efficient page loading! HTTP Browser HTTP Browser Proxy Server Internet HTTP Server Caching of web pages A proxy temporarily stores the pages loaded by browsers. If a page is requested by a browser which already is in the cache, the proxy controls whether the page has changed since storing it. If not, the page can be passed back from the cache. If yes, the page is normally loaded from the server and again stored in the cache, replacing the old version. Support when using additional protocols A browser enables also access to FTP, Telnet servers or even News, Gopher, Instead of implementing all protocols in the browser, it can be realized by the proxy. The proxy then speaks HTTP with the browser and e.g. FTP with a FTP server. Integration into a Firewall The proxy can deny the access to certain web pages (e.g. in schools). 3.2.28

Scalability: Delay & Throughput Gains with a Proxy Scenario 1 100Mbps 15Mbps Internet HTTP Server 100Mbps Scenario 2 15Mbps Internet HTTP Server Proxy Server 3.2.29

Scalability: Delay & Throughput Gains with a Proxy Scenario Characteristics 100 Mbps Ethernet access link Internet connection with 15 Mbps Traffic characteristic 15 requests per sec Every request is for 1 Mbit of content (HTTP signaling thus negligible) Internet delay ~2 sec Access link delay ~0.01 sec With proxy server Hit rate of 0.4 Performance considerations Load on the access link 15 req s 1Mbit = 0.15 100Mbps Load to the Internet without proxy 15 req s 1Mbit = 1.0 15 Mbps Load to the Internet with proxy 15 req s 1Mbit 0.6 15Mbps = 0.6 Proxy Internet Webserver Delay without proxy ~ 2 sec Delay with proxy 0.4 x 0.01 s + 0.6 x 2 s ~ 1.2 s 33% less load to the Internet. 40% less delay! 3.2.30

About the WWW Historic Background Communication in the WWW (HTTP, WebSocket, RTCWeb) HTTP Cookies Proxies Scaling Web Server Architecture 3.2.31

Big Web Servers: 3-tier Architecture Top 1000 websites: 90% of the overall web traffic. HUGE LOAD AHEAD! Need for specific scalable architecture HTTP Requests Load Balancer Presentation Servers Logic Servers Database Storage 3-tier architecture can handle hundreds of thousands of hits/sec. 3.2.32

Medium & Small Webservers: Virtualization Medium & small webservers deal with more sporadic traffic Solution: pack thousands of «virtual» servers on a single machine www.xyz.com www.anothersite.com www.yet anothersite.com rack Some companies focus on managing stacks of such machines ( = data center) Multiplexing done with the server URL field in HTTP requests Each machine can handle approx. 100 hits per second 3.2.33