다음은 제공하신 텍스트에 대한 해석입니다:


15-213, Fall 20XX Proxy Lab: 캐싱 웹 프록시 작성

1. 개요

웹 프록시는 웹 브라우저와 웹 서버 사이의 중간자 역할을 하는 프로그램입니다. 브라우저는 웹 페이지를 받기 위해 서버에 직접 요청하지 않고, 프록시를 통해 요청을 전달합니다. 프록시는 서버로부터 받은 응답을 브라우저에 다시 전달합니다. 웹 프록시는 여러 목적으로 사용될 수 있습니다. 예를 들어, 방화벽 뒤에 있는 브라우저가 외부 서버에 접근할 수 있도록 프록시가 중계 역할을 할 수 있습니다. 또한 프록시는 익명성을 제공할 수 있으며, 캐싱 기능을 통해 웹 객체를 저장해두고 나중에 다시 요청이 들어오면 저장된 데이터를 제공할 수 있습니다.

이번 실습에서는 HTTP 프록시를 작성하게 되며, 프록시는 캐싱 기능을 갖춘 간단한 웹 프록시로 확장될 예정입니다.

2. 로지스틱스

이 프로젝트는 개인별로 수행됩니다.

4. Part I: 순차적 웹 프록시 구현

첫 번째 단계는 HTTP/1.0의 GET 요청을 처리하는 기본적인 순차적 프록시를 구현하는 것입니다. 프록시는 클라이언트로부터 들어오는 연결을 수락하고, 요청을 읽어 파싱한 후 적절한 웹 서버에 요청을 전달한 뒤, 서버로부터 받은 응답을 클라이언트에 전달해야 합니다.

4.1 HTTP/1.0 GET 요청

브라우저가 URL을 통해 웹 페이지를 요청할 때, 프록시로 전달되는 요청은 다음과 같은 형식입니다:

GET <http://www.cmu.edu/hub/index.html> HTTP/1.1

이 요청을 처리하기 위해 프록시는 호스트 이름(www.cmu.edu)과 경로(/hub/index.html)을 파싱해야 합니다. 그런 다음 HTTP/1.0 형식으로 요청을 전달합니다:

GET /hub/index.html HTTP/1.0

4.2 요청 헤더