Fun Fun Project One1 Building Your Very Own Web Server.

Slides:



Advertisements
Similar presentations
© De Montfort University, Protocols for multimedia transmission over the Internet Howell Istance Dept. of Computer Science De Montfort University.
Advertisements

Building a Simple Web Proxy
Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
CGI & HTML forms CGI Common Gateway Interface  A web server is only a pipe between user-agents  and content – it does not generate content.
Introduction to Computing Using Python CSC Winter 2013 Week 8: WWW and Search  World Wide Web  Python Modules for WWW  Web Crawling  Thursday:
An Introduction to the Internet and the Web Frank McCown COMP 250 – Internet Development Harding University.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Fun Fun Project One1 Building Your Very Own Web Server.
Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July.
Client, Server, HTTP, IP Address, Domain Name. Client-Server Model Client Bob Yahoo Server yahoo.com/finance.html A text file named finance.html.
Rensselaer Polytechnic Institute CSC-432 – Operating Systems David Goldschmidt, Ph.D.
IT 210 The Internet & World Wide Web introduction.
Web Architecture Dr. Frank McCown Intro to Web Science Harding University This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 7 The Application Layer.
FTP (File Transfer Protocol) & Telnet
HyperText Transfer Protocol (HTTP).  HTTP is the protocol that supports communication between web browsers and web servers.  A “Web Server” is a HTTP.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
2: Application Layer1 CS 4244: Internet Software Development Dr. Eli Tilevich.
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
ASHIMA KALRA IMPORTANT TERMS.  WWW WWW  URL URL  HTTP PROTOCOL HTTP PROTOCOL  PROXIES PROXIES.
How Web Servers and the Internet Work by by: Marshall Brainby: Marshall Brain
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
Created by, Nancy Harris, James Madison University, VA FLUENCY WITH INFORMATION TECNOLOGY Skills, Concepts, and Capabilities.
CIS679: Lecture 13 r Review of Last Lecture r More on HTTP.
1-1 HTTP request message GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr request.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
Web Server.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Week 11: Application Layer 1 Web and HTTP r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,… r Web page consists.
Week-6 (Lecture-1) Publishing and Browsing the Web: Publishing: 1. upload the following items on the web Google documents Spreadsheets Presentations drawings.
Web fundamentals: Clients, Servers, and Communication
Building Your Very Own Web Server
Distributed Control and Measurement via the Internet
Block 5: An application layer protocol: HTTP
HTTP – An overview.
Networking CS 3470, Section 1 Sarah Diesburg
The Hypertext Transfer Protocol
1993 version of Mosaic browser.
Computing with C# and the .NET Framework
COMP2322 Lab 2 HTTP Steven Lee Feb. 8, 2017.
Internet transport protocols services
Networking Applications
TCP/IP Networking An Example
HTTP Protocol.
Application HTTP.
Uniform Resource Locators
The Internet and HTTP and DNS Examples
Computer Communication & Networks
HTTP Hypertext Transfer Protocol
Web Design & Development
Networking CS 3470, Section 1 Sarah Diesburg
HTTP Request Method URL Protocol Version GET /index.html HTTP/1.1
Uniform Resource Locators (URLs)
HyperText Transfer Protocol
Hypertext Transfer Protocol (HTTP)
William Stallings Data and Computer Communications
CS3220 Web and Internet Programming Handling HTTP Requests
Exam Review Quiz game.
Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Kevin Harville Source: Webmaster in a Nutshell, O'Rielly Books
The Application Layer: HTTP
Uniform Resource Locators
HTTP Hypertext Transfer Protocol
Uniform Resource Locators (URLs)
CSCI-351 Data communication and Networks
Presentation transcript:

Fun Fun Project One1 Building Your Very Own Web Server

Fun Fun Project One2 What is a Web Server? Program that understands the HTTP protocol and generates appropriate responses Clients “connect” to the machine Clients send a “request” Server reads request, generates “response” Client interprets response appropriately

Fun Fun Project One3 A Simplified Web Server Client asks for file Server finds appropriate file Server sends back a response header followed by the requested file’s data Server closes connection

Fun Fun Project One4 What Does “Connect” Mean? For all practical purposes, it looks like there’s data available via a file descriptor Stream of bytes Can be treated like any other file descriptor Not a FILE * (like stdio, stderr) Must use read() and write() system calls

