• Run on port 6789 by default, or on whatever port is given as the first command-line argument
  • Accept and parse the HTTP request
  • Get the requested file from the server's file system
  • Files should be obtainable as long as they are in the directory where the program is run from or any subdirectory below that directory
  • Create an HTTP response message consisting of the requested file preceded by header lines. You should inform the client of the paylod size via the Content-Length: header line.
  • Send the response directly to the client
  • If the requested file is not present on the server, the server should send an HTTP "404 Not Found" message back to the client.
% python WebServer.py 1234 Ready to serve on port = 1234 New client: ('127.0.0.1', 50341) File requested: HelloWorld.html Bytes sent: 52 Ready to serve on port = 1234 New client: ('127.0.0.1', 50342) File requested: temp/HelloWorld2.html Bytes sent: 67 Ready to serve on port = 1234 New client: ('127.0.0.1', 50346) File requested: MissingFile.html File not found! Ready to serve on port = 1234 ... % python WebServer.py Ready to serve on port = 6789 ...
  • Name of the server
  • Port the web server is running on
  • Name of page to retrieve
% python WebClient.py WebClient.py <server name> <server port> <page> % python WebClient.py localhost 6789 HelloWorld.html <html> <body> <h1>Hello world!</h1> </body> </html> % python WebClient.py cs.mtech.edu 80 index.html <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>302 Found</title> </head><body> <h1>Found</h1> <p>The document has moved <a href="http://cs.mtech.edu/main">here</a>.</p> <hr> <address>Apache/2.2.16 (Debian) Server at cs.mtech.edu Port 80</address> </body></html> % python WebClient.py cs.mtech.edu 80 main/

Page last updated: October 14, 2013

Step-by-Step Guide to Creating a Web Server

David Henegar

In this guide, you will learn how to set up a web server using socket programming and a few other tools in easy steps. By following this guide, you will be able to create a fully functional web server that can accept and process requests. You can also extend the functions further to do more complex operations.

Prerequisites

Before beginning this tutorial you should have a basic knowledge of following:

You should also have the following tools installed:

Step 1: Setting up the Socket

The first step is to set up the socket and establish a connection with the client. For this, we will use the socket module of Python.

Here is a sample code snippet for setting up the socket:

Step 2: Creating the HTML File

Once the connection is established, we will create an HTML file that will be the basis of the response. Create a file index.html and add the following content:

Step 3: Serving the HTML File

Now, let us serve the HTML file so that it can be accessed by the client. We will use the send method of the Python socket to send the HTML file to the client.

Here is a sample code snippet for sending the HTML file:

Step 4: Closing the Connection

Once we have sent the HTML file, we can close the connection with the client. For this, we use the close method of the Python socket.

Here is a sample code snippet for closing the connection:

Q1: What is socket programming?

Socket programming is a method of communication between two programs running on different computers over a network. It is an efficient way of transferring data between two programs.

Q2: How do I create a web server in Python?

You can create a web server in Python by using the socket module of Python. The socket library can be used to establish a connection with the client and send responses containing HTML, images, and other content. Additionally, Python libraries like Django, Flask, and Bottle can be used for creating web servers.

Q3: What is the structure of a basic HTML file?

A basic HTML file consists of a  tag which contains a  tag and a  tag. The  tag contains information about the HTML page, while the  tag contains the actual content of the HTML page.

Q4: What should I keep in mind while setting up the Python socket?

When setting up the Python socket, you should keep the following points in mind -

  • Get the local machine address and port number to bind the socket
  • Establish the connection using the socket.connect() method
  • Listen to incoming requests using the socket.listen() method
  • Send responses to the client using the socket.send() method
  • Close the connection using the socket.close() method

Q5: What are the advantages of socket programming?

The advantages of socket programming include its ability to facilitate communication between two applications running in different computers, its versatility in being able to work with different network protocols, and its efficient method of transferring data over a network. Additionally, it is a cost-effective method of communication as it does not require any additional hardware or software.

Additional Resources

Socket Programming in Python

HTMl Tutorial

Playing Audio Files: Don't Play this File Twice for Best Results

Troubleshooting template issues: resolving inaccessibility and non-existence errors in configured template resolvers, how to fix the no argument given error in form parameters, soling "_registercomponent(...): target container is not a dom element " error, guide to well-formed markup: ensuring proper document structure after the root element, troubleshooting guide: fixing pandoc document conversion error 43 fast & effectively, fixing 'target container is not a dom element' error: a guide for web developers, how does one create a static field by placing - comprehensive guide, what is mshta.exe microsoft (r) html application host - comprehensive guide, step-by-step guide to use microsoft (r) html application host.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Lxadm.com.

