본문 바로가기
Networking&K8S: A Layered Approach/1. Networking Introduction

L7 - HTTP

by yeongki0944 2024. 12. 4.

1. HTTP Simple Webserver (python)

코드
# HttpWebserver.py
from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
# 1. First, set the response status code
self.send_response(200)
# 2. Set the response headers
self.send_header('Content-Type', 'text/plain; charset=utf-8')
self.send_header('Content-Length', '5')
self.end_headers()
# 3. Send the response body
self.wfile.write(b"Hello")
def log_message(self, format, *args):
"""Override to provide more detailed logging of requests"""
message = f"""
----- Incoming Request -----
Path: {self.path}
Method: {self.command}
Headers: {self.headers}
Client Address: {self.client_address}
Server Version: {self.server_version}
Protocol Version: {self.protocol_version}
--------------------------
"""
print(message)
def run_server(host='0.0.0.0', port=8080):
server_address = (host, port)
httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)
print(f"Starting server on {host}:{port}")
httpd.serve_forever()
if __name__ == '__main__':
run_server()

 

실행 방법
python HttpWebserver.py

 

HTTP 요청 테스트 (cURL)
curl localhost:8080 -v

(좌) cURL 요청 / (우) 서버

 

AWS ALB로 부터 반환되는 502 bad gateway 에러 트러블슈팅

 

https://devocean.sk.com/blog/techBoardDetail.do?ID=165428&boardType=techBlog