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

Similar documents
Computer Networks. Wenzhong Li. Nanjing University

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

Application Level Protocols

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

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

Applications & Application-Layer Protocols: The Web & HTTP

Applications & Application-Layer Protocols: The Web & HTTP

WEB TECHNOLOGIES CHAPTER 1

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

2. Introduction to Internet Applications

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

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

COSC 2206 Internet Tools. The HTTP Protocol

Review of Previous Lecture

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

COMPUTER NETWORK. Homework #1. Due Date: March 29, 2017 in class

The World Wide Web. Internet

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

C22: Browser & Web Server Communication

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

CS 455/555 Spring 2011 Weigle

ECE697AA Lecture 2. Today s lecture

Traditional Web Based Systems

CMSC 332 Computer Networking Web and FTP

Chapter 27 WWW and HTTP Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

CSCI-1680 WWW Rodrigo Fonseca

CSCI-1680 WWW Rodrigo Fonseca

DATA COMMUNICATOIN NETWORKING

Web, HTTP and Web Caching

Chapter 2 Application Layer

LAMP, WEB ARCHITECTURE, AND HTTP

CSE 333 Lecture HTTP

Application Layer Introduction; HTTP; FTP

Web Programming. Based on Notes by D. Hollinger Also Java Network Programming and Distributed Computing, Chs.. 9,10 Also Online Java Tutorial, Sun.

WWW: the http protocol

Jeff Offutt SWE 642 Software Engineering for the World Wide Web

HyperText Transfer Protocol

EECS 3214: Computer Network Protocols and Applications

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

World Wide Web. Before WWW

CS631 - Advanced Programming in the UNIX Environment

Application Protocols and HTTP

How to work with HTTP requests and responses

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

Announcements. The World Wide Web. Retrieving From the Server. Goals of Today s Lecture. The World Wide Web. POP3 Protocol

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

Computer Systems and Networks

The World Wide Web. EE 122: Intro to Communication Networks. Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim

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

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

Project 2 Implementing a Simple HTTP Web Proxy

Announcements. The World Wide Web. Goals of Today s Lecture. The World Wide Web HTML. Web Components

Internet applications

Project 2 Group Project Implementing a Simple HTTP Web Proxy

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

Hypertext Transport Protocol

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

CMPE 151: Network Administration. Servers

Architecture of the World Wide Web Web Informa4on Systems. CS/INFO 431 January 30, 2008 Carl Lagoze Spring 2008

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

Application Layer: HTTP

CSE 333 Lecture HTTP

Network Applications and the Web

CSC358 Week 2. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

Lecture 04: Application Layer (Part 01) Principles and the World Wide Web (HTTP) Dr. Anis Koubaa

Chapter 2 Application Layer

Electronic Mail. Three Components: SMTP SMTP. SMTP mail server. 1. User Agents. 2. Mail Servers. 3. SMTP protocol

Outline Computer Networking. HTTP Basics (Review) How to Mark End of Message? (Review)

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

SIP Session Initiation Protocol

Internet Protocols. Robin Sharp

Protocols. Networking CS 3470, Section 1 Sarah Diesburg

The Application Layer: & SMTP

CS 43: Computer Networks. HTTP September 10, 2018

HTTP Review. Carey Williamson Department of Computer Science University of Calgary

Internet Content Distribution

Introduction to Ethical Hacking

Application Layer. Applications and application-layer protocols. Goals:

SCS3004 Networking Technologies Application Layer Protocols

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

Chapter 2: Application layer

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

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

EEC-682/782 Computer Networks I

Network Applications and the Web

Layered Model. DoD Model. ISO/OSI Model

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Introduction to Information Science and Technology 2017 Networking II. Sören Schwertfeger 师泽仁

Internet Mail: The SMTP Model

Lecture Overview : Computer Networking. Applications and Application-Layer Protocols. Client-Server Paradigm

Text-Based Protocols. Many common protocols based on sending text messages. Built atop the TCP stream protocol. Lines terminated with \r\n.

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary

World Wide Web, etc.

1-1. Switching Networks (Fall 2010) EE 586 Communication and. September Lecture 10

CS193i Handout #18. HTTP Part 5

1.1 A Brief Intro to the Internet

Applications & Application-Layer Protocols: FTP and (SMTP & POP)

INFOH-511 WEB SERVICES. LECTURE 1: Introduction

CS348: Computer Networks (SMTP, POP3, IMAP4); FTP

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

