| Suit protokol Internet |
| --- |
| Lapisan Penggunaan |
| * BGP
* DHCP
* DNS
* FTP
* HTTP
* HTTPS
* IMAP
* LDAP
* MGCP
* MQTT
* NNTP
* NTP
* POP
* ONC/RPC
* RTP
* RTSP
* RIP
* SIP
* SMTP
* SNMP
* SSH
* Telnet
* TLS/SSL
* XMPP
* *lanjut*
 |
| Lapisan Pengangkutan |
| * TCP
* UDP
* DCCP
* SCTP
* RSVP
* *lanjut*
 |
| Lapisan Internet |
| * IP
	+ IPv4
	+ IPv6
* ICMP
* ICMPv6
* ECN
* IGMP
* IPsec
* *lanjut*
 |
| Lapisan Pautan |
| * ARP
* NDP
* OSPF
* Terowong
	+ L2TP
* PPP
* MAC
	+ Ethernet
	+ Wi-Fi
	+ DSL
	+ ISDN
	+ FDDI
* *lanjut*
 |
| * l
* b
* s
 |

Protokol **Gopher** ialah sejenis protokol lapisan penggunaan TCP/IP yang direka bagi mengedar, mencari, dan mendapatkan dokumen-dokumen melalui Internet. Protokol ini menggunakan reka bentuk menu-dokumen menjadi pilihan pada Jaringan Sejagat pada zaman awal pembinaan jaringan tersebut. Namun, akhirnya protokol HTTP menjadi protokol yang dominan ataupun aliran utama. Ekosistem Gopher sering kali dianggap sebagai pendahulu efektif Jaringan Sejagat, atau dalam bahasa Inggeris, *World Wide Web (WWW)*.

Protokol Gopher dicipta sebuah pasukan yang diketuai Mark P. McCahill di Universiti Minnesota. Protokol ini menyediakan beberapa ciri yang tidak didokong secara azali oleh Web dan mengenakan sistem hierarki yang lebih ketat terhadap maklumat yang terkandung dengannya. Antara muka teks utamanya mudah diguna, dan amat sesuai dengan persekitaran pengkomputan yang bergantung banyak pada terminal teks jarak jauh, yang masih banyak dijumpai semasa protokol ini dicipta pada tahun 1991. protokolnya yang ringkas juga memudahakan penciptaan implementasi pelanggan. Semakan Gopher dan pelanggan yang lebih kini menambah dokongan bagi multimedia. Gopher menjadi pilihan ramai pentadbir sistem kerana protokol ini memerlukan hanya sedikit sumber jaringan berbanding perkhidmatan Web.

Gopher menyediakan platform yang sesuai buat penyediaan perhubungan perpustakaan elektronik besar yang pertama dengan struktur hierarkinya. Para pengguna Gopher masih ingat yang sistem Gopher "lebih pantas, lebih efisien dan lebih teratur" daripada perkhidmatan-perkhidmatan Web sekarang. Mahupun protokol ini kebanyakannya diganti oleh Web dalam tahun-tahun selepasnya, protokol Gopher masih diguna oleh para penggemarnya, dan pelayan-pelayan Gopher masih dikekalkan sehingga kini.

Asal-usul
---------

Sistem Gopher asal dikeluarkan pada tahun 1991 oleh Mark McCahill, Farhad Anklesaria, Paul Lindner, Daniel Torrey, dan Bob Alberti daripada Universiti Minnesota. Tujuan-tujuan utamanya, seperti dinyatakan dalam RFC 1436 adalah:

* Susunan hierarki seumpama fail yang tidak asing bagi pengguna.
* Sintaks yang mudah.
* Sebuah sistem yang dapat dibina dengan pantas dan murah.
* Memanjangkan metafora sistem fail, seperti membuat gelintaran.

Gopher menggabungkan hierarki dokumen dengan himpunan perkhidmatan, termasuk WAIS, enjin-enjin gelintar Archie dan Veronica, dan juga get laluan kepada sistem maklumat lain seperti FTP dan Usenet.