Fun Fun Project One5 How Do You Identify Machines Domain names/IP address and ports implies a machine named and a default port of Refers to local box ( is me) Port # is 8080 (used for this project) File is named index.html

Fun Fun Project One6 How Do You Identify Files? File name is specified in Request Message Server maps that name to a real file Mapping can be done in whichever way server wants For example, /~vivek/index.html is actually /n/fs/fac/vivek/public_html/index.html In your web server, you can choose your own

Fun Fun Project One7 What’s In A Request Message? GET /index.html HTTP/1.0\r\n Connection: Keep-Alive\r\n User-Agent: Mozilla/4.72 [en] (X11..)\r\n Host: :31415\r\n Accept: image/gif, image/jpeg, */*\r\n Accept-Encoding: gzip\r\n Accept-Language: en\r\n Accept-Charset: iso ,*,utf-8\r\n \r\n

Fun Fun Project One8 What Do You Care About? GET /index.html HTTP/1.0 In particular, just index.html Assume “/” means “/index.html”

Fun Fun Project One9 What Could They Want? An honest-to-goodness file (me.jpg) An indirect request for such a file (such as “/” meaning index.html) An implied directory with index (/home/vivek instead of /home/vivek/) Just a directory listing A query (we don’t care about these) An invalid/nonexistent file

Fun Fun Project One10 What’s In A Response Message? HTTP/ OK\r\n Date: blah-blah-blah\r\n Server: blah-blah-blah\r\n Content-Type: important\r\n Content-Length: 12345\r\n Last-Modified: blah-blah-blah\r\n \r\n Raw data

Fun Fun Project One11 What’s a Minimal Response? HTTP/ OK\r\n Content-Type: stuff\r\n \r\n Data HTTP/ Moved\r\n Location: newurl\r\n \r\n HTTP/ Not Found\r\n \r\n But also Connection: close\r\n Content-Length: yyy\r\n

Fun Fun Project One12 Response when… File exists? Send it Directory without “/” suffix? Redirect Directory with index.html? Send it Directory with no index.html? List it For each list entry, add “/” if needed Failure(Not Found)? Send 404 Bad Request? Send 400

Fun Fun Project One13 How to Test Your Server? Use a browser(Netscape/IE) Use “wget” Support HTTP protocol create directory hierarchy for retrieving Include some big images

Fun Fun Project One14 More Test Cases What if Request Message is not send/received in one packet… The server must read all the Request Messages before it gives any response message Remember the double carriage return and line feed? Your web server must consider this! I’ll distribute more test programs later on, check

Fun Fun Project One15 What is Content-Type? text/html image/gif image/jpeg (Other types not needed for project 1.)

Fun Fun Project One16 Need more info? HTTP 1.1 Specification – RFC2068 HTTP 1.0 – RFC 1945 man pages man man –k blah read( ), write( ), open( ), close( )

Fun Fun Project One17 Why open instead of fopen? Compare fopen, fread, etc., with open, read, etc We’re dealing with functions closer to the OS – easier to use in some cases

Fun Fun Project One18 What’s a File Descriptor? Sort of like a FILE * It’s an integer provided by OS Used to represent a stream of bytes Can represent file or network connection Behavior is slightly different Especially when reading/writing network

Fun Fun Project One19 General Steps Setup, and then Get next connection If file, read from disk If directory, generate listing Send all to client Close connection, wait for next one(nonpersistent connection)

Fun Fun Project One20 What Am I Given? Setup function Makes server available for connections Accept function Gets a connection from a client File type function Tells you what kind of file, if it exists Tells you how many bytes if a regular file Directory listing functions Gives you the file names one at a time

Fun Fun Project One21 Help! I’m Lost! Don’t know HTML? Use Netscape composer to see what to do View page source for various pages Do “telnet 80” and issue the GET manually (need to add “Host: header) Ask

Fun Fun Project One22 Why Are We Doing This? Infrastructure for future projects Some OS/Networking interaction It’s fun, and not too bad

Fun Fun Project One23 Wrap Up Thanks! Q&A session next week! Office Hour: Wed 4:30-5:30