0% found this document useful (0 votes)
65 views5 pages

Experiment 2 Networking HTTP API

Uploaded by

skandapmwork2003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views5 pages

Experiment 2 Networking HTTP API

Uploaded by

skandapmwork2003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Week 2 Experiment HTTP Server Implementation Experiment

Objective

To understand and compare two different HTTP server implementations in Python:


1. Basic HTTP server using Python's built-in libraries
2. Flask application server for REST API endpoints

Prerequisites
- Python 3.x installed
- Flask framework (`pip install flask`)
- Web browser or cURL for testing

Experiment 1: Basic HTTP Server

Setup and Implementation


1. Create a new directory for the experiment:

mkdir http_server_experiment
cd http_server_experiment

2. Save the basic HTTP server code as `[Link]`:

from [Link] import SimpleHTTPRequestHandler, HTTPServer

host = 'localhost'
port = 8000

server = HTTPServer((host, port), SimpleHTTPRequestHandler)


print(f"Starting server on {host}:{port}")
server.serve_forever()

3. Run the server:

python [Link]

4. Test the server:


- Open a web browser and navigate to `[Link]
- Or use curl: `curl [Link]

Expected Output for Experiment 1


Your screenshot should show:
1. Terminal window showing the server running with the message:

Starting server on localhost:8000

2. Browser window or curl output showing:


- Directory listing of your current folder (if empty, it will show "Directory listing for /")
- HTTP response status code 200 OK in browser developer tools or curl response

Experiment 2: Flask REST API Server

Setup and Implementation


1. Install Flask:

pip install flask

2. Save the Flask application code as `[Link]`:

from flask import Flask, jsonify

app = Flask(__name__)

@[Link]('/get')
def get_method():
return jsonify(message="GET Request Success"), 200

@[Link]('/post', methods=['POST'])
def post_method():
return jsonify(message="POST Request Success"), 201

@[Link]('/notfound')
def not_found():
return jsonify(error="Resource Not Found"), 404

if __name__ == '__main__':
[Link](debug=True)

3. Run the Flask server:

python [Link]
4. Test the Flask endpoints using these exact commands:

Test GET endpoint


curl [Link]

Test POST endpoint


curl -X POST [Link]

Test 404 endpoint


curl [Link]

Expected Output for Experiment 2


Your screenshot should show:
1. Terminal window showing Flask server running with output similar to:

* Serving Flask app 'app'


* Debug mode: on
* Running on [Link]

2. Terminal window showing curl command outputs:

GET endpoint response


{"message":"GET Request Success"}

POST endpoint response


{"message":"POST Request Success"}

404 endpoint response


{"error":"Resource Not Found"}

Experiment Submission Instructions

Required Screenshots
1. For Basic HTTP Server (Experiment 1):
- Screenshot 1: Terminal showing server running
- Screenshot 2: Browser or curl output showing directory listing
- Name these files as: `exp1_server.png` and `exp1_output.png`

2. For Flask REST API (Experiment 2):


- Screenshot 1: Terminal showing Flask server running
- Screenshot 2: Terminal showing all three curl command outputs (GET, POST, and notfound
endpoints)
- Name these files as: `exp2_server.png` and `exp2_output.png`

Screenshot Requirements
1. Each screenshot must:
- Show the full terminal window or browser window
- Include timestamp (system clock) visible in the screenshot
- Be clearly readable with good resolution
- Show the command being executed and its output

2. For terminal screenshots:


- Ensure the command prompt is visible
- Show the complete output without truncation
- Use dark theme terminal for better readability

Submission Format
1. Create a ZIP file named `HTTP_Server_Experiment_<YourName>` containing:
- All four screenshots named as specified above
- Source code files (`[Link]` and `[Link]`)
- A brief text file named `[Link]` containing:
- Your name and date of experiment
- Python version used
- Flask version used
- Any issues encountered and their resolution

Validation Checklist
Before submitting, verify that:
- Both servers run without errors
- All endpoints return expected responses
- Screenshots show complete output
- Source code files are included
- [Link] is complete
- All files are named correctly

Note: Partial or incorrectly formatted submissions will not be accepted. Ensure all outputs match
exactly with the expected outputs shown above.

Common Issues and Solutions


1. Port already in use:
- Error: "Address already in use"
- Solution: Kill the existing process or use a different port

2. Flask not installed:


- Error: "ModuleNotFoundError: No module named 'flask'"
- Solution: Run `pip install flask`

3. Connection refused:
- Error: "Connection refused"
- Solution: Verify the server is running and port number is correct

Remember: If you encounter any issues not listed here, document them and their solutions in
your [Link] file.

You might also like