2012-04-22 3 views
0

리눅스 시스템에서 C와 소켓 라이브러리 (또는 다른 라이브러리)를 사용하여 웹 브라우저를 만드는 데 관심이 있습니다.C로 웹 페이지를 표시하는 프로그램을 만드는 방법은 무엇입니까?

내 웹 브라우저의 기본 사용법은 웹 페이지의 HTML을 사용자가 읽을 수있는 형식으로 렌더링하는 것입니다.

나는 누군가가 올바른 방향으로 나를 가리 키길 바랍니다. 나는 또한 소켓과 시스템 호출에 대한 꽤 좋은 이해를 가지고있다. ...

+2

당신은 HTTP – SLaks

+0

을 배울 필요가 있습니다. lynx 소스 코드를 가져 와서 읽어보십시오. (lynx는 ascii 기반 웹 브라우저입니다) – wildplasser

+0

G-Wan과 같은 서버를 사용하여 C 서블릿을 작성할 수 있습니다. http://gwan.ch/ – thwd

답변

2

올바른 방향의 포인터, 어?

음, 웹 브라우저는 함께 작동하는 모든 시스템 혼란으로 구성됩니다. 가장 기본적인 웹 브라우저조차도 최소한 HTTP/1.1 및 HTML을 이해해야합니다.

원격 서버에서 페이지를 가져 와서 HTML을 DOM으로 구문 분석하고, 뷰포트로 렌더링하고, 마우스 클릭을 캡처하고, 하이퍼 링크를 활성화하고, 새 페이지로 이동할 수 있어야합니다.

하지만 그렇게 할 수만 있다면 웹 브라우저에 대한 불만이 있습니다. 웹 브라우저 중 가장 간단한 것조차도 CSS를 파싱하고 적용 할 수 있어야합니다. JPEG, PNG 및 BMP 이미지를 표시하고, XML을 구문 분석하고, JavaScript를 실행하고, 쿠키, 오프라인 저장 장치, 플러그인 (예 : 플래시) 및 기타 약 백만 가지를 처리합니다.

물론 웹 브라우저는 소프트웨어 기능을 수행하는 방법을 배우는 데 많은 어려움을 겪고 있습니다. 왜냐하면 기본적인 기능과 관련한 오버 헤드가 크지 않기 때문입니다.

+0

웹 브라우저는 가상 시스템과 같습니다. – UmNyobe

+0

@UmNyobe : 그것은 나쁜 비유는 아니 겠지요. –

관련 문제