Libwww

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Libwww는 1991년과 1992년에 팀 버너스리와 장 프랑수아 그로프가 개발한 월드 와이드 웹 브라우저의 구성 요소를 이식 가능한 C 코드로 재작성한 것이다. 초기에는 '공통 라이브러리'로 불렸으며, 1993년 퍼블릭 도메인으로 공개되어 웹 브라우저 개발을 장려하는 데 사용되었다. CERN에서 W3C로 관리가 이관되었으나, 2003년 개발이 중단되었고, 이후 오픈 소스 커뮤니티에서 유지보수되었다. Libwww는 다양한 통신 프로토콜과 기능을 지원하며, 웹 브라우저, 편집기, 인터넷 봇 등 다양한 애플리케이션에 사용되었다.

Libwww - [IT 관련 정보]에 관한 문서
개요
이름libwww
다른 이름CERN 공통 WWW 라이브러리
CERN 월드 와이드 웹 공통 코드 라이브러리
W3C 참조 라이브러리
W3C 샘플 코드 라이브러리
W3C 프로토콜 라이브러리

이미지 준비중입니다.

저자팀 버너스 리
장프랑수아 그로프
헨리크 프리스티크 닐센
개발자호세 카한
출시1.0, 1992년 11월
지원 운영체제FreeBSD
솔라리스
리눅스
macOS
마이크로소프트 윈도우
종류웹 브라우저, 웹 서버 및 기타 프로토콜용 라이브러리
프로그래밍 언어C
라이선스W3C Software Notice and License
웹사이트libwww 웹사이트
📚 더 읽어볼만한 페이지
  • 웹 크롤러 - Wget
    Wget은 HTTP, HTTPS, FTP 프로토콜을 지원하여 네트워크를 통해 파일을 다운로드하는 자유 소프트웨어로, 명령 줄 인터페이스를 사용하며, 불안정한 네트워크 환경에서도 안정적인 다운로드와 웹사이트 미러링 기능을 제공한다.
  • 웹 크롤러 - 아파치 너치
    아파치 너치는 자바 기반의 오픈 소스 웹 크롤러 및 검색 엔진 프레임워크이며, 모듈식 아키텍처를 통해 플러그인 개발을 지원하고, 2010년부터 아파치 소프트웨어 재단의 독립적인 최상위 프로젝트로 운영된다.
  • FTP 클라이언트 - 인터넷 익스플로러
    마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다.
  • FTP 클라이언트 - 파일 탐색기
    파일 탐색기는 윈도우 운영체제에서 파일, 폴더 등을 관리하는 시스템 유틸리티로, 윈도우 95부터 시작하여 리본 인터페이스, 다크 모드, 탭 기능 추가 등 지속적인 개선을 거쳐 사용자 편의성을 높여왔다.
  • C로 작성된 자유 소프트웨어 - PostgreSQL
    PostgreSQL은 캘리포니아 대학교 버클리 분교의 Ingres 프로젝트에서 시작되어 전 세계 개발자들의 협력을 통해 발전해온 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다.
  • C로 작성된 자유 소프트웨어 - 김프
    김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.

2. 역사

1991년부터 1992년까지 팀 버너스리와 유럽 입자 물리 연구소의 장 프랑수아 그로프는 월드 와이드 웹의 가능성을 보여주기 위해 초기 웹 브라우저의 구성 요소들을 C 코드로 다시 작성하는 작업을 진행했다. 이 라이브러리는 초기에는 '공통 라이브러리'로 불렸으며, 1993년 5월에 libwww로 이름이 바뀌고 퍼블릭 도메인으로 공개되었다.

1994년부터 헨릭 프리스트크 닐슨이 libwww 개발을 주도했으며, 1995년 3월 21일 버전 3.0 출시와 함께 W3C가 libwww에 대한 책임을 넘겨받았다. 이후 라인 모드 브라우저는 libwww 패키지에 포함되어 별도로 출시되지 않았다.

1997년 닐슨은 Libwww 5.1이 마지막 릴리스가 될 것이라고 발표했고, 1999년 그가 W3C를 떠난 후 프로젝트는 사실상 중단되었다. 2003년 W3C는 자원 부족을 이유로 공식적으로 개발 중단을 선언하고, 오픈 소스 커뮤니티에 유지보수를 맡기기로 결정했다. 2005년 첫 커뮤니티 지원 유지보수 릴리스가 나왔고, 2017년 보안 패치가 릴리스되었다.

