Web. Server. Web Documents

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

HTTP Protocol. Bartosz Walter

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 Introduction: Network Applications

Lektion 2: Web als Graph / Web als System

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

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

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

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

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

Layer 7 Load Balancing and Content Customization

By Bardia, Patit, and Rozheh

CONTENT of this CHAPTER

COMP 3331/9331: Computer Networks and Applications. Lab Exercise 3: TCP and UDP (Solutions)

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?

No. Time Source Destination Protocol Info HTTP GET /ethereal-labs/http-ethereal-file1.html HTTP/1.

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

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

Chapter 27 Hypertext Transfer Protocol

Computer Networks - CS132/EECS148 - Spring

CGI An Example. CGI Model (Pieces)

Computer Networking LAB 2 HTTP

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

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

Transport Layer Protocols

The Hyper-Text Transfer Protocol (HTTP)

The HTTP Plug-in. Table of contents

Question: 3 When using Application Intelligence, Server Time may be defined as.

HOST EUROPE CLOUD STORAGE REST API DEVELOPER REFERENCE

Introduction to Computer Security

First Midterm for ECE374 03/09/12 Solution!!

Network Security TCP/IP Refresher

Application Layer: HTTP and the Web. Srinidhi Varadarajan

First Midterm for ECE374 03/24/11 Solution!!

Data Communication I

WHAT IS A WEB SERVER?

Understanding Slow Start

Wireshark Lab: HTTP SOLUTION

StreamServe Persuasion SP4 StreamServe Connect for SAP - Business Processes

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

TCP/IP Networking An Example

World Wide Web. Before WWW

Introduction to LAN/WAN. Application Layer (Part II)

sessionx Desarrollo de Aplicaciones en Red Web Applications History (1) Content History (2) History (3)

Wireshark Lab: HTTP. 1. The Basic HTTP GET/response interaction

Key Components of WAN Optimization Controller Functionality

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

Internet Technologies Internet Protocols and Services

Procedure: You can find the problem sheet on Drive D: of the lab PCs. 1. IP address for this host computer 2. Subnet mask 3. Default gateway address

Final for ECE374 05/06/13 Solution!!

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

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

Streaming Stored Audio & Video

APACHE WEB SERVER. Andri Mirzal, PhD N

Application-layer protocols

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

SIP: Protocol Overview

10. Java Servelet. Introduction

HTTP State Management

Web Browsing Examples. How Web Browsing and HTTP Works

Application Layer -1- Network Tools

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

TSIN02 - Internetworking

DEPLOYMENT GUIDE Version 1.1. Deploying the BIG-IP LTM v10 with Citrix Presentation Server 4.5

DNS (Domain Name System) is the system & protocol that translates domain names to IP addresses.

Lecture 2. Internet: who talks with whom?

TCP/IP and the Internet

Configuring Health Monitoring

Nuance Mobile Developer Program. HTTP Services for Nuance Mobile Developer Program Clients

1945: 1989: ! Tim Berners-Lee (CERN) writes internal proposal to develop a. 1990:! Tim BL writes a graphical browser for Next machines.

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

D. SamKnows Methodology 20 Each deployed Whitebox performs the following tests: Primary measure(s)

Research of Web Real-Time Communication Based on Web Socket

Homework 2 assignment for ECE374 Posted: 02/20/15 Due: 02/27/15

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

Networking Test 4 Study Guide

Protocol Data Units and Encapsulation

Using IPM to Measure Network Performance

Homework 2 assignment for ECE374 Posted: 02/21/14 Due: 02/28/14

FILE TRANSFER PROTOCOL INTRODUCTION TO FTP, THE INTERNET'S STANDARD FILE TRANSFER PROTOCOL

Application-layer Protocols and Internet Services

LabVIEW Internet Toolkit User Guide


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

Lab - Using Wireshark to View Network Traffic

Session Initiation Protocol (SIP)

Mobile IP Network Layer Lesson 01 OSI (open systems interconnection) Seven Layer Model and Internet Protocol Layers

A Tool for Evaluation and Optimization of Web Application Performance

What is Distributed Annotation System?

FF/EDM Intro Industry Goals/ Purpose Related GISB Standards (Common Codes, IETF) Definitions d 4 d 13 Principles p 6 p 13 p 14 Standards s 16 s 25

Remote login (Telnet):

1 Recommended Readings. 2 Resources Required. 3 Compiling and Running on Linux

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet

COMP 361 Computer Communications Networks. Fall Semester Midterm Examination

Computer Networks Homework 1

HTTP 1.1 Web Server and Client

, SNMP, Securing the Web: SSL

Application Detection

Transcription:

An Overview of H T T P Paul S. Wang Institute for Computational Mathematics Kent State University pwang@mcs.kent.edu http:icm.mcs.kent.edu~pwang HTTP-Overview-1

