이 프로젝트는 Python의 TCP 소켓(socket API) 을 사용하여
간단한 HTTP 서버와 클라이언트를 직접 구현한 예제입니다.
Flask, FastAPI와 같은 웹 프레임워크를 사용하지 않고,
TCP 위에서 HTTP 요청(Request)과 응답(Response)이 어떻게 동작하는지를
직접 구현하며 이해하는 것을 목표로 합니다.
- TCP 소켓 기반 클라이언트–서버 통신
- HTTP/1.1 요청 및 응답 메시지 직접 처리
- 다음 HTTP 메서드 지원
GETHEADPOSTPUT
- JSON 파일(
data.json)을 이용한 간단한 데이터 저장 - Thread를 이용한 다중 클라이언트 처리
├── server.py # TCP 소켓 기반 HTTP 서버
├── client.py # HTTP 요청 테스트용 클라이언트
├── README.md # 프로젝트 설명 (GitHub용)
└── .gitignore- 운영체제: macOS / Linux
- Python 버전: Python 3.9 이상
- 외부 라이브러리: 없음 (표준 라이브러리만 사용)
python server.pypython client.py클라이언트는 서버로 여러 HTTP 요청을 전송하고, 서버로부터 받은 응답을 콘솔에 출력합니다.
본 서버는 /users 리소스에 대해 다음 HTTP 요청을 지원합니다.
| Method | Path | 설명 |
|---|---|---|
| GET | /users/{id} | 사용자 정보 조회 |
| HEAD | /users/{id} | 사용자 존재 여부 확인 |
| POST | /users | 사용자 생성 |
| PUT | /users/{id} | 사용자 정보 수정 또는 생성 |
TCP 소켓 통신 흐름, 시스템 구조, HTTP 요청/응답 처리 과정, Wireshark를 이용한 패킷 캡처 분석 등 자세한 설명은 과제 제출용 문서(README/Keynote)에서 별도로 다룹니다.