2.1. 초기 개발 (1991-1994)

1991년1992년팀 버너스리와 유럽 입자 물리 연구소의 학생인 장 프랑수아 그로프는 월드 와이드 웹의 잠재력을 보여주기 위해, NeXTstep 운영 체제에서 작동하는 최초의 월드 와이드 웹 브라우저의 다양한 구성 요소를 이식 가능한 C 코드로 다시 작성했다. 초기에 libwww는 '공통 라이브러리'라고 불렸으며 별도의 제품으로 제공되지 않았다. 일반적으로 사용 가능해지기 전 libwww는 CERN 프로그램 라이브러리 (CERNLIB)에 통합되었다. 1992년 7월에 이 라이브러리는 DECnet으로 이식되었다. 1993년 5월 월드 와이드 웹 뉴스레터에서 버너스리는 공통 라이브러리가 이제 libwww로 불리며 웹 브라우저 개발을 장려하기 위해 퍼블릭 도메인으로 라이선스가 부여되었다고 발표했다. 그는 처음에는 GNU 일반 공중 사용 허가서로 소프트웨어를 공개하는 것을 고려했지만, IBM과 같은 대기업이 GPL의 제약으로 인해 사용을 꺼릴 것이라는 우려 때문에 이를 포기했다. 라이브러리의 초기 빠른 개발은 로버트 카이요가 그의 MacWWW 브라우저에 통합하는 데 어려움을 야기했다.

2.2. W3C 관리 및 개발 중단 (1995-2003)

1994년 2월부터 1999년 7월까지 (버전 2.17부터 5.2.8까지) 헨릭 프리스트크 닐슨은 처음에는 CERN의 대학원생으로, 나중에는 W3C에서 libwww를 담당했다. 1995년 3월 21일, 버전 3.0이 출시되면서 CERN은 libwww에 대한 책임을 W3C로 이전했다. 1995년 이후, 라인 모드 브라우저는 더 이상 별도로 출시되지 않고 libwww 패키지의 일부가 되었다.

1997년 3월 2일, 닐슨은 Libwww 5.1이 마지막 릴리스가 될 것으로 예상한다고 발표했다. 그해 12월 24일, 닐슨은 W3C 외부의 다른 당사자가 라이브러리 유지를 맡아 줄 것을 요청했지만 실패했다.

닐슨은 1999년 7월에 W3C를 떠났고, 그 후 이 프로젝트는 프로젝트에 관련된 유일한 W3C 직원인 호세 칸이 이끌었다.

2003년 9월 2일, W3C는 자원 부족을 이유로 개발이 중단되었다고 (재)언급했다. 2004년 1월 29일, W3C는 개발을 계속하지 않을 것이며 오픈 소스 커뮤니티 유지 관리자를 찾고 있다고 다시 한 번 확인했다.

2.3. 오픈 소스 유지보수 (2003-현재)

2003년 9월 2일 월드 와이드 웹 컨소시엄(W3C)은 자원 부족을 이유로 libwww 개발 중단을 (재)선언했다. 2004년 1월 29일, W3C는 개발을 계속하지 않을 것이며 오픈 소스 커뮤니티 유지 관리자를 찾고 있다고 다시 한번 확인했다.

2005년에는 첫 번째이자 유일한 "커뮤니티 지원 유지 관리 릴리스"가 이루어졌으며, 이후 2017년에는 보안 패치가 릴리스되었다.

3. 기능

Libwww는 다양한 기능을 제공하는 라이브러리이다. 2003년에 Kahan은 "libwww는 캐싱과 파이프라인을 포함하여 HTTP 사양을 완벽하게 구현한 유일한 라이브러리입니다."라고 주장했다.

Libwww는 OpenSSL을 통한 TLS 및 SSL 사용, zlib을 이용한 gzip 압축 및 압축 해제, HTML, RDF, SGML, XML 파서와 스타일 시트 관리자, 웹 크롤러를 위한 SQL 데이터베이스 통합, 플러그인 지원 등 여러 통신 프로토콜을 지원한다.

3.1. 지원 프로토콜

Libwww는 다음의 통신 프로토콜을 지원한다.
* 파일
* FTP
* 고퍼
* HTTP 1.1(영구 캐시 관리자 포함), 파이프라인
* NNTP
* Telnet
* WAIS