Hyper-text Transfer Protocol End User Web Server Web Browser Network H T T P Web Documents HTTP-Overview-2

Evolution of HTTP æ Early 1990s simple HTTP, adopting MIME content types,... æ Mid 1990s HTTP 1.0 rfc1945 in 1996, POST query,... æ July 1996 HTTP 1.1 drafted æ July 97 HTTP-NG project begins æ November 97 HTTP 1.1 Rev-01 moves HTTP closer to IETF Draft Standard æ HTTP 1.1 is becoming a standard, HTTP-NG will be revolutionary. HTTP-Overview-3

HTTP Basics æ When communicating with a Web server, a program becomes a client of the Web server. æ HTTP protocol governs how the client and the server exchange information. æ HTTP employs the connection-oriented TCPIP. æ A framework of HTTP transactions: 1. Connection A client opens a connection to a server. 2. Query The client requests a resource controlled by the server. 3. Processing The server receives and processes the request. 4. Response The server sends the requested resource back to the client. 5. Termination The transaction is done and the connection is closed. HTTP-Overview-4

Form Processing Data Flow Web Server FORM Response Query CGI Program Web Browser HTTP-Overview-5

HTTP Message Format HTTP governs the format of queries and responses: initial line HeaderKey1: value1 HeaderKey2: value2 HeaderKey3: value3 diæerent for query and response zero or more header æelds an empty line separating header and body Optional message body contains query or response data. The amount and type of data in the body is speciæed in the headers. The header part is textual and each line in the header should end in return and newline but it may end in just newline. HTTP-Overview-6

The Query Line The initial line identiæes the message as a query request or a response. æ A query line has three parts, separated by spaces: a query method name, a local path of the requested resource, and a HTTP version number. GET pathtofileindex.html HTTP1.0 POST pathscript.cgi HTTP1.0 HEAD pathtofileindex.html HTTP1.0 æ The GET method simply request the speciæed resource and does not allow a message body. æ The HEAD query is like GET but requests only the header part of the response. æ The POST method allows a message body and is designed to work with a CGI URL. HTTP-Overview-7

HTTP Query Syntax émethodé éurié "HTTP1.0" écrlfé íéheaderé: évalueé écrlféí* écrlfé Query headers are in RFC-822 format. Most common are Accept headers which tells the server which object types MIME the client can handle and User-Agent which gives the browser nameversion. HTTP-Overview-8

The Response Line A response or status line also has three parts separated by spaces: a HTTP version number, a status code, and a textual description of the status. Typical status lines are: HTTP1.0 200 OK for a successful query, or HTTP1.0 404 Not Found when the requested resource cannot be found. HTTP-Overview-9

HTTP Response Syntax "HTTP1.0" éresult-codeé ëémessageéë écrlfé íéheaderé: évalueé écrlféí* écrlfé HTTP-Overview-10

HTTP Response Headers Header Location User-Agent: SERVER: Last-Modified: Content-Type: Content-Length: Meaning New document location Nameversion of program sending query Nameversion of server sending response Last modiæcation time of resource retrieved The type of the body in the message Length in bytes of the body HTTP-Overview-11

The POST Query æ A POST query includes: 1. A URL specifying a CGI program 2. Content-Type header 3. Content-Length header 4. Message body that includes URL-encoded material æ A Web server usually processes the incoming data by calling a CGI program. æ A CGI program receives the message body through standard input and processes it. HTTP-Overview-12

Sample POST Query POST cgi-binregister-user HTTP1.0 HOST: SymbolicNet.mcs.kent.edu From: jdoe@great.enterprise.com User-Agent: NetScape 4.0 Content-Type: applicationx-www-form-urlencoded Content-Length: 132 name=john Doeaddress=678+Main+Street... HTTP-Overview-13

URL and Message Body Encoding æ HTTP uses special characters for certain protocol purposes. æ URLs are transmitted under URL-encoding. æ POST query data is usually in the form of a series of entries separated by. Each entry is a name=value pair. æ Each space within an entry is replaced by a+. æ Special characters in the name and value parts must be URL-encoded to avoid misinterpretation. æ URL-encoding basically means replacing each non-alphanumeric character by hh where hh is its ASCII code in hexadecimal. = 3D or 3d + 2B or 2b 26 HTTP-Overview-14

HTTP 1.0 Performance Analysis HTTP-Overview-15

Typical Access Pattern 1. Client request a Web page, sending many "Accept" headers with it. 2. Same client then issues a series of requests to the same server for icons and images contained in the page 3. After displaying the page, a user usually clicks on a link which leads to another page at the same site HTTP-Overview-16

HTTP 1.0 Transaction Traæc xmosaic at UNC HTTP 1.0/TCP Server at NCSA 0 0.077 3-way hand shake 0.35 0.45 0.53 Ack + Close 0.60 HTTP-Overview-17