Nama protokol ini diberikan oleh Anklesaria.

Pengalaman baharu buat pengguna
-------------------------------

Tapak Gopher yang dipaparkan dengan pelayar Lynx 
Laporan sezaman  memberikan gambaran bagaimana para pengguna mengalami atur cara semasa ia mula-mula dikeluarkan menyatukan beberapa sumber dan menjana apa yang disebut *Gopher space* ("ruang gopher").

Dengan skrin yang memuatkan 25 baris 80 aksara hijau (pada masa itu tiada grafik) pengguna mendapat menu berhierarki. Menu tahap teratas mungkin mengandungi jabatan-jabatan dan penerbitan-penerbitan (misalnya, akhbar kampus) universiti yang mengendalikan Gopher sebagai satu cara mengedar dokumen secara elektronik, sekurang-kurangnya kepada masyarakat kampus.

Jaringan Sejagat menambah grafik pada teks, akan tetapi kehilangan menu. Ia mengambil masa yang agak panjang bagi kuasa pengkomputeran -- lebar jalur seribu kali lebih berkuasa daripada (MODEM 9600 baud ke optik gentian), tatasusun cakera yang seribu kali lebih besar (1 GB sehingga lebih daripada 1 TB) dan pelayan murah (CPU yang seribu kali lebih berkuasa) -- bagi membolehkan pengguna Internet sekarang untuk melayar sesawang dan bagi enjin gelintar untuk mengkatalogkan kandungan Web.

### Sokongan Natif Gopher

| Pelayar | Disokong kini | Disokong dari | Disokong sehingga | Nota |
| --- | --- | --- | --- | --- |
| Camino | Ya | 1.0 | semasa | Mengguna port 70. |
| Classilla | Ya | 9.0 | semasa | Berkod keras ke port 70 dari 9.0–9.2; port senarai putih dari 9.2.1. |
| cURL | Ya | 7.21.2 (Oktober 2010) | semasa | cURL ialah utiliti pemindahan garis perintah |
| ELinks | Beta |  |  | Opsyen bina |
| Epiphany | Tidak |  | 2.26.3 | Dilumpuhkan selepas bertukar ke WebKit |
| Galeon | Ya |  | semasa |  |
| Google Chrome | Tidak | tidak pernah |  | Sebuah tambahan terdapat, tetapi perlu ditulis semual bagi versi Chrome semasa. |
| Internet Explorer | Tidak | 1 | 6.0 | IE 6 SP1+ and IE with MS02-047 memerlukan tampung pendaftaran. Mengguna port 70. |
| Internet Explorer for Mac (dihentikan) | Tidak |  | 5.2.3 | PowerPC sahaja |
| K-Meleon | Ya |  | semasa |  |
| Konqueror | Plugin |  |  | kio\_gopher |
| lftp | Ya | ***?*** | semasa | lftp ialah program pindahan garis perintah |
| libwww | Ya | 1.0c (Disember 1992) | semasa | libwww ialah API buat aplikasi Internets |
| Line Mode Browser | Ya | 1.1 (Januari 1992) | semasa |  |
| Lynx | Ya |  | semasa | Sokongan lengkap |
| Mozilla Firefox | Addon | 0 | 3.6 | Mengguna port 70. Sokongan dalaman dihentikan semenjak Firefox 4.0; dapat dipasang semula dengan OverbiteFF Diarkibkan 2013-02-02 di Wayback Machine. |
| Netscape Navigator (dihentikan) | Ya |  ? | 9.0.0.6 |  |
| NetSurf | Tidak |  |  | Sedang dibangunkan, berdasarkan pengambil cURL. |
| OmniWeb | Ya | 5.9.2 (April 2009) | semasa | Pelayar WebKit pertama yang menyokong Gopher |
| Opera | Tidak | tidak pernah |  | Opera 9.0 memuatkan kebolehan proksi |
| Pavuk | Ya | ***?*** | semasa | Pavuk ialah perisian cermin web (muat turun rekursif) |
| Safari | Tidak | tidak pernah |  |  |
| SeaMonkey | Addon | 1.0 | 2.0.14 | Mengguna port 70. Sokongan dalaman dihentikan bermula dengan SeaMonkey 2.1; serasi dengan OverbiteFF Diarkibkan 2013-02-02 di Wayback Machine. |

