1 / 13

Project 1 Web client and server

This project aims to implement a basic WWW client and server using a restricted subset of HTTP protocol and socket programming. It provides hands-on experience with HTTP and sockets programming.

meads
Download Presentation

Project 1 Web client and server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Project 1Web client and server EECS 340 Jan 2007

  2. Project Goals • Implement a simple WWW client and server • Examples • Use a restricted subset of HTTP • Use socket programming • To give you experience with HTTP and sockets programming

  3. HTTP Protocol Sockets

  4. HTTP Usage • HTTP is the protocol that supports communication between web browsers and web servers. • A “Web Server” is a HTTP server • Most clients/servers today speak version 1.1, but 1.0 is also in use.

  5. Request - Response • HTTP has a simple structure: • client sends a request • server returns a reply.

  6. HTTP 1.0+ Request Request-Line Headers . . . • Lines of text (ASCII). • Lines end with CRLF “\r\n” • First line is called “Request-Line” blank line Content...

  7. Request Line MethodURLHTTP-Version\r\n • The request line contains 3 tokens (words). • space characters “ “ separate the tokens. • Newline (\n) seems to work by itself (but the protocol requires CRLF)

  8. The Header Lines • After the Request-Line come a number (possibly zero) of HTTP header lines. • Each header line contains an attribute name followed by a “:” followed by a space and the attribute value. The Name and Value are just text.

  9. Headers • Request Headers provide information to the server about the client • what kind of client • what kind of content will be accepted • who is making the request • There can be 0 headers (HTTP 1.0) • HTTP 1.1 requires a Host: header

  10. Example HTTP Headers Accept: text/html Host: www.northwestern.edu From: neytmann@cybersurg.com User-Agent: Mozilla/4.0

  11. Example GET Request GET /~akuzma/index.html HTTP/1.1 Accept: */* Host: www.cs.northwestern.edu User-Agent: Internet Explorer From: cheater@cs.northwestern.edu There is a blank line here

  12. Well Known Address • The “well known” TCP port for HTTP servers is port 80. • Other ports can be used as well...

  13. Four parts • 0: Get build , configure and run the minet stack • 1: HTTP Client • 2: Connection-at-a-time HTTP Server • 3: Simple select-based Multiple-connection-at-a-time server • 4: Complex …. ( Extra Credit )

More Related