고퍼 (프로토콜)

고퍼 프로토콜(Gopher protocol; 대부분 "고퍼"라 줄여 사용함)은 인터넷을 위해 고안된 문서 검색 프로토콜이다. 고퍼의 목적은 월드 와이드 웹과 비슷하나, 현재는 거의 완전히 웹에 의해 대체되었다.

고퍼 프로토콜은 웹에서 지원하지 않는 몇 가지 사항들을 지원하는데, 특히 웹보다 훨씬 강력한 정보 분류 체계를 지원한다. 고퍼의 문자 기반 메뉴 인터페이스는 원격 터미널에 알맞게 조직되어 있다. 어떤 사람들은 고퍼를 대량의 정보 검색 및 저장에 훨씬 효과적인 프로토콜로 여긴다.

기술 상세

프로토콜 
고퍼 프로토콜은 RFC 1436 에 처음 기술되었다. IANA는 TCP 포트 70을 고퍼 프로토콜에 할당하였다.

이 프로토콜은 협상(negotiate)이 단순하므로 클라이언트 없이 탐색을 가능케 한다. 그러므로 표준 고퍼 세션은 다음과 같이 나타난다:

/Reference
1CIA World Factbook     /Archives/mirrors/textfiles.com/politics/CIA    gopher.quux.org 70
0Jargon 4.2.0   /Reference/Jargon 4.2.0 gopher.quux.org 70      +
1Online Libraries       /Reference/Online Libraries     gopher.quux.org 70     +
1RFCs: Internet Standards       /Computers/Standards and Specs/RFC      gopher.quux.org 70
1U.S. Gazetteer /Reference/U.S. Gazetteer       gopher.quux.org 70      +
iThis file contains information on United States        fake    (NULL)  0
icities, counties, and geographical areas.  It has      fake    (NULL)  0
ilatitude/longitude, population, land and water area,   fake    (NULL)  0
iand ZIP codes. fake    (NULL)  0
i       fake    (NULL)  0
iTo search for a city, enter the city's name.  To search        fake    (NULL) 0
ifor a county, use the name plus County -- for instance,        fake    (NULL) 0
iDallas County. fake    (NULL)  0

여기에서 클라이언트는 서버에 대해 표준 고퍼 포트인 포트 70으로 TCP 연결을 확립한다. 그러면 클라이언트는 문자열 및 캐리지 리턴, 그리고 라인피드(CR+LF 시퀀스)를 보낸다. 이것을 셀렉터이며 검색할 문서를 식별한다. 항목 셀렉터가 비어있으면 기본 디렉터리가 선택된다. 이때 서버는 요청된 항목과 함께 응답하며 연결을 닫는다.

외부 링크 
 고퍼 프로젝트
 일반 웹 브라우저를 위한 고퍼 지원

인터넷 프로토콜
응용 계층 프로토콜
인터넷 표준
인터넷의 역사
URI 스킴