Your link has expired.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.

Problem Description

Submission instructions, back to cs 224m home page.

Lab: Simple Web Server

Csc 364 - computer networks - weinman.

  • Introduce Python programming
  • Practice basic UNIX-style socket programming
  • Learn a little about the HTTP protocol
  • Reinforce knowledge about filesystem security
  • Section 2.2 in Kurose and Ross (Computer Networks) details the basics of the HTTP protocol, with section 2.2.3 highlighting the HTTP message format for requests and responses.
  • Section 2.7 in Kurose and Ross (Computer Networks) demonstrates how to use Python for socket programming, with 2.7.2 highlighting the TCP protocol you will use.
  • You can find an extremely simple Python tutorial at http://www.sthurlow.com/python/

Introduction

Implementation.

  • What happens if you try to make a second connection to your server while it is still handling another connection? For example, make one telnet connection to your server, but don't issue a request yet. Make another telnet connection. If it succeeds, issue a GET request. Then go back to your original connection and issue a GET request. What happened? Why?
  • Note that we use the program's directory to implicitly specify where the web server should look for files. Does this guarantee that a malicious web client cannot access files outside of the web server's directory? If so, explain why. If not, give an example of a request a client could make to obtain an unauthorized file.

What to turn in

  • Your wwwserv.py file
  • An enscripted version of your wwwserv.py
  • requesting a short file from your server,
  • making an invalid request, and
  • requesting a non-existant file.
  • A transcript of your server starting and handling these requests
  • Your answers to the questions

Python Hints

Conditionals and looping, simple string operations, splitting a string on whitespace, reading files, acknowledgments.

Navigation Menu

Search code, repositories, users, issues, pull requests..., provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

  • Notifications

This is a python web sever socket programming

avaiyang/Web-Server

Folders and files, repository files navigation.

This is a simple socket programming for TCP connections in Python. The web server will accept and parse one HTTP request at a time, get the requested file from the server’s file system, create an HTTP response message consisting of the requested file preceded by header lines, and then send the response directly to the client. In case the requested file is not present in the server, then the server will send an HTTP “404 Not Found” message back to the client.

  • Python 100.0%

IMAGES

  1. Solved Socket Programming Assignment 1: Web Server In this

    socket programming assignment 1 web server

  2. GitHub

    socket programming assignment 1 web server

  3. Socket Programming Assignment 1: Web Server In this

    socket programming assignment 1 web server

  4. Solved Socket Programming Assignment 1: Web Server In this

    socket programming assignment 1 web server

  5. Socket programming

    socket programming assignment 1 web server

  6. Introduction to Socket Program in Networking By CodeTextPro || Hanif Miah

    socket programming assignment 1 web server

VIDEO

  1. Assignment 1 : Socket programming using TCP

  2. NPTEL

  3. Reading controller truck scales CI-5010A over TCP/IP + Service

  4. Cisco Packet Tracer || 10 Network, 10 Host, 10 PC/Host, 1 DHCP, 1 Web Server, dan 1 Wirelesss

  5. Client and Server Networking in C#

  6. Introduction to WebSockets

