이것은 HTTP 1.0 사양의 서브 세트를 지원하는 C로 작성된 작은 웹 서버입니다. 서버;
• 동시 요청을 처리 할 수 있어야합니다
• HTTP 방법을 구현하고 헤드하십시오
• 잘못된 요청을 처리하고 응답합니다.
웹 서버가 홈페이지를 웹 브라우저로 전달할 수 있음을 입증 할 수 있어야합니다. RFC 1945에 정의 된대로 HTTP의 버전 1.0을 구현해야하며 웹 페이지의 각 구성 요소에 대해 별도의 HTTP 요청이 전송됩니다. 서버는 여러 개의 동시 서비스 요청을 병렬로 처리 할 수 있습니다. 이것은 웹 서버가 다중 스레드임을 의미합니다. 기본 스레드에서 서버는 고정 된 포트로 글을 듣습니다. TCP 연결 요청을 수신하면 다른 포트를 통해 TCP 연결을 설정하고 별도의 스레드에서 요청을 서비스합니다.
이 프로그래밍 작업을 단순화하기 위해 두 단계로 코드를 개발합니다. 첫 번째 단계에서는 수신 한 HTTP 요청 메시지의 내용을 표시하는 다중 스레드 서버를 작성할 수 있습니다. 이 프로그램이 올바르게 실행되면 적절한 응답을 생성하는 데 필요한 코드를 추가 할 수 있습니다.
코드를 개발할 때 Chrome, Safari, Firefox 웹 브라우저와 같은 웹 브라우저에서 HTTP 클라이언트 응용 프로그램으로 서버를 테스트 할 수 있습니다. 그러나 표준 포트 80을 통해 서비스를 제공하지 않으므로 브라우저에 제공하는 URL 내의 포트 번호를 지정해야합니다. 예를 들어, 컴퓨터의 이름이 TestHost.mydomain.com 인 경우 서버가 포트 6789를 듣고 파일 index.html을 검색하려면 브라우저 내에서 다음 URL을 지정합니다 : http : // testhost.mydomain.com:6789/index.html
": 6789"를 생략하면 브라우저는 포트 80을 가정합니다.
서버에 오류가 발생하면 브라우저 창에 오류 정보가 표시되도록 적절한 HTML 소스와 함께 응답 메시지를 보냅니다.
일반적인 요구 사항 :
• POSIX 라이브러리 (PTHREAD)가 사용됩니다.
• 서버는 너무 많은 요청을 가져 오지만 10 개의 요청 만 반환 할 수 있습니다. 10 개 이상의 요청이 거부됩니다. 이 상태에서 서버는 "서버가 바쁘다"메시지를 반환합니다.
• 서버는 HTML 및 JPEG 파일이 될 요청을 수락합니다. 다른 유형은 수락하지 않습니다