2003년, Kahan은 "libwww는 캐싱과 파이프라인을 포함하여 HTTP 사양을 완벽하게 구현한 유일한 라이브러리입니다."라고 주장했다.

3.2. 기타 기능

OpenSSL을 통해 TLS 및 SSL을 사용할 수 있다.
zlib을 이용하여 gzip 압축 및 압축 해제가 가능하다.
HTML, RDF, SGML, XML 파서와 스타일 시트 관리자가 있다.
웹 크롤러 등에 사용되는 SQL 데이터베이스(MySQL 서버 사용) 통합 기능이 있다.
Libwww는 플러그인을 지원한다.

4. libwww 기반 애플리케이션

libwww는 웹 브라우저, 편집기, 인터넷 봇, 배치 도구 등 다양한 애플리케이션 개발에 사용되었다. libwww는 캐싱, 파이프라이닝, POST, 다이제스트 인증, deflate를 사용한 HTTP/1.1을 지원하는 플러그형 모듈을 제공한다. 2003년 9월 조사에 따르면 최소 19개의 애플리케이션이 libwww를 사용했다.

4.1. W3C 개발 애플리케이션

월드 와이드 웹 컨소시엄(W3C)은 아레나 웹 브라우저를 HTML3, CSS, PNG와 같은 기술의 테스트베드이자 테스트 도구로 만들었다. 아레나는 나중에 해당 역할에서 아마야로 대체되었다.

4.2. 기타 애플리케이션

2003년 9월 설문 조사에 따르면 최소 19개의 애플리케이션이 libwww를 사용했다.

👆
좌우로 밀어서 보기
애플리케이션설명
Agora
아레나
아마야
Cello
CERN httpd 서버
Cygwin
분산 해양 데이터 시스템 (DODS) with the OPeNDAP
GRIF 심포지엄, HTML 편집기
Lynx
MacWWW
Mosaic
로봇 운영 체제(ROS)
TkWeb
tkWWW
WorldWideWeb (이후 Nexus)


libwww에 통합된 애플리케이션은 다음과 같다.

👆
좌우로 밀어서 보기
애플리케이션설명
명령줄 도구libwww를 사용하여 웹에 액세스하는 간단한 배치 모드 도구를 빌드하는 방법을 보여주는 애플리케이션.
라인 모드 브라우저스파르탄 웹 브라우저.
Webbotlibwww를 사용하여 로봇을 빌드하는 방법을 보여주는 간단한 애플리케이션.
미니 서버libwww를 사용하여 서버 또는 프록시를 구현하는 방법을 보여주는 작은 애플리케이션.

4.3. libwww 포함 애플리케이션

libwww는 웹 브라우저, 편집기, 인터넷 봇, 배치 도구 등 다양한 규모의 애플리케이션에 사용되어 왔다. 2003년 9월 조사에 따르면 최소 19개의 애플리케이션이 libwww를 사용했다.

libwww 패키지에 포함된 주요 애플리케이션은 다음과 같다:

* Command Line Tool: libwww를 사용하여 웹에 접근하는 간단한 배치 모드 도구를 빌드하는 방법을 보여주는 애플리케이션이다.
* 라인 모드 브라우저: 스파르탄 웹 브라우저이다.
* Webbot: libwww를 사용하여 로봇을 빌드하는 방법을 보여주는 간단한 애플리케이션이다.
* Mini Server: libwww를 사용하여 서버 또는 프록시를 구현하는 방법을 보여주는 작은 애플리케이션이다.

libwww를 사용한 기타 애플리케이션은 다음과 같다:

👆
좌우로 밀어서 보기
애플리케이션설명
Agora
아레나월드 와이드 웹 컨소시엄(W3C)이 HTML3, CSS, PNG 등 기술의 테스트베드로 제작. 이후 아마야로 대체됨.
아마야
Cello
CERN httpd 서버
Cygwin
분산 해양 데이터 시스템 (DODS) with the OPeNDAP
GRIF 심포지엄, HTML 편집기
Lynx
MacWWW
Mosaic
로봇 운영 체제(ROS)
TkWeb
tkWWW
WorldWideWeb (이후 Nexus)

5. 비판

libcurl 개발자들은 libwww가 이식성이 떨어지고, 스레드 안전하지 않으며, 여러 HTTP 인증 유형이 부족하다고 비판했다. libwww와 libcurl 모두 일부 프로젝트에 사용하기에는 너무 무겁다는 비판도 있다.