Transcription:

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 component protocols: A language for encoding hypertext objects Including embedded links to other objects Hypertext Markup Language (HTML) A mechanism for resolving links to HT objects Universal Resource Identifiers (URIs) Uniform Resource Identifiers (URIs) Uniform Resource Locators (URLs) Uniform Resource Names (URNs) A protocol for transferring HT objects Hypertext Transfer Protocol (HTTP)

Uniform Resource Identifiers RFC 3986 (Jan '05): "Uniform Resource Identifier: Generic Syntax" obsoletes earlier RFCs 1808 (1995), 2396 (1998) other RFCs dealing with URIs/URLs/URNs: 1738, 2616, 2168, 3406... URLs are a form of URI Syntax <scheme>:<scheme-specific part> example URL schemes: http://<hostport>[/<path>[?<search>]] <hostport> ::= <FQDN>[:<port>] ftp://<login>/<path> <login> ::= [<user>[:<password>]@]<hostport>

URNs vs. URLs Uniform Resource Locators Tell where something is Must change if object moves Advantage: can be resolved today using DNS Uniform Resource Names Permanent, location-independent names Require more complex resolution mechanism Several attempts have been made to develop a URN system Difficult to get agreement even on requirements So far, nothing has succeeded Observation: A universal naming system would be a boon to most network applications, but the standardization process has been often derailed by politics

HTTP HTTP 1.0 RFC 1945, May 1996 After-the-fact documentation of what was already deployed in the Mosaic web browser HTTP 1.1 RFC 2068, 2616, June 1999 Corrected many problems in original version Added: persistent connections, authentication, pipelining,... Also documented many deployed features not in 1.0

HTTP Operation Client-Server protocol Messages = lines of ASCII text Lines terminated by <crlf> A la SMTP, FTP, POP,... Client sends Request to server <Request><URI><Version><crlf> [<Header><crlf>]* <crlf> <body> Request: GET, POST, HEAD,... Version: HTTP/1.0

HTTP Operation, continued Server sends response: <status-line><crlf> [<Header><crlf>]* <crlf> <body> Status-line: <version> <response code> <phrase> E.g. HTTP/1.1 304 Not Modified Headers provide additional information or describe body (requested object) content Date MIME-Version Host (mandatory in 1.1) User-Agent If-modified-since Content-encoding Content-length Expires Last-modified

Basic HTTP Operation Client Open TCP connection (server port: 80) Server GET ~calvert/classes/571/ HTTP/1.1 Allow: <list of content-types> Host: protocols.netlab.uky.edu If-modified-since: 2006-11-06 23:55:33 User-agent: Mozilla 2.5 HTTP/1.1 200 Success Last-Modified: 2006-11-07 11:06:17 Expires: 2006-11-23 12:00:00 Content-Encoding: Base64 Content-Length: 8145 Content-type: text/html [blank line] [8145 bytes of content]

Problems with HTTP Originally, Server closed connection to delimit transferred object One object transferred per connection (!) Server ends up with TCP PCB in CLOSE-WAIT state for each object transferred URLs are a poor substitute for URNs The Web is full of "dangling pointers" URLs are becoming even more ephemeral The good news: Google has made this problem irrelevant!

HTTP 1.0 Connection-per-Object (Typical) Operation Client Server connect( ) accept( ) send( ) request (returns 0) close( ) Connection: FIN 13 pets total 3 data pets response (headers) response (body) FIN send( ) send( ) close( )

HTTP 1.0 Connection-per-Object (Optimal) Operation Client Server connect( ) send( ) request response (headers) accept( ) send( ) close( ) response (body) FIN (returns 0) close( ) FIN 7 pets total 3 data pets

HTTP 1.1 Persistent Connections Default behavior in 1.1 and later: Connection remains open unless "connection: close" header is sent by client or server All object bodies are delimited using Content-length headers Only possible when size is known in advance Not possible for, e.g. live audio streaming If content length is unknown, server sends connection: close before transmitting body, closes connection after Enables pipelining of requests and responses

Example Transaction (via Telnet) GET ~calvert/classes/571/ HTTP/1.0 crlf host: protocols.netlab.uky.edu crlf crlf HTTP/1.1 400 Bad Request crlf Date: Fri, 17 Nov 2006 14:18:22 GMT crlf Server: Apache/2.0.54 (Ubuntu) PHP/4.4.0-3ubuntu2 crlf mod_ssl/2.0.54 OpenSSL/0.9.7g crlf Vary: accept-language,accept-charset crlf Accept-Ranges: bytes crlf Connection: close crlf Content-Type: text/html; charset=iso-8859-1 crlf Content-Language: en crlf crlf [Body containing HTML explanation]