A Laboratory Project Report
on
HTTP Request Analyzer Design a proxy tool to capture,
display, and explain live HTTP traffic.
Submitted in partial fulfillment for the award of the degree of
BACHELOR OF TECHNOLOGY
IN
CSE (CYBER SECURITY)
By
REVANTH 23X01A62C6
RAGHAVENDRA 23X01A62C7
NISHITHA 23X01A62C8
SHASHIKANTH 23X01A62C9
ARUN 23X05A6208
UNDER THE GUIDANCE OF
Mr. RAMALA ASHOK
Assistant Professor, Department of CSE.
DEPARTMENT OF CSE (CYBER SECURITY)
NARSIMHA REDDY ENGINEERING COLLEGE
Approved By AICTE, Permanently Affiliated to JNTUH,
Accredited With NBA and NAAC-A Grade,UGC 2(f) & 12(B), Hyderabad
Sy.No.518, Maisammaguda (V), Kompally – 500100, Telangana state.
May – 2025
DEPARTMENT OF CSE (CYBER SECURITY)
NARSIMHA REDDY ENGINEERING COLLEGE
Approved By AICTE, Permanently Affiliated to JNTUH,
Accredited With NBA and NAAC-AGrade, UGC 2(f) & 12(B), Hyderabad
Sy.No.518, Maisammaguda (V), Kompally – 500100, Telangana.
CERTIFICATE
This is to certify that the Laboratory Report/Project entitled “HTTP Request
Analyzer Design a proxy tool to capture, display, and explain live HTTP
traffic.” is the Bonafide work done by
REVANTH 23X01A62C6
RAGHAVENDRA 23X01A62C7
NISHITHA 23X01A62C8
SHASHIKANTH 23X01A62C9
ARUN 23X05A6208
B. Tech students of NARSIMHA REDDY ENGINEERING COLLEGE, Affiliated
to JNTH, Hyderabad in partial fulfillment of the requirements for the award of the Degree
of BACHELOR OF TECHNOLOGY in CSE (CYBER SECURITY) during the
Academic year 2024 – 2025.
Mrs. RAMALA ASHOK Dr RAMESH BABU P
Assistant Professor, Professor and Head,
Department of CSE-CYBER SECURITY, Department of CSE-CYBER SECURITY,
NARASIMHA REDDY ENGINEERING COLEGE NARASIMHA REDDY ENGINEERING COLLEGE
Maisammaguda, Kompally, Secunderabad. Maisammaguda, Kompally,Secunderabad
DEPARTMENT OF CSE (CYBER SECURITY)
NARSIMHA REDDY ENGINEERING COLLEGE
Approved By AICTE, Permanently Affiliated to JNTUH,
Accredited With NBA and NAAC-AGrade, UGC 2(f) & 12(B), Hyderabad
Sy.No.518, Maisammaguda (V), Kompally – 500100, Telangana.
DECLARATION
We hereby declare that the project work entitled “HTTP Request Analyzer
Design a proxy tool to capture, display, and explain live HTTP traffic.”, is
entirely our original work carried out under the guidance of Mr. RAMALA
ASHOK, Assistant Professor, Department of CSE (Cyber Security),
NARSIMHA REDDY ENGINEERING COLLEGE Affiliated to
JNTUH,
Hyderabad, TG, India for the award of the degree of BACHELOR OF
TECHNOLOGY in CSE (CYBER SECURITY). The work presented in this
laboratory report/project is the result of our own efforts and has not been submitted
elsewhere for the award of any other degree or diploma.
REVANTH 23X01A62C6
RAGHAVENDRA 23X01A62C7
NISHITHA 23X01A62C8
SHASHIKANTH 23X01A62C9
ARUN 23X05A6208
CONTENTS
TOPIC PAGE NO.
LIST OF FIGURES i
LIST OF TABLES ii
ABSTRACT 1
CHAPTER-1
INTRODUCTION 2
CHAPTER-2
PROBLEM STATEMENT 3
CHAPTER-3
OBJECTIVES 4
CHAPTER-4
SYSTEM DESIGN 5
CHAPTER-5
BLOCK DIAGRAM 6
CHAPTER-6
TECHNOLOGY STACK 7
CHAPTER-7
PROGRAM AND EXPLANATION 8
CHAPTER-8
OUTPUT SAMPLE 10
CHAPTER-9
ADVANTAGES AND LIMITATIONS 12
CHAPTER-10
CONCLUSION 13
CHAPTER-11
FUTURE ENHANCEMENTS 14
CHAPTER-11
REFERENCES 15
LIST OF FIGURES
FIGURE NAME PAGE NO.
2.1 BLOCK DIAGRAM OVERVIEW 4
FIGURES 8
i
LIST OF TABLES
TABLE NAME PAGE NO.
1. Relevant Components Used Instead 5
ii
ABSTRACT
In today’s web-driven world, understanding how data flows between a client
(browser) and a server is essential. This project focuses on developing an
HTTP Request Analyzer, a proxy tool that sits between the client and server to
capture, display, and interpret HTTP traffic in real- time.
It captures essential components like HTTP methods, headers, status codes, and
payloads, then explains them in simple terms. This aids web developers and
security analysts in debugging, learning, and analyzing network requests. The
project is developed using Python and socket programming, ensuring a lightweight
and platform-independent tool.
1
CHAPTER-1
1. Introduction
Web applications rely heavily on HTTP communication.
Understanding this traffic is vital for debugging and
optimization. Tools like Fiddler or Wireshark exist but are often
complex. This project develops a simplified HTTP Request
Analyzer for educational and development use.
2
CHAPTER-2
2. Problem Statement
There is a lack of lightweight, beginner-friendly tools that
explain HTTP requests and responses in a readable format for
students and developers. Most existing tools either overwhelm
users with data or lack explanation features.
Our project addresses this gap by building a proxy tool that
not only captures but also interprets HTTP traffic.
3
CHAPTER-3
3. Objectives
Create a proxy server that captures HTTP traffic
Display request and response data (method, URL, headers, status).
Provide clear explanations of status codes and headers
Keep the system lightweight and educational.
4
CHAPTER-4
4. System Design
The tool consists of four main components:
Proxy Server Module – Intercepts HTTP requests/responses.
Parser Module – Decodes request and response components.
Explanation Engine – Provides explanations for codes/headers.
Display Module – Shows captured data (CLI/GUI).
5
CHAPTER-5
5. Block Diagram
css
CopyEdit
[ Client (Browser) ]
[ Proxy Server (Python Socket) ]
[ Real Web Server ]
[ Response Captured & Parsed ]
[ Output: Display + Explanation ]
6
CHAPTER-6
6. Technology Stack
Language: Python
Libraries: socket, threading, http, re, json
Optional GUI: Tkinter or Flask (for web display)
7
CHAPTER-7
7. Program and Explanation
Program
✅ Basic Proxy Server in Python:
python
CopyEdit
import socketimport threading
def handle_client(client_socket):
request = client_socket.recv(4096)
# Parse HTTP request
print("=== HTTP Request ===")
print(request.decode(errors='ignore'))
# Forward request to actual server
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.connect(("example.com", 80)) # Change as needed
server_socket.send(request)
# Receive response
response = server_socket.recv(4096)
print("=== HTTP Response ===")
print(response.decode(errors='ignore'))
# Send back to client
client_socket.send(response)
client_socket.close()
server_socket.close()
def start_proxy():
proxy_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
proxy_socket.bind(("0.0.0.0", 8888))
proxy_socket.listen(5)
print("[*] Proxy Server Listening on port 8888")
while True:
client, addr = proxy_socket.accept()
print(f"[+] Connection from {addr}")
thread = threading.Thread(target=handle_client, args=(client,))
thread.start()
start_proxy()
8
Explanation
Explanation of Code:
socket: Used to create both client and server sockets.
threading: Allows handling multiple clients simultaneously.
recv(4096): Reads the HTTP request/response.
The proxy forwards requests to the destination server
(example.com) and returns the response to the browser.
9
CHAPTER-8
8. Output Samples
Request:
pgsql
CopyEdit
GET /index.html HTTP/1.1
Host: example.comUser-Agent: Mozilla/5.0
Explanation Output:
GET: HTTP method to retrieve data
Host: Specifies which domain is being requested
User-Agent: Browser information
10
Response:
makefile
CopyEdit
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 512
Explanation:
200 OK: Request was successful
Content-Type: Server is returning HTML content
Content-Length: Size of the response body
11
CHAPTER-9
9. Advantages and Limitations
Advantages:
Lightweight and portable
Easy to understand
Great for learning and debugging HTTP
Limitations:
No support for HTTPS
Limited UI (CLI-based in default version)
Hardcoded host (can be improved with DNS parsing)
12
CHAPTER-10
10. Conclusion
This project successfully demonstrates how a proxy tool can be
designed to capture, display, and interpret HTTP requests. It serves both
as a developer’s tool and as an educational aid. It introduces users to
real- world networking in a simplified and meaningful way.
13
CHAPTER-11
11. Future Enhancements
Add support for HTTPS using SSL interception
Web interface with real-time filtering and search
Export logs as files
Auto-explain unknown headers via online APIs
14
CHAPTER-12
12. References
Python Socket Programming Documentation
MDN Web Docs – HTTP Status Codes
RFC 7230 – HTTP/1.1 Protocol
15