COMMENTS

  1. Socket Programming Assignment 1: Web Server

    Socket Programming Assignment 1: Web Server In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet. You will also learn some basics of HTTP header format.

  2. PDF Socket Programming Assignment 1: Web Server

    Socket Programming Assignment 1: Web Server. In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well assend and receive a HTTP packet. You will also learn some basics of HTTP header format. You will develop a web server that handles one ...

  3. GitHub

    Socket Programming Assignment 1: Web Server. In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet. You will also learn some basics of HTTP header format.

  4. Socket-Programming-Assignment-1-Web-Server/server.py at master ...

    Socket Programming Assignment 1: Web Server. Contribute to Liyang9898/Socket-Programming-Assignment-1-Web-Server development by creating an account on GitHub.

  5. Programming Assignment 1 reference Python

    Socket Programming Assignment 1 : Web Server. In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet. You will also learn some basics of HTTP header format.

  6. Web server and client

    PROGRAM #1 The goal of this assignment is to learn the basic of socket programming in Python using TCP. ... Part 1: Web Server You need to a develop a web server that handles one HTTP request at a time. Your web server needs to: Run on port 6789 by default, or on whatever port is given as the first command-line argument ...

  7. PDF Tutorial on Socket Programming

    1 Tutorial on Socket Programming Computer Networks -CSC 458 ... Web server (port 80) Client host Server host 128.100.3.40 Echo server (port 7) Service request for ... Assignment 1 overview •Please post questions to the bulletin board •Office hours posted on website. 28 Socket types

  8. PDF Socket Programming Assignment: Web Server

    Socket Programming Assignment: Web Server For this assignment, use basic socket programming for TCP connections in Python. You will • create a socket • bind it to a specific address and port • send and receive HTTP messages • use the HTTP header formats as we did with telnet Task Develop a web server that handles one HTTP request at a time.

  9. PDF Socket Programming Assignment 1: Multi-Threaded Web Server ECE 156

    1 Socket Programming Assignment 1: Multi-Threaded Web Server ECE 156 September 19, 2006 Please read Sections 2.7-2.9 from the textbook to get an introduction to socket programming. In this programming assignment, you will use Java to develop a multi-threaded web server that can accept multiple requests in parallel.

  10. Solved Socket Programming Assignment 1: Web Server In this

    Computer Science questions and answers. Socket Programming Assignment 1: Web Server In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet. You will also learn some basics of HTTP header format.

  11. Socket Programming Assignment 1: Web Server (Resolved)

    Step 1: Setting up the Socket. The first step is to set up the socket and establish a connection with the client. For this, we will use the socket module of Python. Here is a sample code snippet for setting up the socket: import socket. # create a new socket. s = socket.socket()

  12. Week4-Project 1-Web Server

    Week 4. Socket Programming Project 1. Web Server Assignment - Due in Week 7 Lab Class (10 points) In this assignment, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet.

  13. Python Socket Programming

    See the below python socket client example code, the comment will help you to understand the code. import socket. def client_program(): host = socket.gethostname() # as both code is running on same pc. port = 5000 # socket server port number. client_socket = socket.socket() # instantiate.

  14. sockets

    For a programming exercise (from Computer Networking: A Top-Down Approach (6th Edition) by Kurose and Ross), we're trying to develop a simple proxy server in python. ... [server_ip : It is the IP Address of the Proxy Server' sys.exit(2) # Create a server socket, bind it to a port and start listening tcpSerPort = 8888 tcpSerSock = socket(AF_INET ...

  15. Web Server

    Socket Programming Assignment 1: Web Server In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet. You will also learn some basics of HTTP header format.

  16. Socket Programming Assignment 1: Web Server In this

    Question: Socket Programming Assignment 1: Web Server In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet. You will also learn some basics of HTTP header format. You will develop a web server that ...

  17. Socket-Programming-Assignment-1-Web-Server/README.md at master ...

    Socket Programming Assignment 1: Web Server In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet. You will also learn some basics of HTTP header format.

  18. Programming Assignment 1: Socket Programming

    In this assignment, we will build a simple client-server system. The client code is given to you. You must write and submit the code for the server. You must use C/C++ for this assignment. The system you are developing is a simple key-value store. The client takes user input to get/put/delete keys and passes these requests over the server.

  19. Lab: Simple Web Server

    Introduction. In this lab you will implement and test a very simple web server using the hypertext transport protocol (HTTP), a text-based application-layer protocol. The basic outline is as follows. Your server will establish a listening socket and wait for connections in an infinite loop (so that it can serve as many as come in while it is ...

  20. python

    Currently doing an assignment in which we are programming sockets in python and thus creating a web server when the webserver.py code is executed.The code should then display HTTP headers and other . ... code added.Trying to get it working the assignment advised - the_islander. Oct 3, 2014 at 1:22.

  21. GitHub

    Computer Networking. Server Socket Assignment1 Socket Programming Assignment 1: Web Server In this lab, you will learn the basics of socket programming for TCP connections in Python: how to create a socket, bind it to a specific address and port, as well as send and receive a HTTP packet. You will also learn some basics of HTTP header format.

  22. GitHub

    These are my attempts at the socket programming assignments from the book Computer Networking: A Top-Down Approach by Kurose and Ross. So far, I've made the following: A web server (without multithreading) and a web client that prints the HTTP response message; A (improved) UDP Pinger client.

  23. avaiyang/Web-Server: This is a python web sever socket programming

    Web Server. This is a simple socket programming for TCP connections in Python. The web server will accept and parse one HTTP request at a time, get the requested file from the server's file system, create an HTTP response message consisting of the requested file preceded by header lines, and then send the response directly to the client.