HTTP 1.0 Transaction Traæc Xmosaic access of NCSA homepage: request 1130 bytes, response 1668 bytes, these are sent via TCP packets, each packet with a max segment size MSS of 536 to 1460 bytes. æ 0 í Client sends TCP connection request at port 80 of target host æ 0.077 Server sends TCP connection response to client. Client acknowledges the connect response and sends the ærst 536 bytes of the HTTP request A. æ 0.35 Server acknowledges A. The client sends 2nd part of request, and without waiting for an acknowledgement, sends the 3rd and ænal part of the request B. æ 0.45 Server sends a packet with acknowledgement of B and 512 bytes of the HTTP response, followed by a second packet with another 512 bytes of the response. The client acknowledges the receipt of the packets. HTTP-Overview-18

æ 0.53 Server sends 3rd and 4th response packet, and an indication to close the connection. The client acknowledges and announces that it is closing the connection. æ 0.60 Server acknowledges the close. HTTP-Overview-19

Metrics in the Example æ MSS 536 byte default used æ RTT round-trip time of about 70 milliseconds æ Bandwidth 512 bytes 3.57 milliseconds about 1.15 Mbps HTTP-Overview-20

HTTP 1.0 Performance Problems æ HTTP 1.0 interacts badly with TCP and spends most of the time waiting rather than transmitting data. æ HTTP 1.0 incurs frequent round-trip delays due to connection establishment. æ Suæers frequent slow starts in both directions for short duration connections slow start refers to the slow increase of the number of unacknowledged packets a sender is allowed to send. æ Incurs heavy latency penalties due to mismatch of typical access proæles with single-request model. æ Too many opened then closed connections present a problem for servers to keep TIME WAIT state for closed connections for 240 seconds after closing. HTTP-Overview-21

HTTP 1.1 Features HTTP 1.1 is becoming a standard to replace HTTP 1.0 in the near term. Generally speaking, HTTP 1.1 is a superset of HTTP 1.0. æ HTTP 1.0 deænes 16 headers, none are required. æ HTTP 1.1 deænes 46 headers, and one Host: is required in requests. æ HTTP 1.1 features: í Faster response, by allowing multiple transactions to take place over a single persistent connection. í Faster response and great bandwidth savings, by adding cache support. í Faster response from CGI scripts, by supporting chunked encoding, which allows a response to be sent before its total length is known. í Eæcient use of IP addresses, by allowing multiple domains to be served from a single IP address. HTTP-Overview-22

HTTP 1.1 Client æ must include the Host: header with each request æ must accept responses with chunked data æ must either support persistent connections, or include the Connection: close header with each request æ must handle the 100 Continue response HTTP-Overview-23

HTTP 1.1 Server æ must require the Host: header from HTTP 1.1 clients æ must accept absolute URLs in a request æ must accept requests with chunked data æ must either support persistent connections, or include the Connection: close header with each response æ must use the 100 Continue response appropriately æ must include the Date: header in each response æ must handle requests with If-Modified-Since: or If-Unmodified-Since: headers HTTP-Overview-24

HTTP Implementations æ libwww W3C's client library in C and other tools on-top æ jigsaw W3C's sample implementation of HTTP Jigsaw is a full blown HTTP1.1 server entirely written in Java æ apache Apache Group's HTTP1.1 server and proxy æ NetScape Navigator and Communicator full-featured browsereditor æ HTTPClient Aas Software's client library in Java æ CL-HTTP MIT AI Lab's large server, proxy, client, Web walker, package written in Common-Lisp æ For more details see www.w3.orgprotocolshttpforumreports HTTP-Overview-25

HTTP-NG the Next Generation HTTP-NG aims to replace previous HTTPs. Major features include: æ Binary encoded, rather than text-based, messages using ASN.1 abstract syntax notation and PER Packed Encoding Rules. æ Standard object types referenced by bit vectors æ Multiple objects URLs in a single GET request æ Multiple independent request-response streams: í To allow many diæerent requests to be sent over a single persistent connection asynchronously í To allow concurrent responses to many requests and the interweaving of response packets í To separate control from transaction messages HTTP-Overview-26

HTTP-NG Session Layer H T T P N G Client Side Control Data Data Data Data Session Layer Query Meta Server Side Control Data Data Data Data Session Layer H T T P N G HTTP-Overview-27

HTTP Speciæcation and References æ RFC-1945 HTTP 1.0 æ RFC-2068 HTTP 1.1 æ www.w3.org HTTP-NG æ RFC 822 structure of Internet text messages, including header æelds æ RFC 1738 deænition of URL syntax æ RFC 1808 deænition of relative URL syntax æ RFC 1521 deænition of MIME and of MIME types HTTP-Overview-28