Pelayar-pelayar yang tidak menyokong Gopher secara natif masih dapat mencapai pelayan dengan menggunakan get laluan Gopher ke HTTP.

### "Plugin" Gopher bagi pelayar

OverbiteFF Diarkibkan 2013-02-02 di Wayback Machine memanjangkan pelayaran Gopher buat Mozilla Firefox dan SeaMonkey. *Plugin* ini menyediakan sokongan bagi pencapaian pelayan Gopher yang tidak berfungsi melalui port 70, dengan menggunakan senarai putih, dan juga memuatkan sdokongan buat |pertanyaan CSO/ph; ia juga membolehkan versi-versi Firefox dan SeaMonkey yang tidak menyokong Gopher secara natif untuk mencapai pelayan-pelayan Gopher. *Plugin* juga terdapat untuk Konqueror dan sambungan berlandaskan proksi bagi Google Chrome.

### Pelanggan Gopher buat peranti bimbit

Awal tahun 2010-an menyaksikan minat baharu terhadap pelanggan Gopher buat telefon pintar. Overbite, pelanggan sumber terbuka buat Android 1.5+ dikeluarkan dalam tahap alpha pada tahun 2010.

PocketGopher Diarkibkan 2013-05-29 di Wayback Machine juga dikeluarkan pada tahun 2010 bersam-sama kod sumbernya bagi beberapa peranti serasi JavaME. iGopher dikeluarkan pada tahun 2011 sebagai perisian propietari buat peranti iPhone dan iPad.

### Protokol

Protokol Gopher mula-mula diperikan dalam RFC 1436. IANA memberikan port 70 TCP kepada protokol Gopher.

Protokol ini mudah untuk dilepasi, dan membolehkan pelayaran tanpa menggunakan pelanggan. Sesi Gopher standard kelihatan begini:

```
/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

```

Di sini, pelanggan sudah membuat sambungan TCP dengan pelayan melalui port 70, port piawai bagi Gopher. Pelanggan kemudiannya menghantar "string" diikuti *carriage return* (kepulangan penyorong) "CR" dan *line feed* (baris baharu) (yakni, jujukan "CR + LF"). Ini merupakan pemilih yang mengenal pasti dokumen yang perlu diambil. Pelayan kemudiannya menjawab permintaan dengan menyediakan item yang diminta dan menutup sambungan. Mengikut protokol, sebelum sambungan itu ditutup, pelayan harus menghantar tanda titik noktah (yakni, aksara titik) pada barisanya tersendiri. Namun, seperti dalam kes ini, bukan semua pelayan yang mematuhi bahagian protokol ini dan pelayan boleh menutup sambungan tanpa memulangkan tanda titik terakhir.

Dalam contoh ini, item yang dihantar pulang ialah menu gopher, sebuah direktori yang terdiri daripada jujukan baris yang setiap satunya memerikan item yang dapat diambil. Kebanyakan pelanggan akan memaparkan item-item ini sebagai pautan hiperteks, dan dengan itu membolehkan pengguna untuk melayari ruang gopher dengan mengikut pautan.

Pilihan selain Gopher
---------------------

Dari segi sejarah, hanya terdapat satu pesaing kepada protokol Gopher.

* HTTP

Rujukan
-------

