Blue-club / webproxy-lab

0 stars 3 forks source link

[Feat] Proxy - Web Proxy(wnstn819) #32

Closed wnstn819 closed 1 year ago

wnstn819 commented 1 year ago

⚙ 기능 개요

클라이언트와 서버 사이에서 중개자 역할을 하는 프록시 서버 구현

✅ Implement TODO

추가 요구사항

- 소켓 입력 및 출력을 위해 표준 I/O 함수를 사용하는 것은 문제가 될 수 있으므로 Robust I/O(RIO) 패키지를 사용한다. (csapp.c에 내장되어 있다.)
- 모듈화 등을 고려하여 모든 파일을 수정할 수 있다.
- 예를 들어 cache 기능을 구현할 때에는 모듈성을 고려하여 cache.c 및 cache.h 파일과 같은 라이브러리를 만들 수 있으며, 그럴 경우 Makefile도 수정해야 한다.
- 프록시 서버는 SIGPIPE(닫힌 소켓에 데이터 보냈을때 발생) 시그널을 무시해야 한다. (928p 참고)
- 웹에서 전송되는 모든 콘텐츠가 ASCII 텍스트가 아니다.
- 네트워크 I/O와 바이너리 데이터(ex: 이미지, 동영상 등의 이진 데이터)를 다룰 때는 이진 데이터를 처리하기 위한 적절한 함수를 사용해야 한다.
- 원래 요청이 HTTP/1.1인 경우에도 모든 요청은 HTTP/1.0으로 전달되어야 한다.