2010-06-19 4 views

답변

0

코드베이스가 두 개보다 큰 순서이므로 Apache는 포함하지 않았습니다. 말하는.

실제로 아파치 코드는 매우 읽기 쉽습니다. 그것은 많은 일을하기 때문에 커다란 코드 기반을 가지고 있습니다. 그러나 잘 구조화되어있어서 이해하기 쉽습니다. APR 라이브러리 (아파치 포터블 런타임)에서 배울 수있는 작은 것들이 있는지 확인할 수 있습니다.

IMO 프로그래밍을 배우려면 HTTPd가 아닌 더 단순한 프로젝트로 시작해야합니다.

nginx와 LightHTTPd (Apache와 마찬가지로)는 양질의 소프트웨어로서 매우 가파른 학습 곡선을 의미합니다. 그리고 학습은 불행하게도 종종 을 파고 들기 때문에 어쨌든 성숙한 프로젝트에 나이가 붙는입니다.

C로 배우고 디자인을 배우는 사람은 FreeBSD 또는 그 파생물을 확인하고 싶을 것입니다. 제 경험상 시작하기에 더 좋은 곳입니다. 모든 구경 도구와 라이브러리가 많이 있습니다. 그리고 그들의 TODO 목록은 결코 비어 있지 않으며, 어디서 시작해야하는지 안내자 역할을합니다.

+0

HTTP 서버는 시작하기에 좋지 않은 곳이 아닙니다. 단순한 텍스트 프로토콜을 기반으로하기 때문입니다. 또한 소스 기반의 리버스 엔지니어링 지식에서 가장 중요한 것 중 하나는 목표 지향적 인 동기 부여입니다. 나는 그를 다른 방향으로 보내는 담요 진술이 그의 공학 기술을 증가시킬 것이라고 생각하지 않는다. –

+0

@Hassan : "간단한 텍스트 프로토콜"- HTTP/1.0에 대한 RFC 1945 또는 HTTP/1.1에 대한 RFC 2616을 확인하고 "간단한"것을 찾았습니까? 나는 여러 차례에 걸쳐 HTTP 1.0 (1.1 요소 포함)을 구현했으며 모든 필수 기능을 지원한다는 이정표를 달성하는 것이 사소한 약속이 아님을 알고 있습니다. 모든 옵션 기능과 이식성으로 소프트웨어가 다소 복잡해집니다. 모든 성능 최적화와 함께 ... 코드 작성으로 이어진 로직을 리버스 엔지니어링하는 데 몇 주가 걸릴 수도 있습니다. 그리고 그것은 시작하는 나쁜 방법입니다. – Dummy00001

+0

프로토콜이 단순하기 때문에 (이해하기 위해) 구현은 다음과 같지 않습니다. DI는 시스템 소프트웨어 (웹 서버)의 문서화되지 않은 의미에 대해 머리를 터는 데 몇 주가 걸립니다./데이터베이스/메일 서버 등). 절대 세부 사항에 IIS의 ISAPI 인터페이스를 역전시키는 것에 대한 나의 경험은 약 6 개월 (다른 복잡한 시스템의 개발 중에) 걸렸고, 나는 지금 2 개월 동안 스스로 nginx를 공부 해왔다. –

3

깔끔한 속임수는 솔직히 말해서 소금이있는 코드베이스에서 항상 발생합니다. 그럼에도 불구하고 당신이 듣고 싶지 않은 대답은 두 가지를 모두 공부하는 것이 좋을 것이므로 교차로를 통해 배우는 것이 좋습니다. 대안은 실제로 당신을 "lighthttpd"방식이나 "nginx"방식 등의 상자에 갇히게 할 수도 있습니다.

+0

교차로에 대한 좋은 점. – droidix

5

Ngxinx는 내가 직면 한 최고의 직선 - 코드 기반 일 수 있습니다. 나는 아파치의 큰 덩어리를 읽었으며, 나는 항상 부정하다고 느꼈다. 그것은 모 놀리 식 엉망이다.

Nginx를 탐색하여 웹 서버에 대해 배우는 것이 아니라 유닉스 및 네트워크 기반 소프트웨어를 코드 아키텍처에서 메타 프로그래밍 기술로 작성하는 모범 사례에 대해 배우게됩니다.

Lighttpd에 관해 좋은 소식은 들었지만 범위가 Nginx에 비해 제한적입니다. 그러므로 나는 너라면 nginx에 시간을 투자 할 것이다. lighttpd의 제한된 범위는 연구 대상의 첫 번째 목표로서 사용자에게 도움이 될 수 있습니다.

관련 문제