1. 1 2  "Medical Library Handbook" (PDF). World Health Organization- Regional office for the Eastern Mediterranean. m/s. 56–64. Diarkibkan daripada yang asal (PDF) pada 2012-03-23. Dicapai pada 2013-03-30.
2. ↑  "How Moore's Law saved us from the Gopher web". 12 March 2009. Dicapai pada 20 September 2011.
3. ↑  Suzan D. McGinnis (2001). *Electronic collection management*. Routledge. m/s. 69–72. ISBN 0-7890-1309-6.
4. ↑  Tomi T. Ahonen (2002). *m-Profits: Making Money from 3G Services*. Wiley. m/s. 33–34. ISBN 0-470-84775-1.
5. 1 2  December, John; Randall, Neil (1994). *The World Wide Web unleashed*. Sams Publishing. m/s. 20. ISBN 1-57521-040-1.
6. ↑  Mark McCahill, Farhad Anklesaria. *"Smart Solutions: Internet Gopher"* (Flash) (dalam bahasa English). Minneapolis: University of Minnesota Media Mill. Peritiwa berlaku pada 2:40.CS1 maint: unrecognized language (link) McCahill credits Anklesaria with naming Gopher
7. ↑  Ward, Lynn (Dec 1992-Jan 1993). "Exploring the Power of the Internet Gopher". *UIUCnet*. **6** (1). Dicapai pada 5Dec2012. Unknown parameter `|month=` ignored (bantuan); Check date values in: `|accessdate=` dan `|date=` (bantuan)CS1 maint: date and year (link)
8. ↑  Fonseca, Jonas (24 December 2004). "elinks-users ANNOUNCE ELinks-0.10.0 (Thelma)". Linux from scratch. Diarkibkan daripada yang asal pada 2007-02-20. Dicapai pada 22 May 2010.
9. ↑  hotaru.firefly; dll. (2 May 2009). "Issue 11345: gopher protocol doesn't work". Google. Dicapai pada 25 July 2011. Explicit use of et al. in: `|author=` (bantuan)
10. ↑  "Microsoft Security Bulletin MS02-047". Microsoft. 28 February 2003. Dicapai pada 23 March 2007.
11. ↑  "Bug 388195 – Remove gopher protocol support for Firefox". Dicapai pada 15 June 2010.
12. ↑  "OmniWeb 5.9.2 now includes Gopher support". OmniGroup. 1 April 2009. Dicapai pada 3 April 2009. `|first=` missing `|last=` (bantuan)
13. ↑  "A comprehensive list of changes for each version of OmniWeb". OmniGroup. 1 April 2009. Dicapai pada 3 April 2009.
14. ↑  "kio\_gopher – Gopher kioslave". Dicapai pada 21 August 2010.
15. ↑  "The Overbite Project". Floodgap. Dicapai pada 25 July 2010.
16. ↑  Paul, Ryan (6 July 2010). "Overbite Project brings Gopher protocol to Android". Ars Technica. Dicapai pada 25 July 2010.

Pautan luar
-----------

* (Inggeris) Senarai semua pelayan Gopher awam (pautan proksi)
* (Inggeris) Senarai masa hidup pelayan Gopher awam (pautan gopher)
* (Inggeris) (pautan HTTP) Diarkibkan 2012-03-15 di Wayback Machine
* An announcement of Gopher on the Usenet 8 October 1991
* Why is Gopher Still Relevant? A position statement on Gopher's survival.
* An article published by the technology discussion site "Ars Technica", about the Gopher community of enthusiasts nowadays
* Sites inspired by gopher: Spencer Hunter's Homepage – Example of a Gopher emulation in HTML, online since 1995. Under the "About this gopher and myself" directory is the author's own Gopher manifesto, "Why gopher is superior to the Web."; A community server for the Collier County, FL (Naples, FL) area whose fast web interface is inspired by Gopher. It is also an example of a Gopher emulation in HTML

### Piawai

* (Inggeris) Pembahagian Nombor Port IANA
* RFC 1436 – The Internet Gopher Protocol (a distributed document search and retrieval protocol)
* RFC 1580 – Guide to Network Resource Tools
* RFC 1689 – Networked Information Retrieval: Tools and Groups
* RFC 1727 – A Vision of an Integrated Internet Information Service
* RFC 1738 – Uniform Resource Locators (URL)
* RFC 1808 – Relative Uniform Resource Locators
* RFC 2396 – Uniform Resource Identifiers (URI): Generic Syntax
* RFC 4266 – The gopher URI Scheme

* iconPortal Sains komputer